Excel中用于计数字符串中出现的子字符串的公式

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (46)

我正在尝试计算Excel中字符串数据列中子字符串出现的次数。请看下面的例子。

字符串数据(Tweet)的列如下所示:

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

带有“子字符串”(Twitter屏幕名称)的列如下所示:

   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列中有16,000个条目,在A中有成千上万个条目,所以即使在高功率PC上,计数字符也不能工作(而且,函数返回的结果也是可疑的)。

我想用:

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

但是COUNTIF需要一个带有星型运算符的字符串;由于数据量的关系,我需要使用单元格引用。

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

我知道我解析数据,但我想知道如何在Excel中完成它。

提问于
用户回答回答于
用户回答回答于

将x-string(“abc”)转换为y-string(“abc 123 abc 23dfABC”)的一个非常简单的Excel解决方案:

  1. 识别y-字符串的长度。Ly=len(Y)
  2. 用x1-字符串代替x-字符串(只在x-字符串中附加任何受支持字符的一个字符)。“abc”=>“abc”_)并计算新字符串y1-字符串的长度。Ly1=len(替代(y,x,x1))。
  3. 在y-string=ly1-Ly中出现x-string)

出现次数:Len(替代(y,x,x1))-len(Y)

理解术语:x-string:“abc”x1-string:“abc”_y-string:“abc 123 abc 23dfabc”y1-string:“abc”_123 ABC_23 dfabc_“

扫码关注云+社区