基于子集的Excel countif

我试图根据他们的NAICS代码(行业分类代码)来统计我们支持的公司的数量。 当公司报名时,他们提供3,4,5或6位NAICS代码。

例如,假设我有三家公司join。 其中一个提供了六位NAICS代码311811 (零售面包房); 另外还提​​供了其六位代码311812 (商业311812 ); 而最后一个select只提供其三位代码311 (食品制造)。

在我的电子表格中,join的所有公司名单都在Sheet“RawData”和J列中的NAICS代码中。所有NAICS代码的列表都在我的工作簿的Sheet“List”中,这是我想要返回NAICS代码中的所有公司的结果。

一个简单的sumif函数=COUNTIF(RawData!J:J,List!A1)仅返回基于代码精确匹配的组织数量。 换句话说,我得到这个:

 Code Count 311 1 3118 0 31181 0 311811 1 311812 1 

我真正想得到的是

 Code Count 311 3 3118 2 31181 2 311811 1 311812 1 

在后面的表中,select311811311812的两家公司应计入311代码和311831181代码的计数。

如果311位于单元格A2请尝试单元格B2的以下数组公式以获得311的数目:

 =SUM(IF(ISERROR(SEARCH(A2,J:J)),0,1)) 

请注意,上面是一个数组公式,需要使用Ctrl + Shift + Enter (而不是仅仅按Enter )来input 。 你会看到Excel通过在公式中自动添加曲线括号来识别公式作为数组公式(不要手动input这些曲线括号):

 {=SUM(IF(ISERROR(SEARCH(A2,J:J)),0,1))} 

当然,可以通过向下拖动公式并在A3栏中添加单元格A4的值3118的值31181等来扩展以上内容。