关于公式编写:一组数据,排列无序,如何求最小一半数据的平均值。

我是社区第116309位番薯,欢迎点我头像关注我哦~
关于公式编写:一组数据,排列无序,如何求最小一半数据的平均值呢?我们首先考虑数据若为奇数,数据量怎么定义。这里我们以奇数时多取一数据为例编写公式。


公式为:
  1. AVERAGE(GREPARRAY(split(A5, ","),item<=INDEXOFARRAY(SORTARRAY(split(A5, ",")), ROUNDUP(count(split(A5, ",")) / 2)) ))
复制代码

公式解析:
首先设定A5为扩展单元格。
AVERAGE(数组)  求数组的平均数  
GREPARRAY(array,fn) 过滤符合 fn 条件的 array 数组生成一个新数组 array=split(A5, ",")   fn=item<=INDEXOFARRAY(SORTARRAY(split(A5, ",")), ROUNDUP(count(split(A5, ",")) / 2))
SORTARRAY(array):返回数组array排过序的数组。
NDEXOFARRAY(array, index):返回数组array的第index个元素。
        array=SORTARRAY(split(A5, ",")) 此为从小到大排列   
        index=ROUNDUP(count(split(A5, ",")) / 2) 判断A5有几个数字/2 ,结果向上取整,也就是如果为奇数的时候,向上保留,即7/2=3.5 =4

也就是排序之后生成新的有序数组,然后获取到数字个数之后取最中间的那个值,以此值为条件过滤原始数组,生成新的数组即小于中间数的数组,然后求平均值。



本问题是由本人在帆软报表交流qq群里提问,并由【管理员】瑞诚科技承接帆软相关项目-星痕为我解答,解答过程可以说得上是掏心掏肺。在此非常感谢帆软管理人员的帮助!并在此对学到的知识进行分享。

发表于 2018-7-9 17:15:42
我不是官方人员
发表于 2018-7-9 19:05:21
发表于 2018-7-10 08:46:51
昨天在群里看你们争论了半天。233333
发表于 2018-7-10 13:49:42
发表于 2018-7-12 09:07:01
发表于 2018-9-13 12:36:55
FINEBI里面的A5是怎么定义的?第一列第五行?
发表于 2019-3-29 22:08:00
很好,很受启发
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

7回帖数 1关注人数 5753浏览人数
最后回复于:2019-3-29 22:08

返回顶部 返回列表