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

如何在Power Query中基于参考列创建返回最大日期的新列

在Power Query中按组标记最新日期行

实现思路

按Number列分组,计算每组内Date列的最大值,再将该最大值与原表每行的Date对比,匹配则标记Yes,否则标记No。

分步操作(可视化界面)

  • 打开Power Query编辑器,加载目标数据表
  • 点击开始选项卡 → 分组依据:
    • 分组列选择Number
    • 新增列名设为MaxDate,操作选最大值,列选择Date
  • 点击合并查询 → 合并查询作为新查询:
    • 原表和分组后的表均按Number列匹配,连接类型选左外部
  • 展开合并后的MaxDate列
  • 点击添加列 → 自定义列,输入公式:if [Date] = [MaxDate] then "Yes" else "No",命名为NewColumn
  • 删除临时的MaxDate列

M代码实现

如果直接编写M代码,可使用以下脚本(替换YourDataSource为实际数据源):

let
    Source = YourDataSource,
    // 按Number分组,计算每组的最大日期
    GroupedTable = Table.Group(Source, {"Number"}, {{"MaxDate", each List.Max([Date]), type date}}),
    // 合并原表与分组表,保留原表所有行
    MergedTables = Table.NestedJoin(Source, {"Number"}, GroupedTable, {"Number"}, "GroupedData", JoinKind.LeftOuter),
    // 展开分组表中的MaxDate列
    ExpandedMaxDate = Table.ExpandTableColumn(MergedTables, "GroupedData", {"MaxDate"}, {"MaxDate"}),
    // 添加判断列标记最新日期行
    AddedFlagColumn = Table.AddColumn(ExpandedMaxDate, "NewColumn", each if [Date] = [MaxDate] then "Yes" else "No"),
    // 移除临时列
    FinalTable = Table.RemoveColumns(AddedFlagColumn, {"MaxDate"})
in
    FinalTable

结果验证

运行上述操作后,数据表会生成符合需求的NewColumn:

NumberDateNewColumn
123/12/2022No
123/12/2022No
130/12/2022No
106/01/2023No
113/01/2023No
113/01/2023Yes
220/01/2023No
227/01/2023No
203/02/2023No
210/02/2023No
210/02/2023Yes

内容的提问来源于stack exchange,提问作者Rodrigo Camargo Jr.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:00:19