我有一个包含列的工作日志记录软件的Excel表格 带有日期,第二个带有任务,第三个带有名称。
基本上我看到" John"在任务A上工作3小时,在任务B上工作5小时。
如果某一天有很多简短的任务,那么可能会有8个项目用于" John"那天。
此表上还有100名不同的工人。 - > 30天* 5个任务* 100个工人每月约15000行。
我的愿望是看一个工人在一个月内工作了多少天"
"找到工人X的独特日期并总结起来"
我可以用
=SUMPRODUCT(1/COUNTIF(A2:A7000,A2:A7000&""))
在A栏中找到独特的日子(顺便说一下,这似乎限于7000行!!! 7001会给出" 0"结果虽然单元格A7000和A7001具有相同的日期。
但是现在我只想计算工人A在B栏中的日期......
=SUMPRODUCT(1/(COUNTIF(A2:A7000,A2:A7000&"")) * (A25:A7000 = "John"))
这似乎在语法上是正确的,但总是返回" 0"
Hhhmmm?
任何提示?
由于
答案 0 :(得分:0)
将其更改为数组公式:
=SUM(IF(B2:B7000 = "John",1/COUNTIFS(B2:B7000,"John",A2:A7000,A2:A7000)))
作为数组公式,必须在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter确认。如果操作正确,那么Excel会将{}
放在公式周围。
如果您想使用SUMPRODUCT,那么您需要稍微更改一下:
=SUMPRODUCT(--(B2:B7000= "John"),1/COUNTIFS(B2:B7000,"John",A2:A7000,A2:A7000))
Sumproduct会在用逗号分隔时忽略错误。
此外,两种公式都经过了高达8000的测试,并且在返回正确答案时没有任何问题。