跨多列的Excel中位数

时间:2019-11-28 18:44:49

标签: excel excel-formula

Name: Number: CategoryA_1: CategoryA_2: CategoryA_3:
Pat     4       Car          Van             Bus
Mary    5       Van          Car
James   -       Bus

我希望能够获得每个类别的中位数“数字”。例如,由于“汽车”位于CategoryA_1和CategoryA_2中,因此我试图获取“数字” 4和5的中位数。

我在另一个工作表中这样称呼它。

      Median
Car     4.5
Van     4.5
Bus     4

我已经尝试过了(但是只有0,我不知道为什么它不起作用)

=MEDIAN(IF(OR('Sheet1'!c:c=a2, 'Sheet1'!d:d=a2, 'Sheet1'!e:e=a2),(IF('Sheet1'!b:b<>"-", 'Sheet1'!b:b))))

感谢您的帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

假定“名称:”位于sheet1的A1上,另一个工作表为sheet2。在Sheet1 G1中放入:

=Sheet2!A2

然后在G2中:

=IF(AND(ISNUMBER($B2),$G$1<>"",C2<>"",C2=$G$1),$B2,"")

并拖动到I4。然后在Sheet2中,公式应为:

=MEDIAN(Sheet1!G2:I4)

想法更正:  在原始公式中。'Sheet1'!c:c=a2部分将不起作用,因为您正在将范围与单元格进行比较。

在提出的解决方案中,我们添加了一些错误检查功能,以使用ISNUMBER($B2)忽略破折号,使用$G$1<>"",C2<>""检查/忽略空白条目,并仅在Sheet!A2中输入的值时列出该值被匹配。那么中位数将正常工作。

我不确定帮助文件中是否提到了这个问题(请稍作检查),但是AFIAK的中位数()函数需要一个列表作为其参数..而原始的if函数似乎返回TRUE / FALSE值(而不是列表)。也许这就是为什么您得到0。