Power BI中补全缺失日期并复制指定日期数据的方法
在Power BI中复制指定日期数据到新日期的解决方案
你拥有一张名为Summary的表,包含列:Date、Bank Name、MtM、RW 3%、Options、CCS、CCS 6%,示例数据如下:
| Date | Bank Name | MtM | RW 3% | Options | CCS | CCS 6% |
|---|---|---|---|---|---|---|
| 29 Dec 2023 | Citibank | 300 | 45 | 0 | 375 | 0 |
| 30 Dec 2023 | HSBC | 175 | 225 | 0 | 0 | 200 |
| 02 Jan 2023 | Citibank | 475 | 150 | 28 | 0 | 220 |
需求为将2023年12月30日的数据复制到2023年12月31日和2024年1月1日,保持其余字段值不变。手动追加文件易导致表结构混乱,以下是Power BI中的稳妥实现方法:
方法一:Power Query可视化操作
- 打开Power Query编辑器:点击主页选项卡 → 转换数据。
- 选中
Summary表,点击Date列的筛选按钮,仅勾选30 Dec 2023,筛选出目标行。 - 复制目标行:选中筛选后的行,右键选择复制行,重复操作1次;或点击主页→复制后,点击粘贴两次,得到3行相同的目标日期数据。
- 修改新行日期:分别将两个复制行的
Date单元格修改为31 Dec 2023和01 Jan 2024。 - 清除筛选:点击
Date列筛选按钮,选择清除筛选恢复全量数据。 - 加载数据:点击主页→关闭并应用,将修改后的数据加载回Power BI。
方法二:M代码批量处理(高效自动化)
- 进入Power Query编辑器,选中
Summary表,点击高级编辑器。 - 替换原有M代码为以下内容(保留原
Source部分不变):
let Source = 你的原始数据源代码(请勿修改), // 筛选2023-12-30的目标行 TargetRow = Table.SelectRows(Source, each [Date] = #date(2023, 12, 30)), // 定义需要新增的日期列表 NewDates = {#date(2023, 12, 31), #date(2024, 1, 1)}, // 交叉合并目标行与新日期 NewRows = Table.AddColumn(TargetRow, "NewDate", each NewDates), NewRowsExpanded = Table.ExpandListColumn(NewRows, "NewDate"), // 替换日期列并清理临时字段 NewRowsFinal = Table.RenameColumns(NewRowsExpanded, {{"NewDate", "Date"}}), // 合并原表与新增行 CombinedTable = Table.Combine({Source, NewRowsFinal}) in CombinedTable
- 点击完成,再点击关闭并应用完成数据更新。
注意事项
- 确保
Date列数据类型为日期:若当前是文本类型,选中列后点击转换→数据类型→日期,避免格式错误。 - 手动追加文件易引发结构混乱,根源是追加文件的列名、数据类型与原表不匹配,Power Query操作可严格保持结构一致性。
内容的提问来源于stack exchange,提问作者S.A Vipani
相关产品推荐
相关产品推荐

