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

从Excel双工作表生成月度可追加临时表的SQL查询求助

解决Excel两表合并并每月自动追加数据的问题

先明确你的数据源情况:
departure表数据:

MONTHName
AprilMichael
AprilDanny

arrival表数据:

MONTHName
AprilSunny
AprilSam

针对你需要合并两表、标记来源并每月自动追加当月数据的需求,给你两个实用方案:

方案一:用Excel Power Query(推荐)

Power Query是Excel处理这类合并、增量更新的最优工具,操作简单还能自动化:

步骤1:导入两张表到Power Query

  • 打开Excel,点「数据」选项卡 →「获取数据」→「自文件」→「自工作簿」,选中当前文件
  • 在导航器里选departure和arrival表,点「加载到」→ 选「仅创建连接」,勾上「添加到数据模型」

步骤2:合并表并添加status标记

  • 点「数据」→「获取数据」→「自其他来源」→「空白查询」
  • 在公式栏粘贴以下M代码(表名和你的实际表名一致就行):
let
    // 给departure表加status标记
    DepartureData = Table.AddColumn(departure, "status", each "departure"),
    // 给arrival表加status标记
    ArrivalData = Table.AddColumn(arrival, "status", each "arrival"),
    // 合并两张表
    CombinedData = Table.Combine({DepartureData, ArrivalData}),
    // 筛选当月数据(自动取当前月份,可按需调整)
    CurrentMonth = Date.MonthName(DateTime.LocalNow()),
    FilteredData = Table.SelectRows(CombinedData, each [MONTH] = CurrentMonth)
in
    FilteredData
  • 点「关闭并上载」,选把数据加载到新工作表,这就是你的临时表

步骤3:设置自动刷新追加

  • 右键临时表 →「刷新」就能拿到当月最新合并数据;要自动刷新的话,点「数据」→「全部刷新」→「连接属性」,设置每月固定时间自动刷新就行

方案二:用Excel SQL查询(适合熟悉SQL的用户)

如果习惯写SQL,用Excel的数据连接就能实现:

步骤1:创建SQL查询连接

  • 点「数据」→「获取数据」→「自其他来源」→「来自Microsoft Query」
  • 选「Excel Files*」,选中当前工作簿,点「确定」
  • 查询向导里依次加departure和arrival表,关闭向导进入SQL视图,输入以下语句(注意表名要加$后缀,比如departure$):
SELECT MONTH, Name, 'departure' AS status FROM departure$
UNION ALL
SELECT MONTH, Name, 'arrival' AS status FROM arrival$
WHERE MONTH = DATENAME(month, GETDATE())
  • 点「返回数据」,选加载到新工作表

步骤2:实现每月追加

  • 每次要追加当月数据,右键临时表→「刷新」就会自动拉取当月的departure和arrival数据合并;要自动追加同样在连接属性里设置定时刷新

关于你遇到的CASE WHEN瓶颈

CASE WHEN是单表内的条件判断逻辑,而跨表合并需要用UNION ALL(SQL)或者Table.Combine(Power Query)来拼接两个数据集,再单独给每个数据集加来源标记,不是在单表里用CASE WHEN去判断另一表的内容,这就是你之前卡壳的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:05:16