使用两个过滤列在Excel中使用数据透视表查找中位数

我有工作types列A。 我有经验范围的B列。 我有C列工资。 这些在一张名为“数据”的表中。

我已经创build了一个作业types为行和经验范围为列的数据透视表。 (在另一张纸上)

我想find数据透视表中每个单元的中位数。

我怎么做?

例如,如何find“阶段经理”(单元格A2)具有“不到2年”(单元格B1)经验的工资中位数?

请帮忙。 谢谢!

正如你毫无疑问的发现,中位数没有列在分组选项(总和,最小值,最大值,计数等)上。

似乎没有解决问题的直接方法。 然而,你也许可以通过在表格中添加自定义的公式来解决这个问题。 然后使用公式中的median()函数 。

另一种方法是放弃数据透视表并使用数组公式 。

您可以将*用于和和用于或。 FALSE编码为0TRUE编码为1

  1. 0*1 = 1 ,所以如果只有一个条件满足,它将是FALSEAND
  2. 1+01+1 is >0 ,所以如果只有一个条件满足,它仍然是>0OR

你可以用这个事实来testing你的条件是否大于0,然后转换你的数组,所以如果条件为真,数组就是数组,否则它是相等的 。 这将基本上消除条件不满足的所有行(使它们在任何数组公式中计为空白)

你可以使用这个勾号来处理大量的ANDOR条件。

如果您使用名称pipe理器命名您的数组,那么您可以非常轻松地快速改变条件并创build一个模拟数据透视表。

然后,您可以使用聚合函数来忽略隐藏的行(例如,聚合可以计算中位数,百分位和其他东西),然后filter函数可以有效地作为数据透视filter。

我通常使我的第一列是一个testing列,testing一行是否隐藏,如果可见,返回1,否则返回0。 然后,我将这个条件build立到我的条件堆栈中,作为一个额外的AND开关。 这意味着您的公式突然对filter做出反应,只考虑过滤的值。

这个东西真的很棒,可以对大量数据进行多条件计算,而无需在每个filter之后进行手动计算 – 在您过滤的时候,计算即将发生!

计算可能需要3-5秒,取决于你有多less条件和你的原始数据的大小,所以不像数据透视表一样快,但非常方便。