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

基于HEADER3条件去除HEADER1重复值的Power BI M语言需求

Power BI M代码实现按HEADER3元素数量去重HEADER1

实现步骤:

  1. 添加元素数计算列:给数据表新增一列,计算HEADER3列的元素数量——空值记为0,非空则按:::分割后统计列表长度。
  2. 分组筛选:按HEADER1分组,在每个分组里筛选出元素数量最少的行;如果同组内有多个行元素数相同,默认保留第一个匹配行(可按需调整)。

完整M代码示例

假设你的原始表名为原始数据表,替换成实际表名即可:

let
    // 加载原始数据表
    源 = 原始数据表,
    // 添加HEADER3元素数计算列:空值返回0,非空则分割后取长度
    添加元素数列 = Table.AddColumn(源, "HEADER3元素数", each 
        if [HEADER3] = null or [HEADER3] = "" then 0 
        else List.Count(Text.Split([HEADER3], ":::"))
    ),
    // 按HEADER1分组,每组筛选元素数最小的行
    按HEADER1分组 = Table.Group(添加元素数列, {"HEADER1"}, {
        {"保留行", each Table.First(Table.Sort(_, {"HEADER3元素数", Order.Ascending})), type table}
    }),
    // 展开保留的行,仅保留原始表列
    展开保留行 = Table.ExpandTableColumn(按HEADER1分组, "保留行", 
        Table.ColumnNames(源)
    )
in
    展开保留行

关键逻辑说明

  • 空值处理:直接把空的HEADER3记为0个元素,确保空值在筛选时优先级最高。
  • 分组筛选:先对每组内的行按元素数升序排序,再取第一行,确保拿到元素数最少的记录;如果同组内有多个行元素数相同,可把Table.First换成Table.Last或其他逻辑调整保留规则。
  • 清理计算列:展开时只取原始表的列,自动去掉新增的"HEADER3元素数"列,不影响最终结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 18:42:04