首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从Excel到PQ:智能数据转换

你好,我是小必,感谢与你在这里相遇。

今天给大家继续更新一期关于Excel中数据转换的问题。

前几天在某公众号上看到了这个素材,在工作表中使用了很多的辅助列来完成的,对于这样的数据转换的问题是Excel Power Query最擅长的事情,所以将自己的解题的思路分离给大家,可以帮助大家快速地提高Power Query中关于M公式的理解与学习。

本期内容基本上还是利用Power Query中的M公式的方法来完成,虽然说使用图形操作也能完成,但是总的来说,图形操作不是很智能,当数据发生变化的时候会发生错误。

如图所示,将下面的左侧的每户人员的信息按户主进行转换成右侧的数据。需要注意的是左侧的第2列中同时包含了户主。

先将数据从【数据】-【从表格/区域】,加载至Power Query中去。如图所示。

在Power Query编辑器中,首先使用Table.Group函数以"户主"为关键字进行分组,如图所示。

接下来就是对每一个table里面的数据进行处理,即将户主的行删除掉,这里有2种方法可以选择,一种是先将”户主及成员“列深化出来,再使用List.RemoveItems函数删除当前的户主的行,另外一种就是使用Table.SelectRows函数进行筛选,将户主的行删除掉,然后再深化出“户主及成员”。

第1种方法可以写成:

为了后面的调用方便,分组的内容写成多个Record的形式。即:

第2种方法可以写成:

接下来我们将这些内容横向展开要使用时先要转换成列,使用到Record.FromList函数,但是展开时,还要命名成“成员1”,"成员2"……这样的俩字 ,所以需要将每个List的数量数出来,再构造一个序列,连接一个字符串"成员"即可。最终可以写成:

然后将Record展开即可。如图所示:

两种方法完整的代码如下图所示:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210125A01F2Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券