【问题标题】:Excel: How to Count TRUE in Filtered "Named Ranges"Excel:如何在过滤的“命名范围”中计算 TRUE
【发布时间】:2016-02-26 14:22:21
【问题描述】:

经过长时间的搜索,我还没有找到答案。我觉得我在问一些很不寻常的问题,比如“你怎么数独角兽?”

就这样吧:

您如何在 Excel 中...计算过滤的“命名范围”中 TRUE 单元格的数量?

我找到了一个可以指定列 - 行索引的方法,例如 A2:A100。

=SUMPRODUCT(SUBTOTAL(3,OFFSET(A2:A100,ROW(A2:A100)-MIN(ROW(A2:A100)),,1)), --(A2:A100=TRUE))

这对我不起作用。必须是命名范围。我也不能使用辅助列。我宁愿不使用VBA。并且......还有一个额外的魔力要求:我的命名范围是整个列、标题和所有内容。无论如何都可以使用 SUBTOTAL。

【问题讨论】:

    标签: excel worksheet-function


    【解决方案1】:

    您使用的是哪个版本的 Excel? 2013年,我可以正常工作了。

    我用 50 个 TRUE 和 49 个 FALSE 值填充 A2:A100,用 99 个 RAND() 值填充 B2:B100。然后我过滤了 B 列中的各种数字过滤器,以下所有公式都正常工作,只计算 A 列中可见的 TRUE 值。

    示例 1:原始公式

    =SUMPRODUCT(SUBTOTAL(3,OFFSET(A2:A100,ROW(A2:A100)-MIN(ROW(A2:A100)),,1)), --(A2:A100=TRUE))
    

    示例 2:非动态精确命名范围

    名为“NonDynamic”的范围并设置为:

    =Sheet1!$A$2:$A$100
    

    公式:

    =SUMPRODUCT(SUBTOTAL(3,OFFSET(NonDynamic,ROW(NonDynamic)-MIN(ROW(NonDynamic)),,1)), --(NonDynamic=TRUE))
    

    示例 3:动态命名范围

    名为“动态”的范围并设置为:

    =OFFSET(Sheet1!$A$1,1,0,COUNTA(Sheet1!$A:$A)-1)
    

    公式:

    =SUMPRODUCT(SUBTOTAL(3,OFFSET(Dynamic,ROW(Dynamic)-MIN(ROW(Dynamic)),,1)), --(Dynamic=TRUE))
    

    注意:您可以选择动态命名范围吗?它们通常比引用整列的效率要高得多,尤其是在第一行和最后一行数据之间的列中没有空白值的情况下。

    示例 4:整列的非动态命名范围

    名为“WholeColumn”的范围并设置为:

    =Sheet1!$A:$A
    

    公式:

    =SUMPRODUCT(SUBTOTAL(3,OFFSET(WholeColumn,ROW(WholeColumn)-MIN(ROW(WholeColumn)),,1)), --(WholeColumn=TRUE))
    

    所有四个示例在 Excel 2013 中产生完全相同的结果。例如,我在 B 列 > 0.5 上进行过滤;这留下了总共 50 个可见的 26 个 TRUE 值。所有四个公式都从 50 更改为 26。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多