如何在Excel中dynamic使用基于filter的公式?

我很难弄清楚如何在不使用SUM函数的情况下获得总值。

例:

在这里输入图像描述

我可以使用SUM函数获得SumSQ的总值,就像我在图像中做的一样。

预期值是:30323295

SumSQ的公式:SumSQ =(SD ^ 2 * count *(count-1)+(SumX ^ 2))/ count

在excel中:SumSQ =(SUMSQ(D3)* B3 *(B3-1)+(SUMSQ(C3)))/ B3

请注意,SumSQ是一个帮手列。

我想要的是避免使用助手列,在这种情况下SumSQ。 但是我还是想得到总值是30323295。

所以基本上这是它没有filter应该看起来像:

在这里输入图像描述

总SumSQ公式:SumSQ =(total_SD ^ 2 * total_count *(total_count – 1)+(total_SumX ^ 2))/ total_count

并注意这必须是基于列A上的filterdynamic的。

在PC_Number中使用filter的示例:

在这里输入图像描述

这意味着它应该只计算基于filter可见的内容。

我已经试过用OFFSET(),MIN()和ROW()添加SUBTOTAL()函数,但它不会按照我想要的那样工作。

这是目前我所拥有的:

--start =SUMPRODUCT(((SUBTOTAL(9,OFFSET(U5:U256,ROW(U5:U256)-MIN(ROW(U5:U256)),,1))^2)*SUBTOTAL(9,OFFSET(M5:M256,ROW(M5:M256)-MIN(ROW(M5:M256)),,1))*(SUBTOTAL(9,OFFSET(M5:M256,ROW(M5:M256)-MIN(ROW(M5:M256)),,1))-1)+((SUBTOTAL(9,OFFSET(Q5:Q256,ROW(Q5:Q256)-MIN(ROW(Q5:Q256)),,1))*SUBTOTAL(9,OFFSET(M5:M256,ROW(M5:M256)-MIN(ROW(M5:M256)),,1)))^2))/SUBTOTAL(9,OFFSET(M5:M256,ROW(M5:M256)-MIN(ROW(M5:M256)),,1))) --end 

这是使用公式我输出的输出:

在这里输入图像说明

总价值差异很大。

不知道我解释得好,但这是它的要点。

普通公式,不是数组公式,只是使用SumProduct

 =SUMPRODUCT((D3:D9*D3:D9*B3:B9*(B3:B9-1)+(C3:C9*C3:C9))/B3:B9) 

要么

 =SUMPRODUCT((D3:D9^2*B3:B9*(B3:B9-1)+(C3:C9^2))/B3:B9) 

编辑1:过滤

要按column A添加一些过滤,假设您必须按照在A1input的值进行过滤:

 =SUMPRODUCT((A3:A9 = $A$1)*((D3:D9^2*B3:B9*(B3:B9-1)+(C3:C9^2))/B3:B9)) 

编辑2:要使筛选可选,下一个公式应用筛选, 除非 A1是空的,在这种情况下,它占所有行:

 =SUMPRODUCT((A3:A9=IF(ISBLANK(A1),A3:A9,A1))*((D3:D9^2*B3:B9*(B3:B9-1)+(C3:C9^2))/B3:B9)) 

编辑3:只考虑可见(非过滤出)的行:

 =SUMPRODUCT(SUBTOTAL(2, OFFSET(B1, ROW(B3:B9)-1,0))*((D3:D9^2*B3:B9*(B3:B9-1)+C3:C9^2)/B3:B9)) 

想法是,如果单元格可见(隐藏),则单个和数字单元格上的subtotal(2)将返回1(0)。

你需要使用一个数组公式,我不相信你可以使用SUMSQ() 。 以下产品预期的结果。 请不要用Shift + Ctrl + Enter

 {=SUM(((D3:D9)^2 * (B3:B9)*((B3:B9)-1)+((C3:C9)^2))/B3:B9)}