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

Power BI中按语言优先级过滤表格重复行的实现方法

按语言优先级过滤重复ID的Power BI实现方案

方法一:Power Query可视化操作(适合新手)

  1. 进入Power Query编辑器
    选中你的表格,点击主页选项卡的「转换数据」,打开Power Query编辑器。
  2. 添加优先级排序列
    点击添加列→「自定义列」,输入公式:
    if [language] = "fi" then 1 else if [language] = "en" then 2 else 3
    
    将新列命名为Priority,给fi设最高优先级1,en为2,se为3。
  3. 按ID分组筛选
    点击转换→「分组依据」,选择高级模式:
    • 第一组:分组依据选id,新列名设为TopRows,操作选「所有行」
    • 第二组:操作选「最小值」,列选Priority,新列名设为MinPriority
      点击确定后,展开TopRows列(点列名旁的箭头),保留原始列和Priority列。
  4. 过滤目标行
    添加筛选器,只保留Priority与MinPriority数值相等的行,这样每个ID下只留优先级最高的记录。
  5. 清理并应用
    删除Priority和MinPriority列,点击「关闭并应用」即可得到目标表格。

方法二:DAX计算表(适合熟悉公式的用户)

在建模选项卡点击「新建表」,输入以下DAX公式(替换你的原始表名为实际表名):

FilteredTable = 
VAR RankedRows = 
    ADDCOLUMNS(
        '你的原始表名',
        "Priority", 
            SWITCH(
                '你的原始表名'[language],
                "fi", 1,
                "en", 2,
                "se", 3
            ),
        "Rank", 
            RANKX(
                FILTER('你的原始表名', '你的原始表名'[id] = EARLIER('你的原始表名'[id])),
                [Priority],
                ,
                ASC,
                DENSE
            )
    )
RETURN
    SELECTCOLUMNS(
        FILTER(RankedRows, [Rank] = 1),
        "index", '你的原始表名'[index],
        "id", '你的原始表名'[id],
        "language", '你的原始表名'[language],
        "value", '你的原始表名'[value]
    )

回车后自动生成符合要求的计算表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:33:23