如何计算字符串 [Excel] 中包含的确切文本
How to count exact text contain in string [Excel]
我已经使用下面的这些公式来计算字符串中包含的确切文本,但公式仍然错误地计算了它。例如,我想在table中统计"ZIKA"个测试代码,答案应该是两个。但公式也将 ZIKA2 算作 ZIKA。如何从计数中忽略 ZIKA2?
测试
- HS2、CCAL、EGFR、AFB
- 寨卡病毒、AG21
- PPB, ZIKA2
- 寨卡病毒、AG21
我已经尝试过这些公式:
=SUMPRODUCT(--(ISNUMBER(FIND("ZIKA",F:F))))
还有
=COUNTIF(F:F,"ZIKA")
您可以准确计算寨卡病毒和逗号分隔病毒
=COUNTIF(F:F,"ZIKA")+COUNTIF(F:F,"ZIKA,*")+COUNTIF(F:F,"*, ZIKA")+COUNTIF(F:F,"*, ZIKA,*")
试试这个正则表达式,它可能需要一个辅助列。我还没有测试那么多。
按 ALT + F11 打开 VBA 编辑器。
单击插入 -> 模块并复制粘贴下面的代码。
Function Regex(Cell, Search)
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
RE.Pattern = "(\b" & Search & "\b)"
RE.Global = True
RE.IgnoreCase = True
Set Matches = RE.Execute(Cell)
For Each res In Matches
Regex = Regex & "," & res
Next res
Regex = Mid(Regex, 2)
End Function
如果它在您 运行 它所在的单元格中发现寨卡病毒,它将 return "ZIKA"。
然后您只需在辅助列中计算 ZIKA。
更新了一个新代码,您可以在其中更改搜索。
与 =regex(A1, "ZIKA")
一起使用
我假设你的数据遵循这种格式
xxx, yyy, zzz
space after comma
您可能需要将公式分成 3 个部分
=COUNTIF(F:F,"ZIKA,*")+COUNTIF(F:F,"*, ZIKA")+COUNTIF(F:F,"ZIKA")
第一部分将计算以 ZIKA 开头的那些,第二部分将计算以 ZIKA 结尾的那些,最后我们应该只计算那些以 ZIKA 结尾的寨卡病毒
我已经使用下面的这些公式来计算字符串中包含的确切文本,但公式仍然错误地计算了它。例如,我想在table中统计"ZIKA"个测试代码,答案应该是两个。但公式也将 ZIKA2 算作 ZIKA。如何从计数中忽略 ZIKA2?
测试
- HS2、CCAL、EGFR、AFB
- 寨卡病毒、AG21
- PPB, ZIKA2
- 寨卡病毒、AG21
我已经尝试过这些公式:
=SUMPRODUCT(--(ISNUMBER(FIND("ZIKA",F:F))))
还有
=COUNTIF(F:F,"ZIKA")
您可以准确计算寨卡病毒和逗号分隔病毒
=COUNTIF(F:F,"ZIKA")+COUNTIF(F:F,"ZIKA,*")+COUNTIF(F:F,"*, ZIKA")+COUNTIF(F:F,"*, ZIKA,*")
试试这个正则表达式,它可能需要一个辅助列。我还没有测试那么多。
按 ALT + F11 打开 VBA 编辑器。
单击插入 -> 模块并复制粘贴下面的代码。
Function Regex(Cell, Search)
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
RE.Pattern = "(\b" & Search & "\b)"
RE.Global = True
RE.IgnoreCase = True
Set Matches = RE.Execute(Cell)
For Each res In Matches
Regex = Regex & "," & res
Next res
Regex = Mid(Regex, 2)
End Function
如果它在您 运行 它所在的单元格中发现寨卡病毒,它将 return "ZIKA"。
然后您只需在辅助列中计算 ZIKA。
更新了一个新代码,您可以在其中更改搜索。
与 =regex(A1, "ZIKA")
我假设你的数据遵循这种格式
xxx, yyy, zzz
space after comma
您可能需要将公式分成 3 个部分
=COUNTIF(F:F,"ZIKA,*")+COUNTIF(F:F,"*, ZIKA")+COUNTIF(F:F,"ZIKA")
第一部分将计算以 ZIKA 开头的那些,第二部分将计算以 ZIKA 结尾的那些,最后我们应该只计算那些以 ZIKA 结尾的寨卡病毒