计算excel表中的行,其中列满足多个条件(模拟多重过滤条件)

时间:2019-03-28 19:10:00

标签: excel excel-formula

我想知道是否存在一种简单的方法来计算值,考虑到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的值为a1a2和列{的所有行{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"))

1 个答案:

答案 0 :(得分:1)

尝试:

=SUMPRODUCT((Table1[A]="a1")+(Table1[A]="a2"),--(Table1[B]="b1"))

由于任何给定的单元格都不能同时为“ a1”和“ ”,因此如果总和为1,则总和为0 >