首页 > 解决方案 > Excel:使用中位数,如果在数组公式中给出的结果与手工挑选的单元格不同

问题描述

我正在计算 B 列中值的中位数,如果 A 列中相应行中的动物是牛、猪或鱼。

Excel文件的片段(我还不允许发布图片).

如您所见,所有牛的值为 1,两只猪的值为 10,一条鱼的值为 100,有些单元格没有值。选择这些值以便于计算。

对于我期待的 MEDIANs:

奶牛:1(3 头奶牛的值为 1)

猪:10(2 头猪的价值为 10)

鱼:100(1 条鱼价值 100)

我正在使用数组公式:

{=MEDIAN(IF(A1:A9=D2,B1:B9))}

另一种选择是手动放入单元格进行计算,但我不想这样做,因为我的真实数据集更大并且一直在变化:

=MEDIAN(B1,B4,B7)

只要该类别的 B 列中有 1 个以上的值,数组公式就可以很好地工作。现在我的问题是,有时我只有一个值(例如 C 类)。结果不如预期,但是:

鱼:0(但是:1 条鱼的价值为 100!?)

发生了什么以及如何解决?

标签: excelexcel-formula

解决方案


斯科特给出了一个可行的建议,它很优雅,因此是我正在寻找的。解决方案是排除空单元格。

而不是A1:A9=D2在 IF 做:(A1:A9=D2)*(B1:B9<>"")

所以完整的公式变成了:{=MEDIAN(IF((A1:A9=F2)*(B1:B9<>""),B1:B9))}


推荐阅读