天天看点

Table.ToList 数据拆分汇总案例

作者:可乐之滨

本期案例涉及多名业务员的分析结果显示在一行上,要求对业务员的分析结果进行统计,前后转换结果如下:

Table.ToList 数据拆分汇总案例

解题套路

1.Table.ToList

解题思路:对行进行遍历拆分,接着对获得的结果进行压缩操作,这样就获得了业务员与结果一一对应的列表。最后转换成表,通过分组求和获得最终的结果。

Table.ToList 数据拆分汇总案例
Table.Group(Table.Combine(Table.ToList(源,each Table.FromRows(List.Zip(List.Transform(_,(x)=>Text.SplitAny(Text.From(x)," /"))),{"业务员","结果"}))),"业务员",{"结果",each Expression.Evaluate(Text.Combine([结果],"+"))})           

这里Table.ToList也可以用组合函数List.Transform+Table.ToRows:

Table.ToList 数据拆分汇总案例
Table.Group(Table.FromRows(List.Combine(List.Transform(Table.ToRows(源),each List.Zip(List.Transform(_,(x)=>Text.SplitAny(Text.From(x)," /"))))),{"业务员","结果"}),"业务员",{"结果",each List.Sum(List.Transform([结果],Number.From))})           

或者使用Table.ToColumns,区别在于总体拆分后在进行压缩操作:

Table.ToList 数据拆分汇总案例
Table.Group(Table.FromRows(List.Zip(List.Transform(Table.ToColumns(源),each List.Combine(List.Transform(_,(x)=>Text.SplitAny(Text.From(x)," /"))))),{"业务员","结果"}),"业务员",{"结果",each List.Sum(List.Transform([结果],Number.From))})           

当然,也可以使用Table.ReplaceValue、Table.CombineColumns等函数进行转换,所谓换汤不换药,基本的操作思路一样,不同在于外层函数的区别。

以上是本期内容。