我的数据:超过 200 行,每行有三个值,每个值代表一个不同的日期。只列出了工作日的值,因此有时可能会因为假期而缺少几天甚至整周的值。
我需要的是:对于每一个完成的本周每天至少排一行(因此该天出现在列表中)我需要将 DIF 列中的值相乘(公式如下 =(1-ValueDayOne)*(1-ValueDayTwo)-1),然后创建这些每周值的列表。
有人能帮我吗?如果我写的内容不是 100% 清楚,请随时提问,我尝试指定所有必需的信息,但我可能无意中遗漏了一些东西。
答案1
复制到“WEEKDIF”列的公式是:
=PRODUCT(IF(($A$2:$A$21>=A2-WEEKDAY(A2,3))*($A$2:$A$21<A2-WEEKDAY(A2,3)+7),(1+$B$2:$B$21),1))-1
这是一个数组公式,因此需要用CTRL+ SHIFT+来完成它ENTER。
怎么运行的:
A2-WEEKDAY(A2,3)
并A2-WEEKDAY(A2,3)+7)
计算星期一的实际日期(当前行的日期所在的周)和下周的日期。($A$2:$A$21>=A2-WEEKDAY(A2,3))*($A$2:$A$21<A2-WEEKDAY(A2,3)+7)
- 检查某一行是否在实际周内。=IF(...,(1+$B$2:$B$21),1))-1
返回1+diff
实际周数和1
所有其他周数(如果我们不想改变结果,则需要乘以 1)。=PRODUCT(IF(...)-1
- 根据原始公式计算所有数字的乘积并减去 1。
注意:为了保持计算的一致性,我将1-dif
其改为1+dif
,如果我的假设不正确,您可以将其改回来。