【发布时间】:2020-07-11 04:06:46
【问题描述】:
我想根据多个可选条件计算 excel 中的行数。我正在使用COUNTIFSF函数并且它可以工作,但是随着条件的增长,excel公式需要考虑所有可能的组合,使得公式非常大。我想知道是否有更好的方法。
这是两个过滤器的示例(每列一个),在这两种情况下,我想考虑它们中的每一个都可以是可选的。它由每个单元格上的值表示:ALL:
我对单元格C10 使用以下公式:
=IF(
AND(B1<>"ALL", B2<>"ALL"), COUNTIFS(TB[Col1],B1, TB[Col2],B2),
IF(AND(B1<>"ALL", B2="ALL"), COUNTIFS(TB[Col1],B1,TB[Col1],"*"),
IF(AND(B1="ALL", B2<>"ALL"), COUNTIFS(TB[Col1],"*", TB[Col1],B2),
COUNTIFS(TB[Col1],"*", TB[Col1],"*"))))
TB 是我创建的 Excel 表格对象
如果我将值 ALL 分配给两个过滤器,它会计算给定列的所有行,例如,Filter1=ALL 和 Filter2=ALL 的场景将返回 6 和:Filter1=A 和 @987654332 @ 将返回值:2
如您所见,添加另一个过滤器和列将需要 8 种可能的组合来评估。在我的真实示例中,我需要 4 个过滤器,因此此解决方案不会升级。
另一种解决方法是添加额外的不必要的列,根据过滤器的值指示要考虑哪些单元格 (0, 1)。这意味着每个过滤条件都有一个额外的列。我想知道是否有更简单的方法可以做到这一点,而不使用数据透视表。
注意:添加文本表示以方便在excel中重现:
Filter1 ALL Col1 Col2
Filter2 ALL A AA
B BB
C CC
D DD
A AA
D DD
【问题讨论】:
标签: excel excel-formula