[英]How to dynamically use the formula based on filter in excel?
我很难在不使用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
这是使用我具有的公式的输出:
这对总价值有很大影响。
不确定我解释得很好,但这是它的要点。
你需要使用数组公式,我不相信你可以使用SUMSQ()
。 以下产生了预期的结果。 请不要使用Shift + Ctrl + Enter
。
{=SUM(((D3:D9)^2 * (B3:B9)*((B3:B9)-1)+((C3:C9)^2))/B3:B9)}
正常公式,而不是数组公式,只使用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
添加一些过滤,假设您必须按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)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.