考虑到excel表对象中给定列的多个选择,我想知道在按值过滤列子集之后是否有一种简单的方法来计算行数。
假设我有以下excel表:
A B C
a1 b1 c1
a2 b2 c1
a1 b2 c2
a2 b1 c2
a1 b3 c3
a3 b1 c3
保存在excel表中,名为:Table1
和我希望找到列A
有值a1
或a2
的所有行,列B
具有值:b1
。结果应该是2。
我能够使用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"))
OR
函数没有帮助,因为它不返回数组结果,而且我不能在实际示例中使用数组公式,因为我只需要对一个列应用多个选择,但是对于我选择的其余列,它只是一个值。
这似乎是在excel公式中表示多个筛选标准操作的一个很好的技巧,但是excel公式在列中必须满足多个条件时非常冗长,如上面的示例所示。
在我的解决方案中,对于表中的行计数,除了第一列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"))
发布于 2019-03-28 11:24:33
尝试:
=SUMPRODUCT((Table1[A]="a1")+(Table1[A]="a2"),--(Table1[B]="b1"))
由于任何给定的单元格都不能同时为"a1“和"a2",如果两者都为真,则之和为1
,如果两者均为真,则为0
https://stackoverflow.com/questions/55405207
复制