excel 具有筛选数据的CountIf

lnlaulya  于 2023-02-20  发布在  其他
关注(0)|答案(3)|浏览(122)

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

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

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

  • 有人能解释一下这个公式是如何完成这个任务的吗?
  • 有没有更简单的方法?
mhd8tkvw

mhd8tkvw1#

我能够确定:

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

cgfeq70w

cgfeq70w2#

在Office 365中,我们最终可以通过使用BYROW来摆脱易失性OFFSET:

=SUMPRODUCT(BYROW(B2:B18,LAMBDA(a,SUBTOTAL(3,a))),ISNUMBER(SEARCH("Pear",B2:B18))+0)

BYROW(B2:B18,LAMBDA(a,SUBTOTAL(3,a)))的功能与SUBTOTAL(3,OFFSET(B2:B18,ROW(B2:B18)-MIN(ROW(B2:B18)),,1))相同,但不是易失性的。

bxpogfeg

bxpogfeg3#

=和积(小计(3,偏移(工作表1!$A$1:$A$1006,行(工作表1!$A$1:$A$1006)-最小值(行(工作表1!$A$1:$A$1006)),,1)),ISNUMBER(搜索(B861,工作表1!$A$1:$A$1006))+0)
B861是您所引用的任何细胞。

相关问题