我正在为工作写一个excel公式。我有一个更新表,该表计算每个人每个月的输出。我想跟踪他们工作了多少天。通过计算他们输入到工作表中的唯一日期,但仅在主查找表单上的月份日期之间进行计数。前 月是01/01/2019-01/01/2019列a包含员工输入的日期单元格e2包含开始的月份单元格d2包含eomonth找到的结束月份。我想在a列中搜索e2-d2之间的日期,并在e3工作天数中输出。
=if(COUNTIFs(J3:J,J3:J&"",J3:J,">="&N2,J3:J,"<="&O2) = 0 ,"no days worked",SUMPRODUCT((J3:J<>"")/COUNTIFs(J3:J,J3:J&"",J3:J,">="&N2,J3:J,"<="&O2)))
是我到目前为止所拥有的。它一直给我求和的第二部分不能为零。但是如果根据我提供的数据集单独使用该公式,它将给我4。所以我不确定哪里出了问题。
答案 0 :(得分:0)
这就是我想出的。
=SUM(--(FREQUENCY(OFFSET(INDEX(Dates,IFERROR(MATCH(Dstart,Dates,0),MATCH(Dstart,Dates,1)+1)),0,0,COUNTIFS(Dates,">=" & Dstart, Dates,"<=" & Dend)),OFFSET(INDEX(Dates,IFERROR(MATCH(Dstart,Dates,0),MATCH(Dstart,Dates,1)+1)),0,0,COUNTIFS(Dates,">=" & Dstart, Dates,"<=" & Dend)))>0))
要使该公式更具可读性,基本上是不成功的,如下所示创建了一个命名范围。
Dstart = your D2
Dend = your E2
Dates = your J:J
您可以将名称替换为地址。但是,我不建议使用J:J,因为这3个字符代表140万个重复引用的单元格。如果您的数据较小,我建议为它们保留一个命名范围,并对该范围的大小进行一些限制。 请注意,该公式是ated肿的,因为它仅计算唯一值。简而言之,它的作用是找到与Dstart匹配的第一个单元格,然后通过计算存在的条目数并最后计算该范围内的唯一项来建立最后一个单元格。