基于对应行中的数字的一行中值

时间:2014-10-09 23:08:11

标签: excel excel-vba excel-formula vba

我想根据另一行的值计算一行的中位数。例如,我们假设Row A有几个不同的数字,Row B有其他不相关的数字,但每列是不同的月份。我想仅在Row B中同一月份的数字高于Row A时计算1000中数字的中位数。

Excel公式是什么?

          Jan  Feb    Mar  April  May   June

Row A    500  1200    675  700    1800  2000
Row B    -100  400     6     18   -300  1200

编辑(来自作者的评论):寻找一个公式,首先确定行A中1000美元以上的数字,然后确定行B中与第一个标准同月的数字的中位数?

2 个答案:

答案 0 :(得分:1)

好的,假设你正在混合行和列,这将做你想要的:

= MEDIAN(IF(B2:G2&GT 1000,B3:G3,"&#34))

但输入后,按CTRL + SHIFT + ENTER确保它是一个数组函数。

请记住用你需要的范围替换。

One interpretation of the question

编辑:澄清这是如何工作的(使用评估公式来查看它的实际效果):数组公式查看行A和大于1,000(2月,5月,6月)的注释然后获取行B中的相应数字(2月= 400,5月= -300,6月= 1200)。三个数字(1200,400,-300)的中位数当然是400。

旧: 就个人而言,我会在每个Hi:= IF(Ai> 1000,Bi,"")中使用公式隐藏行(H),然后取该行的中位数。

答案 1 :(得分:-1)

你会使用类似下面的内容(伪代码,而不会看到你的电子表格):假设列" n"持有月份信息

您可以使用=if($An>1000,Median(B),"")

之类的内容