countif在多个工作表中使用相同范围的单元格

时间:2016-07-20 03:18:52

标签: excel excel-formula countif

我的工作簿每个月每天都有一份单独的工作表1,2,3等。

在每个工作表单元格C8:C34中包含可能重复的数字(0-999)。

我想计算一个特定数字出现的总时间,我已经用连续的countif语句做了这个,但这似乎是一个非常漫长而混乱的方法。是否有更简单的方法来实现这一目标?

当前代码:

=(COUNTIFS('1'!$C$8:$C$34,C1)+(COUNTIFS('2'!$C$8:$C$34,C1)))

2 个答案:

答案 0 :(得分:2)

已知纸张总数,然后

=COUNTIF('1'!$C$8:$C$34,C1)+COUNTIF('2'!$C$8:$C$34,C1)+COUNTIF('3'!$C$8:$C$34,C1)

可以替换为

=SUMPRODUCT(COUNTIF(INDIRECT({"1";"2";"3"}&"!$C$8:$C$34"),C1))

{"1";"2";"3"}是一个带有工作表名称的数组文字。 SUMPRODUCT将隐式地用作数组公式,并将此数组文字视为“1”; “2”; “3”一个接一个,将在COUNTIF中执行3个单INDIRECT个不同的工作表名称。

如果工作表名称是正在进行的编号,那么这也可能是:

=SUMPRODUCT(COUNTIF(INDIRECT(ROW($1:$3)&"!$C$8:$C$34"),C2))

数组上下文中ROW($1:$3){1;2;3}。在与&连接时,数字将被隐式转换为字符串。

答案 1 :(得分:0)

两个很多? 不好, 相反,请使用数据透视表。

说明: 让我们说你的Excel表格如下所示: enter image description here

选择"插入数据透视表"在"插入"标签, 在数据透视表字段中(右列)Put" Label"在列中 并将标签放入值(只需拖放)。将值更改为"标签数量"而不是标签总和, 这就是故事的结局。

如果(并且它的最好的朋友Sum if)是昂贵的操作,请计算适度使用它们。数据透视表在优化的意义上很便宜。

结果如下: enter image description here