在多列上使用COUNTIFS

时间:2016-10-13 09:55:44

标签: excel excel-vba excel-formula vba

我有一个名为"输入"采用下面的表格,实际表格扩展到大约20列和超过1000行。 "网站"左边的列会定期有重复数据,但是永远不会出现这种情况,例如,W01在同一行中出现两次 - 尽管Site01可能有两次W01,只是在不同的行中。

Site   |   Item1   |   Item2   |   Item3 
------------------------------------------
Site01 |    W01         W02        S01
Site02 |    W01         S02
Site03 |    S01         W01
Site01 |    W01

然后我有另一张名为"结果"包含顶行中的所有站点以及最左侧列中的所有项目。我们的想法是让表格显示网站使用给定项目的次数,因此上表的结果应为:

       | Site01 | Site02 | Site03 
 ---------------------------------
  W01  |   2        1        1
  W02  |   1        0        0
  S01  |   1        0        1
  S02  |   0        1        0

使用采用以下形式的COUNTIFS公式在Input表中的一列上执行此操作似乎相对容易:

=COUNTIFS('Input'!$C$4:$C$1000,'Results'!C$2,'Input'$D$4:$D$1000,'Results'!$B3)

然后可以将其复制到整个"结果"表

我可以通过将上述COUNTIFS的多个字符串加在一起来使用这种方法超过两列或三列,只需更改下一个COUNTIFS以检查' $ E $ 4:$ E $ 1000 in second COUNTIFS的一部分 - 但是在一个最多20行的工作表上很快变得不可行 - 所以我需要一个公式或VBA代码,它完全按照这种COUNTIFS方法进行,但是它可以扩展到更大的行数。

1 个答案:

答案 0 :(得分:1)

切换到SUMPRODUCT

=SUMPRODUCT((Input!$C$4:$C$1000=Results!C$2)*(Input!$D$4:$F$1000=Results!$B3))

修改部分中的F:

Input!$D$4:$F$1000

根据需要。

此致