如何将PowerQuery查询结果追加到自身,实现车队数据时序追踪?
实现Power Query车队数据时序快照追踪的解决方案
没问题,这其实是Power Query里做数据快照追踪的典型场景,我给你分步骤讲清楚怎么实现,确保每次运行查询都能自动追加当天的车队数据:
核心思路
我们需要一个专门的文件来存储历史快照数据,每次运行查询时:
- 生成带当日日期的新数据快照
- 加载已有的历史数据
- 将新快照追加到历史数据中
- 把合并后的完整数据保存回历史文件
具体操作步骤
1. 准备历史存储文件
- 新建一个Excel文件(命名为
FleetHistory.xlsx),创建一个名为History的工作表,把你第一次生成的带2020-07-30日期的快照数据作为初始历史数据粘贴进去。
2. 在Power Query中构建查询流程
步骤A:生成当日新快照
- 打开你的原始车队数据(已完成unpivot操作的数据源),进入Power Query编辑器。
- 点击顶部菜单栏的
添加列→自定义列,输入以下公式生成当日日期:= DateTime.Date(DateTime.LocalNow()) - 把新列重命名为
日期(Date),此时你就得到了带当日日期的新快照数据。
步骤B:加载历史数据
- 在Power Query编辑器中,点击
获取数据→从文件→从工作簿,选择你刚创建的FleetHistory.xlsx。 - 选择
History工作表,加载它的数据到Power Query中。
步骤C:追加新快照到历史数据
- 选中加载后的历史数据查询,点击
追加查询→追加查询作为新查询。 - 在弹窗中选择
两个表,第一个表选历史数据,第二个表选你刚生成的带日期的新快照数据,点击确定。
步骤D:保存更新后的历史数据
- 选中追加后的合并查询,点击
关闭并上载至→仅创建连接。 - 右键这个连接,选择
加载到:- 选择
仅创建连接,勾选加载后刷新。 - 点击
属性,勾选刷新时覆盖现有数据,然后指定保存到FleetHistory.xlsx的History工作表。
- 选择
日常使用方法
每次需要更新快照时,只要打开包含Power Query的文件,点击数据 → 全部刷新:
- Power Query会自动获取最新的车队数据,生成带当日日期的快照
- 自动追加到历史数据中,然后覆盖保存到
FleetHistory.xlsx里
注意事项
- 刷新时确保
FleetHistory.xlsx处于关闭状态,避免文件冲突。 - 如果原始数据源是自动更新的(比如数据库、共享文件),可以设置自动刷新间隔(在Excel的
数据→连接属性中设置),实现每日自动记录数据。 - 可以在Power Query中调整
日期(Date)列的格式为YYYY-MM-DD,确保日期显示符合需求。
内容的提问来源于stack exchange,提问作者Alex Dore
相关产品推荐
相关产品推荐

