使用两个过滤列在Excel中使用数据透视表查找中位数
我有工作types列A。 我有经验范围的B列。 我有C列工资。 这些在一张名为“数据”的表中。
我已经创build了一个作业types为行和经验范围为列的数据透视表。 (在另一张纸上)
我想find数据透视表中每个单元的中位数。
我怎么做?
例如,如何find“阶段经理”(单元格A2)具有“不到2年”(单元格B1)经验的工资中位数?
请帮忙。 谢谢!
正如你毫无疑问的发现,中位数没有列在分组选项(总和,最小值,最大值,计数等)上。
似乎没有解决问题的直接方法。 然而,你也许可以通过在表格中添加自定义的公式来解决这个问题。 然后使用公式中的median()函数 。
另一种方法是放弃数据透视表并使用数组公式 。
您可以将*
用于和和用于或。 FALSE
编码为0
, TRUE
编码为1
。
-
0*1 = 1
,所以如果只有一个条件满足,它将是FALSE
(AND
) -
1+0
或1+1 is >0
,所以如果只有一个条件满足,它仍然是>0
(OR
)
你可以用这个事实来testing你的条件是否大于0,然后转换你的数组,所以如果条件为真,数组就是数组,否则它是相等的 。 这将基本上消除条件不满足的所有行(使它们在任何数组公式中计为空白)
你可以使用这个勾号来处理大量的AND
和OR
条件。
如果您使用名称pipe理器命名您的数组,那么您可以非常轻松地快速改变条件并创build一个模拟数据透视表。
然后,您可以使用聚合函数来忽略隐藏的行(例如,聚合可以计算中位数,百分位和其他东西),然后filter函数可以有效地作为数据透视filter。
我通常使我的第一列是一个testing列,testing一行是否隐藏,如果可见,返回1,否则返回0。 然后,我将这个条件build立到我的条件堆栈中,作为一个额外的AND开关。 这意味着您的公式突然对filter做出反应,只考虑过滤的值。
这个东西真的很棒,可以对大量数据进行多条件计算,而无需在每个filter之后进行手动计算 – 在您过滤的时候,计算即将发生!
计算可能需要3-5秒,取决于你有多less条件和你的原始数据的大小,所以不像数据透视表一样快,但非常方便。