如何计算Excel中多个单元格内的一系列文本string中的关键字?

我在这里发现了类似的想法,通过在Excel中使用SEARCH或FIND,但是这些似乎更多的是关于find关键字的位置,而不是计算它出现的次数。

我有一个镜头列表的CSV。 每个镜头都与一个序列相关联,每个镜头都有一组“标签”(这是文本string)。 请看下面的例子:

在这里输入图像说明

有两个主要关键字我想跟踪:“狗”和“狐狸”。 每个序列有多个镜头,我的目标是找出每个序列有多less个“狗”标签,有多less个“狐狸”标签。 我需要的公式是为黄色的栏目,我已经手动input了前几个条目,以了解应该在那里的数字。 一旦这些填充,我可以计算每个序列标签更多的“狗”或“狐狸”的比例。

我无法使用Excel中的文本到列来轻松地分解文本string列,因为每个列都包含一系列不同的标记(通过我的示例文本有所展示)。

我已经想出了一个简单的公式来计算我想要的东西,如果文本列只有“狗”或“狐狸”,但我不知道如何让Excelfind一个文本string中的单词和计数它。

=SUMIFS(D:D,B:B,1,F:F,"dog") 

1是序列号,其余列是引用我的大数据表。

任何帮助将非常感激!!

编辑:工作表在这里的文本forms(抱歉格式化,不能从工作ATM上传文件):

 COUNTER SAMPLE DATA Sequence Total Fox Total Dog Total Entries Ratio Fox Ratio Dog Sequence Shot Text 1 2 2 4 0.5 0.5 1 mov_101 The quick brown fox 2 3 2 5 0.6 0.4 2 mov_102 jumps over the lazy dog 3 4 3 mov_103 The fox and the hound 4 2 4 mov_104 fox news 5 3 5 mov_105 I am a dog 1 mov_106 The fox and the hound 2 mov_107 jumps over the lazy dog 3 mov_108 The fox and the hound 4 mov_109 jumps over the lazy dog 5 mov_110 I am a dog 1 mov_111 jumps over the lazy dog 3 mov_112 The fox and the hound 5 mov_113 The fox and the hound 2 mov_114 jumps over the lazy dog 2 mov_115 fox news 1 mov_116 I am a dog 3 mov_117 I am a dog 2 mov_118 The fox and the hound 

你很近,你需要使用COUNTIFS而不是SUMIFS来获得序列的数量。 用foxdog周围的"*"来考虑周围的单词。

这是我用来得到狐狸计数的公式:

 =COUNTIFS($H:$H,$A2,$J:$J,"*fox*") 

将此公式放在单元格B2并将其向下拖动。
同样的方式,下面的公式会得到你每个序列的狗数:

 =COUNTIFS($H:$H,$A2,$J:$J,"*dog*") 

将此公式放在单元格C2并将其向下拖动。

所以我试图复制你的数据,这是我用过的:

在这里输入图像说明

如果您有任何疑问,请告诉我。

有人可能会有比这更好的解决scheme,但我以前使用它时,寻找类似的function,找不到一个。

 =(LEN([textcell]) - LEN(SUBSTITUTE([textcell], [wordcell], ""))) / LEN([wordcell]) 

它所做的是比较原始string的长度和删除search词的string的长度。 把它除以单词的长度,给你多less事件被删除。

所以给出以下内容:

 fox dog search 1 0 The quick brown fox 0 1 jumps over the lazy dog 

A2上的公式是

 =(LEN($C2) - LEN(SUBSTITUTE($C2,A$1, ""))) / LEN(A$1) 

美元符号不是必需的,但它使我可以将公式复制到所有4个单元格。

如果您的序列列是E,并且文本列是F,则可以使用以下公式:

=SUMPRODUCT(--(NOT(ISERROR(SEARCH(B$1,$F$2:$F$6)))),--($E$2:$E$6=$A2))

这创build了两个数组,一个是1和0的序列,其中1是文本包含B1(“狐狸”或“狗”),另一个是1序列匹配和0序列匹配。

然后它将数组相加并相加,这样只有两个条件匹配时才能计数。

公式是在单元格B2:C3在我的例子中:

我使用的示例数据的图片: 样本数据