基于子集

时间:2017-11-14 00:57:27

标签: excel countif

我正在尝试根据他们的NAICS代码(行业分类代码)计算我们支持的公司数量。当公司注册时,他们提供3,4,5或6位数的NAICS代码。

例如,假设我有三家公司加入。其中一个提供了六位数的NAICS代码311811(零售面包店);另一个还提供了六位数代码311812(商业面包店);并且最后一个选择仅提供其三位数代码311(食品制造)。

在我的电子表格中,所有加入公司的列表都在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

在后一个表格中,选择311811311812的两家公司应计入311代码以及311831181代码的计数中。

1 个答案:

答案 0 :(得分:1)

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

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

注意,以上是一个数组公式,需要使用 Ctrl + Shift + Enter (而不是仅仅)输入按 Enter )。您将看到Excel通过在公式周围自动添加弯曲括号来确认公式为数组公式(请勿手动输入这些曲线括号):

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

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