查看: 19506|回复: 2

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

[复制链接]

633

主题

440

回帖

80

日志

管理员

积分
5690
QQ
发表于 2022-7-26 10:46:56 | 显示全部楼层 |阅读模式
从2016版开始,Excel自带的Power Query功能让很多小伙伴为之倾倒,用Power Query来匹配字段(合并查询比VLOOKUP快很多),合并同一个文件夹下的大量工作簿等,效率那是一个高。合并文件夹内中的表提示 Expression.Error: 该键与表中的任何行均不匹配

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

文件内容如截图所示:

qw1.jpg

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

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

qw2.jpg

qw3.jpg

qw4.jpg

qw5.jpg

qw6.jpg

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

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

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

qw7.jpg

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

qw8.jpg

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

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

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

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

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

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

qw9.jpg

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

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

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

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

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

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

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

如果要一个个的打开工作簿,人工把sheet名改成一致的,工作量简直不可想象,所以咱们还是选择改代码吧。
上士闻道,勤而行之;中士闻道,若存若亡;下士闻道,大笑之。不笑不足以为道!
回复 关闭延时

使用道具 举报

633

主题

440

回帖

80

日志

管理员

积分
5690
QQ
发表于 2022-7-26 23:44:52 来自手机 | 显示全部楼层
今天发现问题出现在每个excel文件的sheet名不一致,所以报错
上士闻道,勤而行之;中士闻道,若存若亡;下士闻道,大笑之。不笑不足以为道!
回复 支持 反对

使用道具 举报

633

主题

440

回帖

80

日志

管理员

积分
5690
QQ
发表于 2022-7-26 23:45:27 来自手机 | 显示全部楼层
Expression.Error: 该键与表中的任何行均不匹配
上士闻道,勤而行之;中士闻道,若存若亡;下士闻道,大笑之。不笑不足以为道!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册  

本版积分规则

快速回复 返回顶部 返回列表