分享

Power Query合并工作簿出错怎么办?

 劲哥酷歌 2019-07-21

从2016版开始,Excel自带的Power Query功能让很多小伙伴为之倾倒,用Power Query来匹配字段(合并查询比VLOOKUP快很多),合并同一个文件夹下的大量工作簿等,效率那是一个高。

但是有很多小伙伴会遇到合并工作簿出错的问题:明明都是字段名字相同的工作簿,合并文件以后,却只显示一个工作簿的明细,其他工作簿的内容都不见了。

文件内容如截图所示:

咱们先来回忆一下用PQ合并多个工作簿的方法。

数据选项卡—新建查询—从文件—从文件夹—浏览(选择工作簿所在的路径)—确定—组合和编辑—选择一个示例文件,点确定—关闭并上载。

通常,这样一套操作下来,保存好的多个工作簿,就乖乖的并到一个表里了。但这次给出了错误提示:[Expression.Error] 该键与表中的任何行均不匹配。

让我们一起来查一查是哪里出了问题吧。Power Query有一个很优秀的特性,就是会在右侧“应用的步骤”中记录下来每一步的操作,并起一个名字。只要点击名字,就可以在界面中间预览这一步操作的结果。

我们从“更改的类型”开始往回找,看看是从哪一步开始出现Error的。最终找到了“调用自定义函数1”。再往前一步,就没有产生错误了。所以我们来看一看,这个调用自定义函数1,到底出了什么问题。

点开左上角的高级编辑器,我们看到这一步使用了Table.AddColumn这个函数。

这个函数的功能是在表“筛选的隐藏文件1”中新增一列,新增的列名为“从 新建文件夹 转换文件”,第三个参数就是each后边调用的函数了。

这时候,我们基本可以断定,问题出在这个自定义的函数上了。

我们回过头来,看左边界面的查询,由两个文件夹状的标记组成:

下边一个叫其他查询[2],也就是我们最终的查询结果;上边一个叫“从 新建文件夹 转换文件[3]”,就是自定义的函数了。

经过对这个函数下每一个查询的筛查,我们发现其中一个查询,叫做“从新建文件夹 转换示例文件”。

打开这个查询的高级编辑器。从第二行可以看出,获取数据的规则是,sheet名为“1”,类型为“sheet”的数据。

由此,我们可以推测,Power Query把这个规则固定下来作为示例,作用在每一个要合并的文件上。

由于第二个工作簿的sheet名为“20161222153959”,第三个工作簿的sheet名为“20180111094717”,很明显不在示例规则的取数范围内,难怪合并不到其他工作簿的数据呢。

问题找到了,要怎么解决呢?

其实解决方法很简单,把限制条件删掉就可以了,即删掉Item='1',,尤其注意要删掉逗号。改完后,点击确定就可以了。

这个问题主要适用这样的情况:

1.自己喜欢用不同的sheet名,来保存不同的数据。

2.数据来源是公司系统,但系统每次升级,都会给你个新的默认sheet名。

如果要一个个的打开工作簿,人工把sheet名改成一致的,工作量简直不可想象,所以咱们还是选择改代码吧。

图文制作:北京市朝阳区 吴浩

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多