我想将一列中的值基于另一列进行分组,然后使用sumproduct(全部在一个公式中,而没有其他列)。
这是我的示例表。不幸的是,我不知道如何创建表格,但这是表格图像的链接:https://ibb.co/9pLcQ89
Country M/F number of people
US M 50
US F 40
UK M 75
UK F 60
我想得到以下结果。首先按国家/地区分组:
US = 90
UK = 135
下一步是使用SUMPRODUCT
:90*90+135*135=26325
最后我的结果应该是:SQRT(26325)=162.2498
我最大的担心是如何使用一个公式而不使用名称US和UK来获得组号?
谢谢!
答案 0 :(得分:2)
此数组公式将创建唯一列表并进行数学运算:
=SQRT(SUMPRODUCT(SUMIF(A:A,INDEX(A:A,N(IF({1},MODE.MULT(IF(ROW(A2:A5)=MATCH(A2:A5,A:A,0),ROW(A2:A5)*{1,1}))))),C:C)^COUNTIF(A:A,INDEX(A:A,N(IF({1},MODE.MULT(IF(ROW(A2:A5)=MATCH(A2:A5,A:A,0),ROW(A2:A5)*{1,1}))))))))
作为数组公式,退出编辑模式时必须使用Ctrl-Shift-Enter而不是Enter进行确认。
通过更改引用,无论国家/地区的数量如何,范围都会根据需要增加:
=SQRT(SUMPRODUCT(SUMIF(A:A,INDEX(A:A,N(IF({1},MODE.MULT(IF(ROW(A2:INDEX(A:A,MATCH("zzz",A:A)))=MATCH(A2:INDEX(A:A,MATCH("zzz",A:A)),A:A,0),ROW(A2:INDEX(A:A,MATCH("zzz",A:A)))*{1,1}))))),C:C)^COUNTIF(A:A,INDEX(A:A,N(IF({1},MODE.MULT(IF(ROW(A2:INDEX(A:A,MATCH("zzz",A:A)))=MATCH(A2:INDEX(A:A,MATCH("zzz",A:A)),A:A,0),ROW(A2:INDEX(A:A,MATCH("zzz",A:A)))*{1,1}))))))))
答案 1 :(得分:1)