【问题标题】:Counting Rows in Excel based on optional filter conditions根据可选过滤条件计算 Excel 中的行数
【发布时间】: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=ALLFilter2=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


    【解决方案1】:

    IFs 放入COUNTIFS

    =COUNTIFS(TB[Col1],IF(B1="ALL","*",B1),TB[Col2],IF(B2="ALL","*",B2))
    

    【讨论】:

    • 谢谢,Scott,它试过这个,但我得到了一个错误,我以为我不能使用这个,可能我的公​​式有错误。效果很好!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多