首页 文章

Excel中的公式计算字符串中子字符串的出现次数

提问于
浏览
19

我试图计算子字符串在Excel中的字符串数据列中出现的次数 . 请参阅以下示例 .

字符串数据列(推文)如下所示:

A
1  An example string with @username in it
2  RT @AwesomeUser says @username is awesome

带有“substrings”(Twitter屏幕名称)的列如下所示:

B
1  username
2  AwesomeUser

我想使用公式来计算来自B1,B2等的子字符串出现在A列的字符串中的次数 . 例如:搜索B1的公式将返回“2”并且搜索B2将返回“1” .

我不能这样做:

=COUNTIF(A:A, "username")

因为COUNTIF只查找字符串,而不是子字符串 . 该公式将始终返回“0” .

这是formula我认为可能会这样做:

=SUMPRODUCT((LEN(A:A)-(LEN(SUBSTITUTE(A:A,"username",""))))/LEN("username"))

不幸的是,我在B列中有16,000个条目,在A中有数万个,因此即使在高功率PC上计数字符也不起作用(同样,该函数返回的结果也是可疑的) .

我想过使用:

=COUNTIF(A:A, "*username*")

但COUNTIF需要一个带星形运算符的字符串;由于数据量的原因,我需要使用单元格引用 .

我的问题:有谁知道如何使用这个公式?如果使用COUNTIF,如何在语句的条件部分中获取单元格引用(或使用函数替换COUNTIF语句的条件部分中引用的单元格中的字符串)?

我知道我可以解析数据,但我想知道如何在Excel中执行此操作 .

2 回答

  • 35

    你快到了,使用

    =COUNTIF(A:A, "*"&B1&"*")
    

    (在Excel 2010中测试)

  • 1

    A very Simple Excel Solution for occurrence of x-string ("ABC") into y-string ("ABC 123 ABC 23dfABC"):

    • 确定y字符串的长度 . Ly = len(y)

    • 用x1-string替换x-string(仅将任何支持字符的1个字符串附加到x-string . 例如"ABC" => "ABC_")并计算新字符串y1-string的长度 . Ly1 = len(替代(y,x,x1)) .

    • 在y-string = Ly1-Ly中出现x-string的次数

    发生次数:len(替代(y,x,x1)) - len(y)

    Nomenclature for Understanding: x-string:"ABC" x1-string:"ABC_" y-string:"ABC 123 ABC 23dfABC" y1-string:“_ "ABC_ 123 ABC_ 23dfABC_"

相关问题