分享

Excel公式来了!求3个数中最接近的2个数的平均值

 hercules028 2022-04-05

excelperfect

标签:Excel公式练习

工作表中有3列数字,要求每3个数字中最接近的2个数字的平均值,如下图1所示。

图片

1

例如,上图1中工作表第3行的数字10219,最接近的2个数字是102,其平均值是(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

似乎是在写公式,实际上是在考数学!!!

你还有更简洁的公式吗?欢迎留言。

注:有兴趣的朋友可以在知识星球完美Excel社群下载本文配套示例工作簿。 


想学Excel VBA的朋友,快看完美Excel视频号:

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多