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,如何在语句的条件部分中获取单元格引用(或者使用函数replaceCOUNTIF语句的条件部分中引用的单元格中的string)?
我知道我可以parsing数据,但我想知道如何在Excel中做到这一点。
你快到了,用
=COUNTIF(A:A, "*"&B1&"*")
(在Excel 2010中testing)
一个非常简单的Excel解决scheme发生xstring(“ABC”)到ystring(“ABC 123 ABC 23dfABC”):
- 确定Ystring的长度。 Ly = len(y)
- 用x1-stringreplacex-string(只能将任何支持的字符附加到x-string,例如“ABC”=>“ABC_”),并计算新stringy1-string的长度。 Ly1 = len(替代(y,x,x1))。
- 在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_“