在Excel中计算工作日

时间:2016-12-03 22:22:53

标签: excel-formula

我有一个包含列的工作日志记录软件的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?

任何提示?

由于

1 个答案:

答案 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的测试,并且在返回正确答案时没有任何问题。