标签:Excel公式练习
工作表中有3列数字,要求每3个数字中最接近的2个数字的平均值,如下图1所示。
图1
例如,上图1中工作表第3行的数字10、2、19,最接近的2个数字是10和2,其平均值是(10 2)/2=6。
如何编写公式?
由于只有3个数字,首先想到的就是IF函数了。
很显然,3个数中大小处于中间的数一定是所要求的2个数之一,还有一个数就是与中间数相比,最接近中间数的数。
使用MEDIAN函数求得中间数:
MEDIAN(B3:D3)
然后,将3个数依次与中间数比较,除0以外,绝对值最小的数就是另外一个数了。
这样,完整的公式为:
=AVERAGE(MEDIAN(B3:D3),IF(MEDIAN(B3:D3)=B3,IF(ABS(B3-C3)<ABS(B3-D3),C3,D3),IF(MEDIAN(B3:D3)=C3,IF(ABS(C3-B3)<ABS(C3-D3),B3,D3),IF(ABS(D3-B3)<ABS(D3-C3),B3,C3))))
还可以使用MAX/MIN/MEDIAN函数组合公式:
=IF(MAX(B3:D3)-MEDIAN(B3:D3)>MEDIAN(B3:D3)-MIN(B3:D3),AVERAGE(MEDIAN(B3:D3),MIN(B3:D3)),AVERAGE(MEDIAN(B3:D3),MAX(B3:D3)))
下面的公式也可以实现且更健壮:
=IF(COUNTIF(B7:D7,AVERAGE(B7:D7))=1,"-",IF(COUNTIF(B7:D7,">"&AVERAGE(B7:D7))=1,(SUM(B7:D7)-MAX(B7:D7))/2,(SUM(B7:D7)-MIN(B7:D7))/2))
将上面的公式稍微转换一下,得到下面的公式:
=(SUM(B3:D3)-CHOOSE(COUNTIF(B3:D3,">"&AVERAGE(B3:D3)),MAX(B3:D3),MIN(B3:D3)))/2
似乎是在写公式,实际上是在考数学!!!
你还有更简洁的公式吗?欢迎留言。