计算其他两列符合条件的行的列中位数

计算其他两列符合条件的行的列中位数

不幸的是,Excel 不允许在数据透视表中进行中值计算,所以我尝试使用公式做类似的事情。

就我的例子来说,我有 5 列数据(AE)。

我的 A 列和 B 列具有不同的数据分类变量。E 列包含我需要中位数的数据。但是,我希望从 A 列和 B 列中筛选出某些值,以便仅计算具有这些筛选值的行的中位数(就像我在数据透视表中所做的那样)

有谁知道最好的公式,即当 A=x 和 B=y 时,计算 E 列的中位数。因此,只有当 A=x 和 B=y 时,该公式才成立。我尝试了几个 IF 公式,但它们似乎没有给出正确的答案。

谢谢你!

答案1

来自 MEDIAN 的帮助文件,我们会看到“如果数组或引用参数包含文本、逻辑值或空单元格,则忽略这些值;但是,包含值为零的单元格。”因此,一个解决方案是(假设在 F 列中)设置一个 IF 公式,如果满足条件,则返回 E 列中的值,如果""不满足条件,则返回类似值。然后只需取 F 列的中位数。

假设我只想知道棕色眼睛的狗的可爱程度的平均值:

仅符合标准的单元格的中位数

得出所需的结果:

Excel 仅显示符合条件的单元格的 MEDIAN 结果

这不是一个绝妙的解决方案,但它是一个可行的解决方案。您可以非常清楚地看到哪些单元格已被选中,因此您可以立即看到是否使用了正确的IF,但缺点是您可能不希望以这种方式使用列。

“更聪明”的方法是使用数组公式,但这并不能让您直观地检查您选择了哪些单元格:

=MEDIAN(IF((A2:A9="Dog")*(B2:B9="Brown"),E2:E9,""))

请记住按 CONTROL-SHIFT-ENTER 完成数组公式的输入;仅按 Enter 键是不够的。IF数组公式中的 有效地仅选择 E2:E9 中符合条件的单元格,然后MEDIAN仅适用于您想要的单元格。这意味着您可以执行类似以下操作来根据各种条件获取中位数表:

根据不同标准得出的 Excel 中位数表

注意绝对和相对单元格引用,这样可以更轻松地拖动公式!例如,中的数组公式H2应如下所示;请注意,H$1行是固定的,但列会随着拖动而变化,反之亦然$G2

=MEDIAN(IF(($A$2:$A$9=H$1)*($B$2:$B$9=$G2),$E$2:$E$9,""))

这给出了一个方便的结果表。

在此处输入图片描述

相关内容