美文网首页PowerQueryPowerBI专栏Power BI干货
PowerQuery:批量合并Excel的指定列 | Power

PowerQuery:批量合并Excel的指定列 | Power

作者: PowerBI星球 | 来源:发表于2019-06-24 21:34 被阅读22次

    本文来源于一个星友的问题,他有上百个Excel表格,格式并不完全一样,列的位置顺序也不同,但每个表都有几个共同列,这种情况下,能不能通过PowerQuery把这些表格共同的列批量合并呢?

    当然是可以的!

    我模拟了三个表,源数据的情况大致是这样的,

    这三个表之间的特征如下:

    有共同列

    列的位置顺序是不同的

    列的数量不同,表三比其他表少了一列

    假设我们需要提取其中四列并合并:订单日期、商品名称、客户编号和销售额,这四列在三个表都存在。

    如果使用PowerQuery简单的合并汇总功能,是无法满足要求的,不过通过简单的M代码就可以实现。

    下面是操作步骤。

    /01/

    将需要合并的表放入到一个文件夹中,然后使用获取数据>从文件夹,

    /02/

    点击编辑,进入PowerQuery编辑器,删除无关列,只保留Content列,

    /03/

    添加自定义列,

    结果如下,

    上面这三个步骤都是常规的合并操作,下面这一步是重点。

    /04/

    添加步骤,输入以下M代码,

    合并指定列

    Table.Combine(

        List.Transform(

          Table.Combine(已添加自定义[数据])[Data],

            each Table.SelectColumns(_,

     {"订单日期","商品名称","客户编号","销售额"})))

    大功告成,只包含这四列的表格合并好了,

    主要是利用了 List.Transform和Table.SelectColumns函数组合来提取需要的列,然后再利用Table.Combine函数把提取后的列合并起来。

    以上代码自己琢磨一下,暂时不理解也没有关系,遇到同类问题直接套用即可。

    通过这个小例子,也可以看出M的灵活和强大,当遇到特定的问题,只靠鼠标点击界面功能无法满足需要的时候,也许简单两个M函数就解决了。

    并且,有的问题通过界面功能需要很多步骤才能实现,而利用M可以一步完成,大大简化操作步骤。

    如果你经常做数据清洗工作,并且源数据不够规范,这种情况下学点M是很有必要的。

    /推荐阅读/

    01关于一维表,你想知道的都在这里了

    02使用Power Query是一种什么体验?

    03利用API,轻松获取任意地点的经纬度等详细信息


    我是采悟,PowerBI星球作者,在微信公众号"PowerBI星球"中回复"PowerBI",获取《七天入门PowerBI》电子书,轻松上手数据分析。

    相关文章

      网友评论

        本文标题:PowerQuery:批量合并Excel的指定列 | Power

        本文链接:https://www.haomeiwen.com/subject/lzyaqctx.html