2017年02月13日 16:53:00 SAP剑客 阅读数:7551 标签: Power Query 更多
个人分类: Power Query
所属专栏: Power Query 从实例应用到精通
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhongguomao/article/details/55050222
工作中,生活中不免会遇到需要整理大量复杂数据的情况,单纯的靠手动去搜索统计固然可以,但是效率极其低下。
如下图,列举了1990年~2015年NBA美职篮全明星的参赛名单,现在需要统计出每个人的参赛次数。
实现效果如下:
下面直接来简单谈一下它的实现思路,首先我们整理掉一些不需要的数据,例如“NBA2008年全明星阵容”相关的字眼。
我们利用第一列的“文本筛选器”剔除掉开头不为“NBA”的行。
接着利用我们熟悉的伎俩进行拆分操作。
根据分隔符“:”分割阵容以及姓名。
再根据“、”分割第二列数据(注意一定要选择“在出现的每个分隔符处”)。
接着我们选中第一列,进行除此列外的逆透视列,这个功能一直觉得特别好用。
删除我们不需要的列,更改列名,然后根据最后有一列姓名做分组依据。
大概的效果已经达成,但是我们的需求是将相同入选次数的明星都放在一起。
这个时候我们要做的还是分组依据(其实可以直接用函数完成,但是为了通俗易懂,巩固之前所学的函数Text.Combine)。
这个时候出现了Error,意料之中,我们所需的函数闪亮登场了。
替换
Table.Group(分组的行, {"入选次数"}, {{"姓名", each List.Sum([姓名]), type text}})
为
Table.Group(分组的行, {"入选次数"}, {{"姓名", each Text.Combine([姓名]), type text}})
结果貌似略丑啊,原因是没有分行显示,这个时候介绍一个小窍门。
上面的Text.Combine可以添加一个分隔符,我们不妨直接添加分行符号。
Table.Group(分组的行, {"入选次数"}, {{"姓名", each Text.Combine([姓名],"#(lf)"), type text}})
这个时候大功告成!
然后保存加载到新工作簿,发现格式错了,完了,居然没有换行。
不要慌张,这个是因为没有点击“自动换行”。
最后我们按照次数降序排列,达到最终目的。
模板下载路径:http://download.csdn.net/detail/zhongguomao/9754625