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

Power BI:在Query Editor中创建含自定义列的客户年度表

嘿,我来帮你搞定Power BI Query Editor里的这个自定义列需求!看你给出的示例,应该是要给每个客户的最新年份记录标记TRUE,其他年份标记FALSE对吧?刚好可以在Query Editor里纯用M语言实现,不用依赖度量值,具体步骤如下:

实现步骤(Power BI Query Editor内操作)

1. 准备基础表

先确保你已经有了包含Clientnumber、Year、Amount的基础表——不管是从数据源加载的,还是用「输入数据」功能手动创建的示例表都可以。

2. 分组计算每个客户的最新年份

我们需要先给每个客户算出他们的最大年份,用分组功能就能搞定:

  • 选中你的表,切换到「转换」选项卡 → 点击「分组依据」
  • 分组依据选择Clientnumber,新列名填MaxYear,操作选「最大值」,关联列选Year
  • 点击确定后,你会得到一张只有客户编号和对应最大年份的分组表。

3. 合并原表与分组表

回到原表,把刚才的分组表合并进来,这样每一行都能拿到对应客户的最大年份:

  • 切换到「主页」选项卡 → 点击「合并查询」→ 选择「合并查询作为新查询」(或者直接合并到原表也可以)
  • 原表和分组表都选择Clientnumber作为匹配列,合并类型选「左外部」(确保原表所有行都保留)
  • 确定后会新增一列带分组表记录的列,点击该列的展开按钮,只勾选MaxYear列展开即可。

4. 添加自定义列判断是否为最新年份

现在来加那个标记列:

  • 切换到「添加列」选项卡 → 点击「自定义列」
  • 在弹出的公式框里输入这段M语言:
[Year] = [MaxYear]
  • 点击确定,这列就会自动返回TRUE(当该行是客户的最新年份)或FALSE(其他年份),完全匹配你的示例输出!

(可选)清理冗余列

如果不需要保留MaxYear列,右键该列选择「删除」就好。

直接用高级编辑器的完整代码

如果你想跳过手动操作,直接在高级编辑器里替换代码(假设你的原表叫Source):

let
    Source = // 这里替换成你的数据源,比如Excel.Csv("C:\你的文件路径.csv")或者Enter Data的结果
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Clientnumber", Int64.Type}, {"Year", Int64.Type}, {"Amount", Int64.Type}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Clientnumber"}, {{"MaxYear", each List.Max([Year]), Int64.Type}}),
    #"Merged Queries" = Table.NestedJoin(#"Changed Type", {"Clientnumber"}, #"Grouped Rows", {"Clientnumber"}, #"Grouped Rows", JoinKind.LeftOuter),
    #"Expanded Grouped Rows" = Table.ExpandTableColumn(#"Merged Queries", #"Grouped Rows", {"MaxYear"}, {"MaxYear"}),
    #"Added Custom" = Table.AddColumn(#"Expanded Grouped Rows", "Custom", each [Year] = [MaxYear]),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"MaxYear"})
in
    #"Removed Columns"

补充说明

如果你的实际需求是判断「最近3年的金额是否为空」(比如当前行年份在近3年且金额为空),可以调整自定义列的公式,比如假设当前年份是2024,公式可以改成:

[Year] >= Date.Year(DateTime.LocalNow()) - 2 and [Amount] = null

但从你的示例输出来看,标记最新年份的方案更符合你的需求~

内容的提问来源于stack exchange,提问作者rick van der horst

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:43:22