我目前正在使用=SUMPRODUCT(A2:A200=A2, G2:G200)
现在我要做的是,如果WeeklyReport列A2 == DailyReport列A然后在DailyReport B列中取日期并测试它落在WeeklyReport B列和C列中的日期范围=IF(AND(DailyReport.B2>=B2,DailyReport.B2<=C2),1, 0)
并且如果确实如此,则将每日总时数添加到DailyReports M列的WeeklyReports D列中的总数
我希望这很清楚,如果不是,请让我知道我还能做些什么来使我的问题更清楚。
提前致谢!
答案 0 :(得分:2)
我认为从M列汇总值,它本身就是一个总和,不符合目标。求和总和会产生太大的值,而且M列不会按日期过滤,因此会包含错误日期的数字。
我更喜欢扩展您使用SUMPRODUCT
获取列M数的方式。而不仅仅是检查匹配的名称,再添加两个参数来检查日期或等于&#34;周开始日期&#34;早于或等于&#34;周结束日期&#34;。
因此,三个true/false
或1/0
参数(其中乘以1表示true保留值,乘以0表示false表示删除值)和小时值的第四个参数求和:< / p>
=SUMPRODUCT(DailyReport.A$2:A$200=A2, DailyReport.B$2:B$200>=B2, DailyReport.B$2:B$200<=C2, DailyReport.G$2:G$200)
海报也非常接近使用SUMIFS
的解决方案(在评论中)。默认条件测试是=
,但是对于日期比较,我们要使用大于和小于运算符。 LibreOffice / OpenOffice语法是将关系运算符放在双引号中,然后使用&
将它们连接到包含测试值的单元格地址:
=SUMIFS(DailyReport.G$2:G$200, DailyReport.A$2:A$200, A2, DailyReport.B$2:B$200, ">=" & B2, DailyReport.B$2:B$200, "<=" & C2)
在这两种情况下,我都包含$
个符号,以使行号绝对。如果公式是复制粘贴,绝对单元格地址不会改变;在这种情况下,复制粘贴可能在WeeklyReport工作表上的多行上,以获得多人的小时总数。