在Excel数据透视表中使用四分位数按子总体汇总数据
我在Excel电子表格中有一个很大的数据表,基本上可以被认为是属于不同亚群体的个体的值的集合:在Excel数据透视表中使用四分位数按子总体汇总数据,excel,statistics,excel-2007,pivot-table,data-analysis,Excel,Statistics,Excel 2007,Pivot Table,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 ... 该表中有10000多个个体和
IndivID SubPopID Value
1 A 33.56
2 E 42.31
3 D 16.35
4 A 50.59
5 F 80.63
...
该表中有10000多个个体和50多个亚群体
我想计算每个亚群体的5个数字汇总(最小值、第一季度、中位数、第三季度、最大值)
“最小”和“最大”在透视表中很简单。但第一季度、第二季度(中位数)和第三季度似乎不可能
问题
有没有办法计算Excel数据透视表中每个子群体的四分位数?
答案应该是这样的:
SubPopID Min Q1 Q2 Q3 Max
A 3.23 12.06 20.35 28.29 50.59
B
C
...
我的经验是,你不能在数据透视表中做百分位数。我只是在网上搜索了一下,没有发现任何与此相矛盾的东西。我认为最好的方法是将源数据放在一个表中,这样就可以动态地引用它,然后在另一个表中使用percentile函数 我已经了解了如何使用PowerPivot,但这仅在Excel 2010中可用,而且看起来很难。2010年,当我面临类似的问题时,我仍然选择了我在这里建议的路线 编辑:对我提出的备选方案的解释: 为了回答您在评论中提出的问题,以下是我如何从数据表中计算百分位数: 它依赖于一个公式,该公式适用于从F2到H6的每个单元格。它是一个,意味着它是用
Ctrl-Shift-Enter
输入的。它使用IF语句过滤各种可能的子页面。以下是F2的公式:
=PERCENTILE(IF(Table1[SubPopID]=F$1,Table1[Value],""),$E2/100)
如果需要检查多个列(a=1和b=2)的条件,可以使用*字符展开数组
=PERCENTILE((IF((Table1[SubPopID]=[condition1]) * (Table1[SubPopID2]=[condition2]),Table1[Value]),""),$E2/100)
我在描述解决方案时发现了这一点
它使用Doug Glancy描述的相同aproach,但将其与透视表中的计算字段相关联。答案给出了一个excel文件示例。这是我的担心。在我的网络搜索中,没有找到任何对Excel2007有价值的东西。然而,对于Excel2010,
AGGREGATE()
函数看起来很有前途,因为它内置了一个四分位选项。(不幸的是,我的客户没有使用Excel2010,也没有立即升级组织的计划)。我会让它保持活跃几天,希望我们被证明是错的,有人找到了一个聪明的解决办法。道格,你能详细解释一下“一个表中的源数据和另一个表中的百分位函数”是什么意思吗?(看不出如何在行的子集上使用Excel的“QUARTILE()”函数,例如,仅在示例中的SubPopID=a上)。谢谢。请看我的编辑。它依赖于带有IF
语句的数组公式。太棒了!那很好用。顺便说一句,截图和链接都有助于复制这种方法。非常感谢!恐怕这个过滤表达式不会忽略空值。它将假定“”为零,这意味着结果将不同。试着找到最小值,你就会看到。你好。我认为您的公式可能有问题——括号似乎放错了位置。是的,这应该是代码=百分位(如果((表1[SubPopID]=[condition1])*(表1[SubPopID2]=[condition2]),表1[Value]),“”),$E2/100