Excel中的公式来计算string中子string的出现次数

我正在计算一个子string出现在Excel中一个string数据列的次数。 请看下面的例子。

string数据列(tweets)如下所示:

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

“子string”(Twitter屏幕名称)的列如下所示:

  B 1 username 2 AwesomeUser 

我想用一个公式来计算B1,B2等string出现在列A中的string的次数。例如:searchB1的公式将返回“2”,并且searchB2将返回“1”。

我不能这样做:

 =COUNTIF(A:A, "username") 

因为COUNTIF只查找string,而不是子string。 这个公式总会返回“0”。

以下是我认为可以这样做的一个公式 :

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

不幸的是,我在B列中有16,000个条目,在A中有几万个条目,所以即使在高功率的PC上也不能工作(也是由该function返回的结果是可疑的)。

我想过使用:

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

但是COUNTIF需要一个带星号运算符的string; 由于数据量的原因,我需要使用单元格引用。

我的问题:有谁知道我可以如何使用这个公式? 如果使用COUNTIF,如何在语句的条件部分中获取单元格引用(或者使用函数replaceCO​​UNTIF语句的条件部分中引用的单元格中的string)?

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

你快到了,用

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

(在Excel 2010中testing)

一个非常简单的Excel解决scheme发生xstring(“ABC”)到ystring(“ABC 123 ABC 23dfABC”):

  1. 确定Ystring的长度。 Ly = len(y)
  2. 用x1-stringreplacex-string(只能将任何支持的字符附加到x-string,例如“ABC”=>“ABC_”),并计算新stringy1-string的长度。 Ly1 = len(替代(y,x,x1))。
  3. 在y-string = Ly1-Ly中没有发生x-串)

发生次数:len(substitute(y,x,x1)) – len(y)

理解命名: x-string:“ABC”x1-string:“ABC_”y-string:“ABC 123 ABC 23dfABC”y1-string:“”ABC_ 123 ABC_ 23dfABC_“