借助Power Query实现SQL数据库表与Excel工作表数据关联
在无SQL写入权限时,用Excel Power Query关联SQL表与本地Excel数据的可行方案
方法1:Power Query内直接合并两张表
这是最通用的解决方案,完全在Excel端完成关联,无需接触SQL写入权限:
- 打开Power Query编辑器:点击「数据」选项卡 →「获取数据」→「从数据库」→「从SQL Server数据库」,连接目标SQL库并加载目标表到编辑器(仅加载到编辑器,不导入工作表)
- 导入本地Excel数据:在Power Query编辑器中,点击「获取数据」→「从文件」→「从工作簿」,选择当前Excel文件,导入需要关联的本地工作表
- 执行合并:在编辑器的「查询」面板选中两张表,点击「主页」→「合并查询」,选择关联字段(如唯一ID、编码列),按需选择合并类型(内连接、左连接等)
- 整理结果:展开合并后的字段,移除冗余列,确认数据类型后,将最终结果加载到Excel工作表
方法2:用本地数据作为筛选参数提取SQL匹配数据(适合小体量筛选场景)
如果本地数据是用于筛选SQL表的条件值,可以通过参数化查询减少数据量:
- 定义本地数据范围:将本地Excel中用于关联的字段值放在单独区域,设置为命名范围(如
MatchIDs) - 编写参数化SQL查询:连接SQL数据库时,选择「高级选项」,输入自定义SQL语句,示例:
SELECT * FROM [dbo].[目标SQL表] WHERE [关联字段] IN (@MatchIDs) - 绑定参数:在参数配置界面,将
@MatchIDs的数据源设置为之前定义的Excel命名范围,Power Query会自动将本地值传入SQL查询,返回匹配的数据后直接整理加载
方法3:追加同结构数据(适用于合并而非关联场景)
若两张表字段结构完全一致,仅需合并数据:
- 分别将SQL表和本地Excel表加载到Power Query编辑器
- 选中其中一张表,点击「主页」→「追加查询」→「追加两个表」,选择另一张表完成合并
- 清理重复值、统一数据类型后,将结果加载到工作表
内容的提问来源于stack exchange,提问作者akt
相关产品推荐
相关产品推荐

