加权中位数如果在Excel中

时间:2014-06-26 20:34:36

标签: arrays excel excel-formula conditional-operator median

我有一个Excel数据标签,其中包含以下列: 答:县名 B:酒店名称 C:酒店的客房数量 D:年度酒店建成

在我的分析标签中,我有以下列: 答:县名 B:酒店房间的中位年龄

我想找到每个县的“酒店房间”的中位年龄。用Excel的说法,我试图做一个加权的MEDIAN IF - 如果县名匹配加权房间数,取中位数 - 所以如果县里有三家酒店,一家建于1900年,有100个房间,一个是建成的1975年有50个房间,2000年有200个房间,返回的价值应该是2000.非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

您需要一些辅助列: enter image description here

按以下顺序准备:

E栏跟踪这家酒店和其他酒店在同一个县和之前建造的房间数量:

E2 = SUMIFS($C$2:$C$15,$A$2:$A$15,"="&A2,$D$2:$D$15,"<="&D2)

第I栏和第J栏用于存储该郡有多少房间,其中一半是

J2 = SUMIFS($C$2:$C$15,$A$2:$A$15,"="&I2)
K2 = J2/2

F列表示E与K的距离,中位数出现在通过中点的第一家酒店。

F2 = E2-VLOOKUP(A2,$I$2:$K$4,3,0)

列L找到超过中点的最小正值:

{L2 = MIN(IF(($A$2:$A$15=I2)*($F$2:$F$15>=0),$F$2:$F$15,""))}

最后M列从I和L中查找年份对G = A&amp; F:

M2 = INDEX($D$2:$D$15,MATCH(I2&L2,$G$2:$G$15,0))