Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel数据透视表中使用四分位数按子总体汇总数据_Excel_Statistics_Excel 2007_Pivot Table_Data Analysis - Fatal编程技术网

在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多个个体和

我在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多个个体和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