我想知道是否存在一种简单的方法来计算值,考虑到excel表对象中给定列的多个选择,从而通过值过滤列的子集。
假设我有以下excel表:
A B C
a1 b1 c1
a2 b2 c1
a1 b2 c2
a2 b1 c2
a1 b3 c3
a3 b1 c3
以名称Table1
保存在excel表中,我想查找列A
的值为a1
或a2
和列{的所有行{1}}的值为:B
。结果应为2。
我可以使用b1
函数,并使用SUMPRODUCT
运算符将逻辑值转换为[0,1]
:
--
在我的实际示例中,我有多于三列,其中至少一列可以满足多个条件,所以我想知道是否有一种方法可以使用较少的冗长语法。例如,我正在尝试类似的操作,但是它不起作用:
= SUMPRODUCT(--(Table1[A]="a1"),--(Table1[B]="b1"))
+ SUMPRODUCT(--(Table1[A]="a2"),--(Table1[B]="b1"))
或
= SUMPRODUCT(--(Table1[A]="a1|ab2"),--(Table1[B]="b1"))
=SUMPRODUCT(--(Table1[A]=OR("a1", "a2")), --(Table1[B]="b1"))
函数无济于事,因为它不会返回数组结果,并且在我的实际示例中,我无法使用数组公式,因为我只需要为一列选择多个选项,但是对于其余的列,我选择的只是一个值。
在excel公式中表示多个过滤条件动作似乎是个好技巧,但是当excel公式必须在一个列中必须满足多个条件时,它非常冗长,就像上面的示例一样。
在我的解决方案下,这类似于对表中的行进行计数,其中除第一列OR
以外,我们对每一列仅过滤一个值,而对第一列A
则过滤两个可能值:
= SUMPRODUCT(--(Table1[A]="a1"),--(Table1[B]="b1"),
--(Table1[C]="c1"), ...Table1[Z]="z1"))
+ SUMPRODUCT(--(Table1[A]="a2"),--(Table1[B]="b1"),
--(Table1[C]="c1"), ...Table1[Z]="z1"))
答案 0 :(得分:1)
尝试:
=SUMPRODUCT((Table1[A]="a1")+(Table1[A]="a2"),--(Table1[B]="b1"))
由于任何给定的单元格都不能同时为“ a1”和“ ”,因此如果总和为1
,则总和为0
>