令人惊讶的是,这么古老的应用程序竟然没有这个功能
是否有已知的解决方法?
我指的是可以更改值字段的聚合类型的部分:它有总和、最小值、最大值、平均值等,但没有中位数
答案1
举个简单的例子,您可以使用数组公式而不是数据透视表。
如果源数据在 10:1000 行,源数据的类别标识在 A 列,源数据值在 C 列,所考虑的类别在 G3,则以下数组公式将找到中位数:
{=MEDIAN(IF($A$10:$A$1000=G3,$C$10:$C$1000))}
使用Ctrl
+ Shift
+提交条目Enter
,并向下复制以用于 G4、G5 等类别
答案2
不幸的是,Excel 的数据透视表函数中没有内置任何可以执行此操作的功能。您可以尝试此附加组件虽然。它声称可以做到这一点,但我从未使用过它。
您可以对数据进行中值运算,然后将其包含在数据透视表数据中,但在那时...您知道...该表的意义何在?
答案3
实际上,您可以使用该iserror
函数从中位数中排除总行数。例如,如果标签Total row
在row A
,而您想要的中位数的数据在row I
:
=MEDIAN(IF(ISERROR(FIND("Total",$A$5:$A$65535)),I5:I35535))
答案4
如果您的数据透视表很简单(表中没有子总计),那么有一种方法可以计算中位数(或任何公式)。除此之外,没有其他方法可以在数据透视表中优雅地包含中位数计算。
太糟糕了,不能包含附件...我将对我的示例进行快照:
我使用了这里描述的偏移函数: http://www.myonlinetraininghub.com/excel-offset-function-explained 另外,下载工作簿并转到数据透视表选项卡 - 这就是我做示例的地方
这是最终结果 - 参见此处的图片:
注意:您不能将中位数/偏移公式单元格放在要从中获取中位数的同一列中。此外,偏移允许您从列值减去总计行的值中获取中位数。
不幸的是,当您使用更复杂的数据透视表(即数据透视表中有小计)时,没有优雅的方式来进行中位数(或任何其他)计算。