计算excel表格中列满足多个条件的行数(模拟多个筛选条件)
考虑到excel表对象中给定列的多个选择,我想知道是否有一种简单的方法可以在按值过滤列子集后计算行数 假设我有以下excel表格:计算excel表格中列满足多个条件的行数(模拟多个筛选条件),excel,excel-formula,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 保存在excel表格中,名称为:Table1,我想查找列A具有值a1或a2且列B具有值:b1的所有行。结果应该是2 我可以使用SUMPRODUCT函数执行此操作,并使用--运算符将逻辑值转换为[0,1]: = SU
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"))
或
或
函数没有帮助,因为它不返回数组结果,并且我不能在我的实际示例中使用数组公式,因为我需要仅对一列应用多个选择,但对于我选择的其余列,它只是一个值
在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"))
尝试:
由于任何给定的单元格不能同时为“a1”和“a2”,因此如果其中一个为真,则总和将为
1
,如果两个都不为真,则总和将为0
,我想,因为我们要将--
运算符添加到布尔值中,因此可以删除。它可能是这样的:=SUMPRODUCT((表1[A]=“a1”)+(表1[A]=“a2”),--(表1[B]=“b1”)
是的,事实上——我太习惯于将--
与SUMPRODUCT
结合使用,但任何东西都可以使公式更简单
= 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"))
=SUMPRODUCT((Table1[A]="a1")+(Table1[A]="a2"),--(Table1[B]="b1"))