本期案例涉及多名业务员的分析结果显示在一行上,要求对业务员的分析结果进行统计,前后转换结果如下:
解题套路
1.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.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.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等函数进行转换,所谓换汤不换药,基本的操作思路一样,不同在于外层函数的区别。
以上是本期内容。
页面更新:2024-03-12
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号