【发布时间】:2012-10-08 12:55:32
【问题描述】:
我正在尝试计算子字符串出现在 Excel 中的一列字符串数据中的次数。请看下面的例子。
字符串数据(推文)列如下所示:
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”。
这是一个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 中进行。
【问题讨论】:
-
请注意,您引用的 SUMPRODUCT 公式与 Chris 的 COUNTIF 函数略有不同。 COUNTIF 最多只会对每个单元格计数一次,因此每个单元格要么“得分”为 1,要么为零。 SUMPRODUCT 公式将计算
ALL实例或“用户名”,即使它在任何单个单元格中出现多次 - 如果您想使用该公式,您应该限制范围而不是使用整个列
标签: excel excel-formula