在Excel数据透视表中使用QUARTILE按子群体汇总数据

Ass*_*him 18 statistics excel pivot-table excel-2007 data-analysis

我在Excel电子表格中有一个大型数据表,基本上可以被认为是被识别为属于各种子群体的个人的价值集合:

  IndivID   SubPopID  Value
     1          A       33.56
     2          E       42.31
     3          D       16.35
     4          A       50.59
     5          F       80.63
     ...
Run Code Online (Sandbox Code Playgroud)

该表中有超过10,000个人,超过50个子群体.

我想计算每个子群体的5个数字摘要(Min,Q1,Median,Q3,Max).

枢轴表中的最小值和最大值很容易.但Q1,Q2(中位数)和Q3似乎不可能.

有没有办法计算Excel中数据透视表中每个子群的四分位数?

答案应如下所示:

SubPopID      Min     Q1     Q2        Q3      Max
   A         3.23    12.06   20.35   28.29     50.59
   B 
   C
   ...
Run Code Online (Sandbox Code Playgroud)

Dou*_*ncy 19

我的经验是你不能在数据透视表中做百分位数.我只是进行了网络搜索,并没有看到任何与之相矛盾的内容.我认为你能做的最好的事情就是将你的源数据放在一个表中,这样你就可以动态地引用它,然后在另一个表中使用百分位函数.

我见过一篇关于使用PowerPivot的文章,但这只在Excel 2010中提供,看起来很难.我有2010年,当遇到类似问题时,我仍然选择了我在这里建议的路线.

编辑:我建议的替代方案的解释:

在评论中回答你的问题,这是我如何从数据表中计算百分位数:

百分位数表

它依赖于单个公式,对于从F2到H6的每个单元都是相同的.这是一个数组公式,意思是它输入了Ctrl-Shift-Enter.它使用IF语句来过滤各种可能的SubPopID.这是F2的公式:

=PERCENTILE(IF(Table1[SubPopID]=F$1,Table1[Value],""),$E2/100)
Run Code Online (Sandbox Code Playgroud)


小智 7

如果需要检查多个列的条件(a = 1 AND b = 2),可以使用*字符展开数组

=PERCENTILE((IF((Table1[SubPopID]=[condition1]) * (Table1[SubPopID2]=[condition2]),Table1[Value]),""),$E2/100)
Run Code Online (Sandbox Code Playgroud)