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 标准范围和标准中的名称引用的主要内容,如果未能解决你的问题,请参考以下文章