20

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

  IndivID   SubPopID  Value
     1          A       33.56
     2          E       42.31
     3          D       16.35
     4          A       50.59
     5          F       80.63
     ...

该表中有 10,000 多个个体,以及 50 多个亚群。

我想计算每个亚群的 5 位数汇总(最小值、Q1、中值、Q3、最大值)。

最小值和最大值在数据透视表中很容易。但是 Q1、Q2(中位数)和 Q3 似乎是不可能的。

问题

有什么方法可以计算 Excel 数据透视表中每个子群体的四分位数?

答案应该是这样的:

SubPopID      Min     Q1     Q2        Q3      Max
   A         3.23    12.06   20.35   28.29     50.59
   B 
   C
   ...
4

3 回答 3

21

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

我看过一篇关于使用 PowerPivot 的文章,但这仅在 Excel 2010 中可用,而且看起来很难。我有 2010 年,当遇到类似问题时,我仍然选择走我在这里建议的路线。

编辑:我提出的替代方案的解释:

为了回答您在评论中提出的问题,以下是我从数据表中计算百分位数的方法:

百分位数表

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

=PERCENTILE(IF(Table1[SubPopID]=F$1,Table1[Value],""),$E2/100)
于 2012-11-18T16:51:58.483 回答
7

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

=PERCENTILE((IF((Table1[SubPopID]=[condition1]) * (Table1[SubPopID2]=[condition2]),Table1[Value]),""),$E2/100)
于 2014-08-11T17:43:44.967 回答
1

我在描述解决方案的地方找到了这个答案

它使用与 Doug Glancy 描述的相同方法,但将其与数据透视表中的计算字段相关联。答案给出了一个示例 excel 文件。

于 2015-11-05T16:50:03.603 回答