公式在Excel计算字符串中的子串的出现(Formula in Excel to count occ

2019-08-01 14:15发布

我想指望出现在Excel中的字符串数据的列内的子串的次数。 请看下面的例子。

字符串数据(微博)的列如下:

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

与“子”(微博网名)的列如下:

   B
1  username
2  AwesomeUser

我想用一个公式来计算的时间,从B1,B2等子串出现在字符串列A例如数量:一个公式搜索B1将返回“2”和B2的搜索将返回“1”。

我不能做这种方式:

=COUNTIF(A:A, "username")

因为COUNTIF仅查找字符串,而不是子。 这个公式将始终返回“0”。

这里有一个公式我认为可能做到这一点:

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

不幸的是,我在B列16000项和数以万计的A,所以计算字符不会高功率PC上连工作(也由该函数返回的结果是令人怀疑)。

我想过使用:

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

但COUNTIF需要与运营商星的字符串; 我需要使用,由于数据量的单元格引用。

我的问题:有没有人知道我可以用一个公式来进行? 如果使用COUNTIF,我怎么在语句的条件部分单元格引用(或使用函数来代替在COUNTIF语句的条件部分中引用的单元格中字符串)?

我知道我可以分析数据,但我想知道如何做到这一点在Excel中。

Answer 1:

就快成功了,用

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

(在Excel 2010测试)



Answer 2:

一个非常简单的解决方案的Excel用于x-字符串( “ABC”)为Y-字符串( “ABC ABC 123 23dfABC”)的发生:

  1. 识别的y的字符串的长度。 LY = LEN(y)的
  2. 替代的x串由X1-串(追加仅有1任何支持的字符至x串的炭。例如“ABC” =>“ABC_”),并计算新的字符串Y1-串的长度。 LY1 = LEN(替代(Y,X,X 1))。
  3. 没有沿y串= LY1-LY的x串的发生)的

发生数:LEN(替代(Y,X,X 1)) - LEN(y)的

命名法为理解:X-字符串: “ABC” X1-字符串: “ABC_” Y-字符串: “ABC ABC 123 23dfABC” Y1-字符串: “” ABC_ 123 ABC_ 23dfABC_”



文章来源: Formula in Excel to count occurrences of substrings within strings