之前的案例都是列数及行数相同,那如果是不同的情况下,该如何处理呢?
原表:
目标表:
此时我们可以通过另外一个分组函数来进行处理。Table.Group
Table.Group(table as table, //需要操作的表
key as any, //分组关键词
aggregatedColumns as list, //分组后的新列名及计算公式
optional groupKind as nullable number, //全局分组或者是局部分组
optional comparer as nullable function) as table //局部分组使用到的函数
if Text.Contains([列1],"班") then 1 else null
解释: 判断列1是否包含班的关键词,如果有就标记1,没有就空着。主要是为了之后的分组作为依据。
Table.Group(已添加自定义,
"自定义",
{"计数", each _},
0,
(x,y) => Number.From(y=1)
)
解释: 判断从1开始直到下一个为1之前的作为一个表来进行分组。
可以通过添加列,也可以在之前分组的时候进行处理。
Table.Group(已添加自定义,
"自定义", //不能是列表格式,列表格式局部分组就无意义
{"计数", each Table.Transpose(_)}, //转置表并显示增加的列名
0, //局部分组
(x,y)=>Number.From(y=1)
)
Table.AddColumn(分组的行, "自定义.1", each Table.Transpose([计数]))
这里留个疑问,因为目前来看,列名都是一一对应的,如果列名不一致的话,如何进行处理呢?可以先行试着操作下。
原表:
目标表:
案例模拟文件下载http://gofile.me/4KHV7/SUo5ywXxC 试试看能不能得出效果呢? 如果用之前的方式,我们不能把相同项目归类在一起,得到的错误结果是这样的。
如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。