Excel:带有波形符的字符串上的 CountIf() 结果不一致

问题描述 投票:0回答:1

match()
CountIf()
中,我将波浪号加倍以允许搜索正常工作。但我遇到过两种情况,这对
CountIf()
不起作用。

在下表中,E 列和 F 列显示,替换双波浪号可以让

match()
正确找到列表中的字符串。但 G 至 J 列显示,
CountIf()
中的相同替换适用于第 4 行和第 5 行,但不适用于第 6 行和第 7 行。相反,在第 6 行和第 7 行,
CountIf()
无需替换即可工作,并且不适用于替换。

B C D E F G H J
字符串 公式 结果 公式 结果 公式 结果 公式 结果
4 {FK*BD6Qc)9j~aHa =匹配($B4, $B:$B, 0) #不适用! =匹配(替换($B4,“~”,“~~”),$B:$B,0) 4 =COUNTIFS($B:$B, $B4) 0 =COUNTIFS($B:$B, SUBSTITUTE($B4, "~", "~~")) 1
5 ;.D~n[sg9#?$}z3` =匹配($B5, $B:$B, 0) #不适用! =匹配(替换($B5,“~”,“~~”),$B:$B,0) 5 =COUNTIFS($B:$B, $B5) 0 =COUNTIFS($B:$B, SUBSTITUTE($B5, "~", "~~")) 1
6 JFxa7V9."Ap~/Q2g =匹配($B6, $B:$B, 0) #不适用! =匹配(替换($B6,“~”,“~~”),$B:$B,0) 6 =COUNTIFS($B:$B, $B6) 1 =COUNTIFS($B:$B, SUBSTITUTE($B6, "~", "~~")) 0
7 dP4%5>作者:{Bw#Vt~D =匹配($B7, $B:$B, 0) #不适用! =匹配(替换($B7,“~”,“~~”),$B:$B,0) 7 =COUNTIFS($B:$B, $B7) 1 =COUNTIFS($B:$B, SUBSTITUTE($B7, "~", "~~")) 0

这是怎么回事?考虑

CountIf()
标准范围内存在波浪号的可能性的正确方法是什么?

excel countif tilde
1个回答
0
投票

搜索的问题是您拥有的数据包含通配符,并且您正在使用的函数(如 COUNTIFMATCH)接受通配符的使用。您可以在此处找到支持通配符的函数列表。

您需要做的是使用不支持通配符的函数,例如SUMPRODUCT,其缺点是仅适用于有限范围而不是完整列。

这是如何使用公式的示例。

=SUMPRODUCT(--($B$4:$B$7=B2))

这里有一个解释:

$B$4:$B$7=B2
这会将范围与列相匹配,并将匹配标记为 TRUE 或 FALSE

--()
这会将匹配项转换为数字。 1 代表 TRUE,0 代表 FALSE

SUMPRODUCT
将获取上一场比赛的整个响应并对值进行求和。

B C D
字符串 公式 结果
4 {FK*BD6Qc)9j~aHa =SUMPRODUCT(--($B$4:$B$7=B4)) 1
5 ;.D~n[sg9#?$}z3` =SUMPRODUCT(--($B$4:$B$7=B5)) 1
6 JFxa7V9."Ap~/Q2g =SUMPRODUCT(--($B$4:$B$7=B6)) 1
7 dP4%5>作者:{Bw#Vt~D =SUMPRODUCT(--($B$4:$B$7=B7)) 1

这样您就不需要替换字符串中的波浪号,并且仍然可以获得匹配项。

© www.soinside.com 2019 - 2024. All rights reserved.