【问题标题】:Countif dynamic criteria rangeCountif 动态标准范围
【发布时间】:2015-02-05 15:20:21
【问题描述】:

我有一个包含类似值的电子表格
csrini/Zircon Free csrini PAC PAC PAC PAC PAC PAC PAC PILLAR PILLAR

我想排除某些文本,例如 (PAC PDU and Pillar )。 我想使用一个动态的COUNTIF 公式,这样当我想添加到排除项时,我可以不用做太多工作。

是否可以在条件中添加范围?目前我正在使用下面的公式。

 =COUNTIFS(B6:M6,"<>*PAC*",B6:M6,"<>*PDU*",B6:M6,"<>*PILLAR*",B6:M6,"<>*Free*") 

谢谢

【问题讨论】:

    标签: excel excel-formula countif


    【解决方案1】:

    要使其动态工作,您需要使用数组公式。

    首先定义您的单词以在某处排除列。在这个例子中我将使用A:A。我还将使用B:B 作为搜索范围。

    不区分大小写的搜索公式为:

    =COUNTA($B:$B)-SUMPRODUCT((IF(ISERROR(SEARCH(TRANSPOSE(INDIRECT("A1:A"&COUNTA($A:$A))),$B:$B)),0,1)))
    

    对于区分大小写的搜索,将 SEARCH 更改为 FIND

    =COUNTA($B:$B)-SUMPRODUCT((IF(ISERROR(FIND(TRANSPOSE(INDIRECT("A1:A"&COUNTA($A:$A))),$B:$B)),0,1)))
    

    使用crtl + shift + enter 输入数组公式

    此公式首先使用COUNTA 获取不为空的 B 列的整个计数,然后从中减去来自A:A 的条件计数在B:B 中找到。它使用SEARCHFIND 检查B:B 列中的每个标准值,然后SUMPRODUCT 将所有匹配项相加。

    需要注意的一个重要部分是TRANSPOSE,这只是因为我将我的标准保存在一个列列表中。如果您将条件保留在一行而不是一列中,然后删除转置,FIND 函数只需要它是一个水平数组。

    每当您在 A 列中添加数据行时,INDIRECT 公式都会更新范围,因此您无需手动更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-29
      • 2022-10-05
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 2023-03-22
      相关资源
      最近更新 更多