PQ实战 | 自动在数据的最后一列添加合计,足够智能!

各位老铁,大家好! 记得上次我们使用VBA自动在表格的最后一行智能添加合计,这里我们来聊聊如何使用PQ在表格的最后一列智能添加一列合计?
这个其实是我们上一期,一位老铁留言的问题,我们模拟一下数据,也是一个练习M函数基础的好机会,我们一起来学习一下吧!
问题说明:销售表每天增加一列,现在想自动增加一列合计,自动更新在最后一列
一般的公式肯定不好实现的,使用VBA肯定可以参考行添加合计那一期!
本期我们使用PQ看看如何处理!
先说思路:
1、我们首先把表按行拆分成一个一个List
2、对每一行,我们跳过前两个文本,然后对剩下的每天数据求和
3、把原本的每行内容 拼接上 合计数
4、重新转成表
完整代码:
如果你已经是老司机,完全可以看懂上面就可以Pass掉了!
下面是我们分步操作和解读!
01 | 表格转成多行列表
= Table.ToRows(源)
每一行会变成一个List,包裹在一个大的List中!下面我们只需要遍历处理每一行对应的List即可
02 | 跳过及求和
List.Skip(列表,需要跳过的元素个数)
前两个是区域和姓名,我们需要跳过他们,只对每天的销售数据求和!
List.Sum(列表) 可以对指定列表中的元素进行求和
03 | 原内容 & 合计
这里我们可以学到一个新知识:列表1 & 列表2 ,可以把两个列表的元素合并到一个列表中!
04 | 把每行重新转成表
Table.FromRows(每行组成的列表,标题列表) 列表转成表
Table.ColumnNames 看名字应该就能明白是获取表的标题(字段)的!
获取到原标题 再&合计!达到拼接上一列的效果!
05 | 刷新自动扩展
新增数据后,只要在结果上右击-刷新即可,也可以配合VBA实现自动刷新处理!
从动画中可以看到效果,新增刷新后会自动扩展和计算合计!
今天我们就先到这里,我想类似问题的这位朋友,应该已经Ok了!
喜欢PQ的同学记得关注,最近正在更新PQ系列!
(0)

相关推荐