在单元格
I5
中,我使用以下公式根据多列和行条件从表格中提取 sum
:=SUMPRODUCT(IF(I3="";1;(A3:A8=I3))*IF(I4="";1;(B3:B8=I4))*IF(I1="";1;(C1:G1=I1))*IF(I2="";1;(C2:G2=I2))*(C3:G8))
这个公式一直有效,直到我插入
Column D
。现在我收到错误 #VALUE!
结果。 Column D
不包含数字数据的情况。
因此,我想也许这样的公式可以解决这个问题:
=SUMIF(A1:A8;I3;INDEX(A1:G1;MATCH(I1;A1:G1;0)))
但是,使用此公式时,我遇到的问题是只能应用一行和一列条件,而不能应用多个条件。
您知道如何解决这个问题吗?
由于您反复想要使用相同的逻辑(如果单元格值为空,则取所有范围值,否则仅取等于单元格值的范围值),我们可以将其用作 LAMBDA:
=LET(z,LAMBDA(x,y,IF(x="",1,y=x)),SUM(z(G1,C1:E1)*z(G2,C2:E2)*z(G3,A3:A8)*z(G4,B3:B8)*C3:E8))
z
是函数,x
是单元格值,y
是范围。
如果我们写 z(G1,C1:E1)
,它的真正意思是:IF(G1="",1,C1:E1=G1)
这需要您拥有 Office 365。
否则你应该把它全部写出来:
=SUMPRODUCT(IF(G1="",1,C1:E1=G1)*IF(G2="",1,C2:E2=G2)*IF(G3="",1,A3:A8=G3)*IF(G4="",1,B3:B8=G4)*C3:E8)