计算单元格中多个不同文本字符串的出现次数

计算单元格中多个不同文本字符串的出现次数

我一直在努力计算多个不同的文本字符串在一个单元格中出现的次数。

在列中A,我有一个包含多种文件类型的文本字符串,并且我试图计算该字符串中每种文件类型出现的数量。

是否有任何公式可以计算文本字符串在单个单元格中出现的次数?


预期结果

在此处输入图片描述

答案1

是否有任何公式可以计算文本字符串在单个单元格中出现的次数?

虽然不是直接的,但你可以计算出来:

=(LEN(A1) - LEN(SUBSTITUTE(A1,"doc",""))) / LEN("doc")


更新

如果将公式改为仅查找整个单词,则标准 Excel 公式会变得非常复杂。

在这里我使用免费的正则表达式查找/替换加入。

你可以使用这个公式:

=(LEN(A1)-LEN(RegExReplace(A1,"(\W?)doc(?!\w)","$1")))/LEN("doc")

怎么运行的:

  • (?!\w)是负向前瞻,仅考虑doc其后不跟该字母的情况
  • (\W?)- 因为这个插件不支持后视,这里我使用一个组构造,在之前寻找一个非字母doc

(注意:我喜欢这个插件但与它没有任何关联)

答案2

对于您的具体情况,公式解决方案相对简单。

输入以下公式B2,然后按 ctrl-enter/copy-paste/fill-down/auto-fill 将其填充到表格其余列中:

=(LEN($A2&",")-LEN(SUBSTITUTE($A2&",","/doc,","")))/LEN("/doc,")

对其他列重复此公式,将 更改doc为列的文件类型。但是,对于no. of text列,您需要使用plain而不是text

解释:

在列中的字符串末尾添加逗号A可确保我们要查找的子字符串始终以/前缀和,后缀分隔。

子字符串出现的次数就是完整字符串的长度与删除分隔子字符串的完整字符串的长度之差,除以分隔子字符串的长度。



还可以构建一个稍微复杂的公式,从标题本身中提取要计数的文件类型,因此整个表只需要一个公式:

工作表截图

B2在表格的其余部分中输​​入以下公式并按 ctrl-enter/copy-paste/fill-down&right/auto-fill:

=(LEN($A2)+1-LEN(SUBSTITUTE($A2&",","/"&MID(B$1,8,LEN(B$1))&",","")))/(LEN(MID(B$1,8,LEN(B$1)))+2)

请注意,必须将列标题H更改为,no. of plain此公式才能按照您的要求工作。

解释:

该公式的工作原理与上一个公式基本相同。

唯一的主要区别是,不是对文件类型进行硬编码,而是MID(B$1,8,LEN(B$1))使用它从标题中提取文件类型。这本质上相当于一个只有两个参数的MID()函数,该函数从第 8 个字符到字符串末尾提取子字符串。(LEN(B$1)用来代替任意大的数字,因为它可以产生“最干净”的无错误解决方案。)

该公式中的另一个细微差别是通过对分隔符的长度进行硬编码实现了稍微的简化。

相关内容