双向扩展的数据,求两个横向扩展的前三个非空数字的和的商

如下图所示,要计算最近三个月的人均金额,不能直接用D3求平均。要用B3和C3的和去求平均,且取最近有值的三个月的数据(不足三个月的就求全部有值的数据),空值不要。

用SQL能算出来也行。

image.png

【补充下最终效果图】:

【补充下最终效果图】:

 这个月份扩展一般是一年,太长了截图不好看,就只放了这几个月。

image.png

FineReport 最懒的小孩 发布于 2021-12-28 15:03 (编辑于 2021-12-28 16:09)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于2021-12-28 21:28(编辑于 2021-12-28 21:42)

看一下。是你要的了。。。

汇总B列前三个不为空的sum(SLICEARRAY(GREPARRAY(b2,len(item)>0),1,3))

汇总C列前三个不为空的sum(SLICEARRAY(GREPARRAY(c2,len(item)>0),1,3))

WorkBook2222.rar

image.png

  • 最懒的小孩 最懒的小孩(提问者) sum(SLICEARRAY(GREPARRAY(b2,item>0),1,3)) 多谢大佬,解决了。 不过不能用len,会有空值参与计算,直接大于0就行。
    2021-12-29 15:41 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-12-28 15:31

快半个小时了,没人看懂么? 我也么明白,除了目前这图,再补充一张结果示例图

  • 最懒的小孩 最懒的小孩(提问者) 补充上了,烦请指教!Thanks♪(・ω・)ノ
    2021-12-28 16:08 
  • Z4u3z1 Z4u3z1 回复 最懒的小孩(提问者) 只给一个思路: 1、分别把B3合并到E3;C3 合并到F3。方便形成一个数组 2、找出第一个非空金额的序:INARRAY(\"true\",MAPARRAY(SPLIT(E3),item!=\'\')) 3、用INDEXOFARRAY()分别找出第一个非空金额及其对应的人数 4、用REMOVEARRAY()删除第1步数组中第2步个元素,生成新数组 5、重复2、3、4直到找出三个符合条件的值(其中2、3、4此时操作的数组是上一个4生成的数组) PS:上面没有考虑第1步合并的数组找不够3个满足条件是元素
    2021-12-28 16:32 
  • 最懒的小孩 最懒的小孩(提问者) 回复 Z4u3z1 感觉有戏,我先去研究研究这个方法
    2021-12-28 17:51 
最佳回答
0
杨朝健Lv5中级互助
发布于2021-12-28 15:59

去看一下层次坐标,这是一个不是经常用但是很好用的东西

  • 3关注人数
  • 519浏览人数
  • 最后回答于:2021-12-28 21:42
    请选择关闭问题的原因
    确定 取消
    返回顶部