2015-04-19 62 views
1

Image for reference中位数/平均不返回正确的价值观

enter image description here

我试图实现以下目标: 如果(单元格A1在列表1中),对于每一行中它的发现和if(C4:C10 > B4:B10),然后median(the subtraction between C and B values, for every row that has text1)

我已经尝试了两种不同的2公式:

1 - {=MEDIAN(IF(AND((C4:C10>B4:B10);(B4:B10=A1));(C4:C10-B4:B10)))}

2 - {=MEDIAN((C4:C10>B4:B10)*(B4:B10=A1)*(C4:C10-B4:B10))}

中值,它始终返回0,对于一般的说是不准确的非常小的值。我确定中位数和平均数不正确。

问题是什么?

另外,我怎么会使用类似: {=MEDIAN((C4:C10>B4:B10)*(B4:B10=A1)*(C4:C10-B4:B10))}

如果一个列有一些行中的文本? (前者的问题并非如此,但之前已出现)。


text1     

list 1  list 2  list 3 
text2  1   5 
text4  2   4 
text1  4   6 
text4  1   6 
text1  4   5 
text4  2   4 
text1  3   3 
+0

但在您的示例中,C中的值都不比B中的大。我是否错过了某些内容?它不符合你的第二个标准! – AHC

回答

3

在这些类型的公式不能使用AND功能,因为AND返回单个结果(TRUEFALSE)不是作为所需的阵列。

您的第二个公式更接近,但是通过将所有条件相乘,您将在条件不满足的每一行都得到零,从而扭曲结果。

您可以使用这些类似的版本中的任一种:

=MEDIAN(IF((C4:C10>B4:B10)*(A4:A10=A1);C4:C10-B4:B10))

=MEDIAN(IF(C4:C10>B4:B10;IF(A4:A10=A1;C4:C10-B4:B10)))

都需要与CTRL + SHIFT确认 + ENTER

要处理列中的文本或C(并以制忽略这些行,但工作,否则)你可以添加这样

=MEDIAN(IF(C4:C10>B4:B10;IF(A4:A10=A1;IF(ISNUMBER(C4:C10-B4:B10);C4:C10-B4:B10))))

额外IF函数的所有公式将AVERAGE功能工作不到位的MEDIAN

同样出色

另一种方式来获得MEDIAN而忽略了文字使用AGGREGATE功能如下:

=AGGREGATE(17;6;C4:C10-B4:B10/(C4:C10>B4:B10)/(A4:A10=A1);2)

这不需要“数组条目”,但只能在Excel 2010或更高版本中使用。有没有简单的等效为AVERAGE

17表示QUARTILE功能 - 第二四分位数的中位数

相当于附见屏幕截图,展示您的样本数据的最后两个公式....和一些额外的文本

Excel screenshot

+0

是不是让列B与列A混淆?列A包含需要匹配的文本值** A1 **而不是列B.因此,在您的公式中,它们应该替换为** A4:A10 = A1 ** – AHC

+0

我只使用了相同的单元格引用在问题 –

+0

的公式中是的,但问题中的公式是错误的!这个问题的来源文本是错误的。它应该纠正。此外,单元格不能有与A1的文本值相匹配的文本值,同时也要减去! – AHC

1

假设在column C值即表3比大于column B表2,则可以使用下面的公式:

=MEDIAN(IF((A4:A10=A1)*(C4:C10>B4:B10);C4:C10-B4:B10)) 



这是一个数组公式,所以pr ess ctrl + shift + 输入来计算公式。 告诉我它是否无效。