You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Excel Power Query合并SharePoint中工作簿的table3(部分无该表)?

解决Power Query合并SharePoint文档库指定表(table3)的"key was not found"错误

问题根源

报错的核心原因是部分文件里没有table3,直接尝试访问这个表会触发键不存在的错误——Power Query找不到对应的表名,就会抛出"key was not found"。必须先对每个文件做表存在性检查,再加载目标表。

具体解决步骤

  1. 先完成SharePoint文档库的文件列表加载(常规操作:数据>获取数据>从SharePoint网站>选择文档库,得到包含文件Content、名称、路径的表)
  2. 添加自定义列,用来判断并加载table3,替换下面代码中的之前的表名为你的实际表名:
= Table.AddColumn(之前的表名, "加载table3", each 
    let
        // 读取当前文件的所有表/工作表
        AllTables = Excel.Workbook([Content], null, true),
        // 筛选出名称为"table3"的表(忽略大小写,避免因大小写不一致漏加载)
        TargetTable = Table.SelectRows(AllTables, each Text.Equals([Name], "table3", Comparer.OrdinalIgnoreCase)),
        // 找到则加载表数据,没找到返回空表(空表结构可根据实际table3列调整)
        LoadedData = if Table.RowCount(TargetTable) > 0 then TargetTable{0}[Data] else #table(type table [列1=type any, 列2=type any], {})
    in
        LoadedData
)
  1. 展开自定义列:点击"加载table3"列的展开按钮,选择需要的列(如果所有table3列结构一致,直接全选;不一致的话选"将所有列作为文本加载",后续再统一列结构)
  2. 清理冗余列:删除不需要的辅助列(比如原文件的Content列等)

关键注意事项

  • 表名匹配:如果你的实际表名不是table3,要替换成准确的名称;代码里用了Comparer.OrdinalIgnoreCase忽略大小写,如果你需要严格匹配,删掉这个参数即可
  • 空表结构:代码里的空表#table(type table [列1=type any, 列2=type any], {})最好和真实table3的列结构一致,避免展开时出现列不匹配的错误;如果不确定列结构,也可以用#table({}, {})返回完全空的表
  • 性能优化:300+文件建议关闭Power Query的"允许数据预览",或者分批加载,减少卡顿

内容的提问来源于stack exchange,提问作者NewtoPQJay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 01:51:19