计算特定文本在数组中的次数

我列出了烦人的非标准数据,麻烦标题的标题,我需要find一种方法来标准化到类别,然后计算属于其中一个类别的单元格的数量。 我一直在试图用下面的公式:

=SUMPRODUCT(--ISNUMBER(SEARCH(G:G,A2)))>0 

其中G是我的类别列表,A2是我的票证列表中的第一个单元格。 问题是这个公式只是返回TRUE或FALSE,这在我的情况下是没有帮助的。 有没有人有什么build议? 这是我正在处理的数据的一个例子:

 web browser pointing to wrong web page excel will not save outlook popups on startup logon issue etc 

如果不是返回TRUE,那么这个公式会返回find的类别,也就是说,如果它在类别数组中find了浏览器,则返回浏览器而不是TRUE。

试试这个公式

=INDEX(G$2:G$100,MATCH(1,INDEX(ISNUMBER(SEARCH(G$2:G$100,A2))+0,0),0))&""

如果G2:G100出现多个项目G2:G100出现在A2中, G2:G100列出第一个项目(来自G2:G100)

注意:如果你在列表中有“Brow”和“Browser”,那么它会find并返回列表中的第一个,所以你需要列出最长的第一个,理想情况下,或者更改为这个版本,所以你只匹配整个词

=INDEX(G$2:G$100,MATCH(1,INDEX(ISNUMBER(SEARCH(" "&G$2:G$100&" "," "&A2&" "))+0,0),0))

第一个公式返回一个空白,如果没有find,第二个返回#N/A

Edit:

如果G2:G100中的每个类别在相邻列H2:H100都有关联的文本,则可以通过更改公式中的第一个范围来更改公式以返回列H值

=INDEX(H$2:H$100,MATCH(1,INDEX(ISNUMBER(SEARCH(G$2:G$100,A2))+0,0),0))&""

在这种情况下,我认为你应该改变你的逻辑,然后用COUNTIF在每个类别(H:H)中放一个公式,所以在H1中:

 =COUNTIF(A:A, "*"&G1&"*") 

等下来列。