我很难在不使用SUM函数的情况下弄清楚如何获得总值。
示例:
我可以使用SUM函数获得SumSQ的总值,就像我在图像中一样。
预期值为:30323295
SumSQ公式:SumSQ =(SD ^ 2 *计数*(计数-1)+(SumX ^ 2))/计数
在excel中:SumSQ =(SUMSQ(D3)* B3 *(B3-1)+(SUMSQ(C3)))/ B3
请注意,SumSQ是辅助列。
我想要的是避免使用辅助列,在本例中为SumSQ。但我仍然希望得到总值30323295。
所以基本上这就是没有过滤器的样子:
Total SumSQ的公式:SumSQ =(total_SD ^ 2 * total_count *(total_count - 1)+(total_SumX ^ 2))/ total_count
请注意,这必须是基于A列过滤器的动态。
PC_Number中的过滤器示例:
这意味着它应该只计算基于过滤器的可见内容。
我尝试使用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
这是使用我具有的公式的输出:
总价值差异很大。
不确定我是否解释得很好,但这是它的要点。
答案 0 :(得分:3)
您需要使用数组公式,我不相信您可以使用SUMSQ()
。以下产生了预期的结果。请注意不要使用Shift + Ctrl + Enter
输入此内容。
{=SUM(((D3:D9)^2 * (B3:B9)*((B3:B9)-1)+((C3:C9)^2))/B3:B9)}
答案 1 :(得分:3)
普通公式,不是数组公式,仅使用SumProduct
:
=SUMPRODUCT((D3:D9*D3:D9*B3:B9*(B3:B9-1)+(C3:C9*C3:C9))/B3:B9)
OR
=SUMPRODUCT((D3:D9^2*B3:B9*(B3:B9-1)+(C3:C9^2))/B3:B9)
编辑1:过滤
要按column A
添加一些过滤,假设您必须按照A1
中输入的值进行过滤:
=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)。