Coulist在filterlist Excel以后
我想看看如何让这个公式正确工作的一个工作的例子
= SUMPRODUCT(小计(3,OFFSET($ P $ 7,ROW($ P $ 8:$ P $ 5500)-ROW($ P $ 7),, 1)), – ($ P $ 7:$ P $ 5500 = “74” ))
我试图实现的是计数范围内的所有单元格的值大于零,但我需要得到这个工作后,我应用filter。 我已经看到了几个例子,并没有得到它的工作,与小计FX。
在此先感谢您的帮助!
工作示例:
OP 4 5 6 6 7 Filter Data 8 1 74 9 0 74 10 1 74 11 0 74 12 1 74 13 0 74 Formula in P5: =SUMPRODUCT(SUBTOTAL(103,OFFSET($P$7,ROW($P$8:$P$20)-ROW($P$7),,1)),--($P$8:$P$20=74))
现在你可以过滤列O和P5只计数可见74。
使用SUBTOTAL中的函数103,我实际上只计数可见的单元格。 这意味着,手动隐藏的单元格也不计算在内。 使用函数3,只有出过滤的单元格不计算在内。 如果手动隐藏单元格,则会计数,即使它们不可见。
而我已经使用了值74而不是文本“74”。 所以在我的例子中,列P包含数字,而不是文本。
怎么运行的:
SUMPRODUCT中的公式是在数组(matrix)上下文中。 这意味着它们就像在数组公式中一样被处理。
在数组上下文中ROW($P$8)-ROW($P$7) = 1, ROW($P$9)-ROW($P$7) = 2, ROW($P$10)-ROW($P$7) = 3
等等。
OFFSET($P$7,1,,1)
将获得$ P $ 7 + 1Row = $ P $ 8, OFFSET($P$7,2,,1)
将获得$ P $ 7 + 2Row = $ P $ 9等等。
所以{OFFSET($P$7,ROW($P$8:$P$20)-ROW($P$7),,1)}
得到{$P$8,$P$9,$P$10,...}
在SUBTOTAL(103, {$P$8,$P$9,$P$10,...})
,如果{$P$8,$P$9,$P$10,...}
可见,则计数为1,否则{$P$8,$P$9,$P$10,...}
0 。
所以SUMPRODUCT的结果
SUMPRODUCT({1,0,1,0,1,0,0,...}, --($P$8:$P$20=74))
{TRUE,TRUE,TRUE,FALSE,TRUE,...}
取决于$ P $ 8:$ P $ 20 = 74。 --
( *-1*-1
)在数字上下文中得到这个,所以TRUE = 1和FALSE = 0。
所以SUMPRODUCT最终导致
SUMPRODUCT({1,0,1,0,1,0,0,...}, {1,1,1,1,1,1,0,...})
问候
阿克塞尔