根据标准跳过AVERAGE或STDEV Excel公式中的某些计算值(不是单元本身)

我有一系列配对的测量(每个样本两个)。 我需要计算每一对的平均值,然后根据这些成对平均值计算总体均值,但是我只能包括那些不超过一定阈值的成对平均值。

我试图找出一个excel公式的一般意思,考虑到上述所有,而不必创build额外的行/列。

现在,公式

=AVERAGE(IF(ABS(A1-A2)<$C$1,AVERAGE(A1,A2)),IF(ABS(A7-A8)<$C$1,AVERAGE(A7,A8)), ... ) 

…没有做这项工作,因为它取代了零,这意味着超过阈值($ C $ 1的价值),而他们只是需要跳过。 “AVERAGEIF”不起作用,因为它不接受不连续的范围(至less当它们被这样input时),使用“INDIRECT”build立非连续的范围并不能帮助,因为它不接受公式。 任何帮助赞赏。

这里不使用助手列是使公式看起来很丑,但会给你想要的结果。 试试。

 =AVERAGE(IF(CHOOSE({1;2;3},A1-A2,A4-A5,A7-A8)<C1,CHOOSE({1;2;3},AVERAGE(A1,A2),AVERAGE(A4,A5),AVERAGE(A7,A8)))) 

这是一个数组公式,通过按Ctrl + Shift + Enter来提交。

请参阅图像,查看上述公式和公式得出的结果的差异,如您提到的那样产生不正确的结果。

在这里输入图像说明

这就是我认为Excel有一些神秘的行为的地方。

我的第一个想法是,如果条件不满足,使每个if语句都返回“”

 =AVERAGE(IF(ABS(A1-A2)<$C$1,AVERAGE(A1,A2),""),IF(ABS(A7-A8)<$C$1,AVERAGE(A7,A8),"")) 

但这只是给你一个错误。

但是,如果你让它返回一个空单元格的引用(比如B1),它就可以正常工作

 =AVERAGE(IF(ABS(A1-A2)<$C$1,AVERAGE(A1,A2),$B$1),IF(ABS(A7-A8)<$C$1,AVERAGE(A7,A8),$B$1)) 

在这里输入图像说明