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

时间:2017-11-02 17:22:46

标签: excel search countif

我有一个烦人的非标准数据列表,故障单的标题,我需要找到一种标准化为类别的方法,然后计算属于其中一个类别的单元格数量。我一直在尝试使用以下公式:

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

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

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

如果不是返回TRUE,公式会返回它找到的类别,即如果它在类别数组中找到浏览器,对于第一个示例,它将返回浏览器,而不是TRUE。

2 个答案:

答案 0 :(得分:4)

试试这个公式

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

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

注意:如果列表中有“浏览器”和“浏览器”,那么它将找到并返回列表中的第一个,因此您需要首先列出最长的,理想情况下,或更改为此版本,你只匹配整个单词

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

如果找不到任何内容,第一个公式将返回空白,第二个公式返回#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))&""

答案 1 :(得分:0)

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

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

依此类推。