countif 标准范围和标准中的名称引用

Posted

技术标签:

【中文标题】countif 标准范围和标准中的名称引用【英文标题】:name reference in countif criteria_range and criteria 【发布时间】:2017-05-07 13:16:33 【问题描述】:

Sheet1 在“A”列中包含 IP 地址。

示例:

    A
1.1.1.2
1.1.1.3
1.1.1.3
1.1.1.3
1.1.1.2
1.1.1.2

我有列的名称参考:'ip'。对于 ips,我给 1.1.1.2 的名称参考为“ip1_”,为 1.1.1.3 的名称参考为“ip2_”

我想计算“1.1.1.3”和“1.1.1.2”在 A 列中下降的次数。

我使用 countif 公式为:

=countif(ip,ip1_,ip,ip2_)

但结果是“0”。如果我只使用一个标准,那么它会给出准确的计数,但是在具有“Criteria_range”和“Criteria”名称引用的多个标准上它不起作用。

我在表格 1 中有 IP 地址,因此将长单元格引用写成很累人

=countif(sheet1!A:A,"1.1.1.2",sheet1!A:A,"1.1.1.3")

而且在标准中写入完整的 IP 地址也会导致错误。

【问题讨论】:

如果你想计算多个标准,你应该使用COUNTIFS(最后带有和s)。但是,这样的公式将寻找两个标准都为真,而这绝不会是这样。要同时计算两者,请使用加法,例如 COUNTIF(ip,ip1_) + COUNIF(ip, ip2_) 【参考方案1】:

将 COUNTIF 包装在 SUM 中,并使 OR 条件成为字符串常量数组。

=SUM(COUNTIF(A:A, "1.1.1.2","1.1.1.3"))

不是数组(即 CSE)公式。请注意,出于演示目的,我将您的其​​中一个值更改为 1.1.1.4。

根据您的 IP 范围内有多少子网,以下通配符语法可能更适合您。

=SUM(COUNTIF(A:A, "*.2","*.3"))

这种对 COUNTIF 应用 OR 条件的方法不能用于字符串常量数组中的命名范围。但是,如果 1.1.1.2 和 1.1.1.3 在两个单元格命名范围(例如 ips_)中,则它可以作为 CSE 的数组公式使用 -

=SUM(COUNTIF(ip, ips_))

【讨论】:

根据您的 IP 范围内有多少子网,=SUM(COUNTIF(A:A, "*.2","*.3")) 可能更适合您。 不错。为了完整起见,说明此表单是否可以处理命名常量 ip1_ip2_... 这很好@A.S.H;特别是因为它不能。我会进行编辑。 @Jeeped SUMPRODUCT 没有 CSE 也足够了。通过非连续单元格中的命名常量,我们可以使用 CHOOSE。 @A.S.H - 是的,但是多个单个单元格命名范围并不是一个好主意。如果有很多 IP(经常更改),那么动态命名范围是最好的解决方案。【参考方案2】:

对于非连续范围内的命名范围:

=SUMPRODUCT(COUNTIFS(ip,CHOOSE(1,2,ip1_,ip2_)))

问候

【讨论】:

以上是关于countif 标准范围和标准中的名称引用的主要内容,如果未能解决你的问题,请参考以下文章

Excel - CountIfs 使用列标题和其他列的值作为标准?

excel vlookup里面countif标准

使用Countifs仅根据不同的数据范围计算唯一值

在 countifs 中指定可变长度公式

INDEX MATCH 根据日期范围和名称标准返回多个结果

自动增加COUNTIF日期标准