2017-07-04 30 views
1

我有一系列配对测量值(每个样本两个)。我需要计算每对的平均值,然后根据这些成对平均值计算总体均值,但我只能包括那些不超过某个阈值的成对平均值。基于标准跳过AVERAGE或STDEV Excel公式中的某些计算值(不是单元格本身)

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

现在,公式

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

...不会做的工作,因为它用零代替那些成对意味着超过阈值(1 $ C $值),而他们只是需要跳过。 “AVERAGEIF”不起作用,因为它不接受不连续的范围(至少当它们是这样输入时),使用“INDIRECT”构建非连续范围并不能帮助,因为它不接受公式。任何帮助赞赏。

+0

没有什么错误使用辅助柱。事实上,10次中的9次表现要好得多。此外,您的电子表格变得更容易理解。 – jkpieterse

回答

0

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

=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键 + + 输入所以提交它。

查看图片以查看上述公式和公式得出的结果的差异,如上所述,这会产生不正确的结果。

enter image description here

+0

非常感谢。 CHOOSE功能的有用提示 – prishly

0

这是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)) 

enter image description here

+0

感谢负载。确实非常优雅。我被卡在空串... – prishly

+0

不客气!在这个单元格(B1)上设置一个验证规则可能是明智的,这样不会有任何意外的东西被放进去;-) –

相关问题