CountIf With Filtered Data

时间:2016-03-09 22:14:06

标签: excel excel-formula

我正在研究一种计算一列数据中零的数量的方法,即使数据被过滤了。我找到了以下解决方案:

=SUMPRODUCT(SUBTOTAL(3,OFFSET(B2:B18,ROW(B2:B18)-MIN(ROW(B2:B18)),,1)),ISNUMBER(SEARCH("Pear",B2:B18))+0)

其中,B2:B18是总数据列表,"Pear"是要计算的标准。

  • 有人可以解释这个公式是如何完成这项任务的吗?
  • 有更简单的方法吗?

2 个答案:

答案 0 :(得分:3)

我能够确定:

SUBTOTAL(3,OFFSET(B2:B18,ROW(B2:B18)-MIN(ROW(B2:B18)),,1))

用于返回一个数组,该数组在该范围内可见并隐藏。返回1表示可见,0表示隐藏。

ISNUMBER(SEARCH("Pear",B2:B18))+0)

用于返回其中包含"Pear"个单元格的数组。如果" Pear"找到,返回1,否则返回0.

SUMPRODUCT(arrayofvisiblecells , arrayofcellswithPear)

用于对细胞可见时的所有时间求和。" Pear"存在。 1*1否则您将乘以0

答案 1 :(得分:-1)

= SUMPRODUCT(SUBTOTAL(3,OFFSET(Sheet1!$ A $ 1:$ A $ 1006,ROW(Sheet1!$ A $ 1:$ A $ 1006)-MIN(ROW(Sheet1!$ A $ 1:$ A $ 1006)) ,, 1)),ISNUMBER(SEARCH(B861,Sheet1!$ A $ 1:$ A $ 1006))+ 0)

B861是您正在引用的单元格。