【发布时间】:2017-02-22 09:21:25
【问题描述】:
我有一个名为“Input”的表格,它采用下面的形式,实际表格扩展到大约 20 列和 1000 多行。左侧的“Site”列会定期包含重复数据,但绝不会出现 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 公式对输入表中的一列执行此操作似乎相对容易:
=COUNTIFS('Input'!$C$4:$C$1000,'Results'!C$2,'Input'$D$4:$D$1000,'Results'!$B3)
然后可以将其复制到整个“结果”表中。
我可以在两列或三列上使用这种方法,方法是将上述 COUNTIFS 的倍数与加号串在一起,然后在 COUNTIFS 的第二部分更改下一个 COUNTIFS 以检查 'Input'$E$4:$E$1000 -但这很快就会在最多 20 行的工作表上变得不可行 - 所以我需要一个公式或 VBA 代码,它的功能与这种 COUNTIFS 方法完全相同,但可以扩展到更多的行数。
【问题讨论】:
标签: excel excel-formula vba