Excel怎样求数据去掉N个最高,M个最低后的平均值

/ 0评 / 0

计算数据列中去掉N个最高,M个最低后的平均值,不限于最常见的(去掉一个最高分一个最低分),也不限于TRIMMEAN函数首尾对称的去除(例如前4后4),而是可以手动限定前几后几(例如去除前6最高分,后4最低分)

ABCD
50505050
50505050
50505050
50505050
50505050
50505050
50505050
50505050
50505050
50505050
50495050
50495050
50495050
50495050
50495050
50495050
50495050
50495050
50495050
50494950
50494950
50494950
50494950
50494950
50494950
50494950
50494950
50494950
50494950
50494950
49494950
49494950
49494950
49494950
49494950
49494950
49494950
49494950
49484950
49484950
49484950
49484950
49484950
49484950
49484950
49484950
49484950
49484950
49454950
49454950
494949
494949
494849
494849
494849
484849
484849
484749
484548
484548
49.4807692348.9523809549.2115384649.88461538AVERAGE(D6:D57)
49.4807692348.9523809549.2115384649.88461538TRIMMEAN(D2:D61,8/COUNT(D2:D61))
49.4807692348.9523809549.2115384649.88461538(SUM(D2:D61)-SUM(SMALL(D2:D61,ROW(D1:D4)))-SUM(LARGE(D2:D61,ROW(D1:D4))))/(COUNT(D2:D61)-8)
49.4807692348.9523809549.2115384649.88461538(SUM(D2:D61)-LARGE(D2:D61,1)-LARGE(D2:D61,2)-LARGE(D2:D61,3)-LARGE(D2:D61,4)-SMALL(D2:D61,1)-SMALL(D2:D61,2)-SMALL(D2:D61,3)-SMALL(D2:D61,4))/(COUNT(D2:D61)-8)
49.4807692348.9523809549.2115384649.88461538(SUM(D2:D61)-SUM(LARGE(D2:D61,{1,2,3,4}))-SUM(SMALL(D2:D61,{1,2,3,4})))/(COUNT(D2:D61)-8)
49.4807692348.9523809549.2115384649.88461538(SUM(D2:D61)-SUM(LARGE(D2:D61,{1,2,3,4}))-SUM(SMALL(D2:D61,{1,2,3,4})))/(COUNT(D2:D61)-8)
49.48076923#NUM!49.2115384649.88461538AVERAGE(SMALL(D2:D61,ROW(5:56)))
相同不同相同相同IF(COUNTIF(D63:D68,D63)=6,"相同","不同")

以上是使用的数据样表(为了便于验证,已对各列数据进行了人为的降序排列,但是在实际使用中,可以直接使用后面的公式,不用管数据实际排序)

第一种:

=(sum(D2:D61)-max(D2:D61)-min(D2:D61))/(count(D2:D61)-2)

简单明了,对数据区域求和,减去最大值再减去最小值,除以(数据区域的个数减2)

第二种:

TRIMMEAN(D2:D61,8/COUNT(D2:D61))

TRIMMEAN函数对称剔除求平均值。剔除D2:D61区域前4个最大和后4个最小

第三种:

(SUM(D2:D61)-SUM(SMALL(D2:D61,ROW(D1:D4)))-SUM(LARGE(D2:D61,ROW(D1:D4))))/(COUNT(D2:D61)-8)

使用SMALL和LARGE排序函数

求D2:D61区域的和-减去-(D2:D61区域按照从小到大排序,并求排名第1到第4(D1:D4的行号就是1:4)的和)-减去-(D2:D61区域按照从大到小排序,并求排名第1到第4(D1:D4的行号就是1:4)的和)-除以-(D2:D61区域的数量减8)

注意:ROW数组函数,确定时使用Ctrl+Shift+Enter进行计算,不然公式会算错

第四种:

(SUM(D2:D61)-LARGE(D2:D61,1)-LARGE(D2:D61,2)-LARGE(D2:D61,3)-LARGE(D2:D61,4)-SMALL(D2:D61,1)-SMALL(D2:D61,2)-SMALL(D2:D61,3)-SMALL(D2:D61,4))/(COUNT(D2:D61)-8)

仍然是使用SMALL和LARGE排序函数,但是逻辑更简单暴力

用数据区域的总和减降序排列的第1个、第2个、第3个、第4个再减升序排序的第1个、第2个、第3个、第4个,然后除以区域的数量减8

这里你需要去掉几个最高分最低分就对应的调节

第五种:

(SUM(D2:D61)-SUM(LARGE(D2:D61,{1,2,3,4}))-SUM(SMALL(D2:D61,{1,2,3,4})))/(COUNT(D2:D61)-8)

是第三种的变种,就是把ROW函数直接明码了,你需要去掉几个最高分最低分就对应的调节

第六种:

AVERAGE(SMALL(D2:D61,ROW(5:56)))

直接使用AVERAGE函数,前提是需要知道自己需要的数据应该是从第几位到第几位。这里搭配的SMALL升序函数,理论上使用LARGE降序函数应该也可以

最后是验证单元格是否相等的函数公式:IF(COUNTIF(D63:D68,D63)=6,"相同","不同")(逻辑是使用判断跟所选单元格相同的单元格数量是否是自己想要的数量进行返回)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注