|
楼主 |
发表于 2023-4-16 23:07
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 shaowu459 于 2023-4-16 23:08 编辑
在连续问题的统计上,使用当前的y和X最后一行的值比较,判断是否连续,以采取不同的操作。
以下公式,根据B4:C11单元格区域的值,返回连续值姓名对应金额汇总的目的(人员可以多次出现,例如B)。
- =REDUCE({"姓名","合计"},B4:B11,LAMBDA(x,y,IF(@TAKE(x,-1)=y,VSTACK(DROP(x,-1),HSTACK(y,SUM(TAKE(x,-1))+OFFSET(y,,1))),VSTACK(x,OFFSET(y,,,,2)))))
复制代码
公式运算过程说明如下:
1)@TAKE(x,-1)=y部分判断当前姓名是否和X最后一行的人员一致。
2)如果一致,把X的最后1行DROP掉,下面堆积上HSTACK(y,SUM(TAKE(x,-1))+OFFSET(y,,1)))这个结果。HSTACK第一参数是当前人员姓名,第二参数是最后一行的数字+当前人员对应右侧的金额合计。也即实现了更新了最后一行人员对应金额的目的。
3)如果不一致,也就是不再连续了,直接在X下面堆积上当前人员姓名和右侧对应金额。
如果不需要标题,可以给REDUCE函数的X初始值设置为0,最后再将结果第一行DROP掉即可。
|
评分
-
1
查看全部评分
-
|