不使用SUMPRODUCT对表格非FALSE行求和:计算指定状态当月周四数乘积总和
实现方案
适用Excel 365/2021、谷歌表格(支持动态数组)
直接使用SUM嵌套BYROW即可,无需辅助列也不用SUMPRODUCT,公式如下(将A1:D100替换为你的实际数据范围即可):
=SUM(BYROW(A1:D100,LAMBDA(x,IF(OR(INDEX(x,1)="En cours",INDEX(x,1)="Engagé"),NETWORKDAYS.INTL(IF(MONTH(NOW())=MONTH(INDEX(x,2)),INDEX(x,2),EOMONTH(TODAY(),-1)+1),IF(MONTH(NOW())=MONTH(INDEX(x,3)),INDEX(x,3),EOMONTH(TODAY(),0)),"1110111",holidays)*7*INDEX(x,4),0)))
如果你的办公软件区域设置用分号作为参数分隔符,把公式内的逗号全部替换为分号即可。
适用旧版Excel(无LAMBDA函数)
用数组公式实现,输入完成后按Ctrl+Shift+Enter确认生效,公式如下(将A1:A100/B1:B100等范围替换为你的实际数据范围即可):
=SUM(IF((A1:A100="En cours")+(A1:A100="Engagé"),NETWORKDAYS.INTL(IF(MONTH(NOW())=MONTH(B1:B100),B1:B100,EOMONTH(TODAY(),-1)+1),IF(MONTH(NOW())=MONTH(C1:C100),C1:C100,EOMONTH(TODAY(),0)),"1110111",holidays)*7*D1:D100,0))
逻辑说明
- 不符合A列取值条件的行直接返回0,求和时不会影响最终结果,自动实现仅统计有效行的需求
- 全程未使用SUMPRODUCT函数,完全符合要求
内容的提问来源于stack exchange,提问作者Sebbie
相关产品推荐
相关产品推荐

