如果表包含非数字值,则使用多个列和行条件获取 SUMPRODUCT

问题描述 投票:0回答:1

enter image description here


在单元格

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)))

但是,使用此公式时,我遇到的问题是只能应用一行和一列条件,而不能应用多个条件。

您知道如何解决这个问题吗?

excel excel-formula
1个回答
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)

© www.soinside.com 2019 - 2024. All rights reserved.