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

Power BI如何移除重复行?仅展示员工最新职位单行数据

保留Power BI中员工最新职位的单行数据实现方法

方法一:使用DAX计算列标记并筛选

  1. 在数据模型中选中目标表,创建计算列,输入以下DAX表达式(替换你的表名为实际表名):
IsLatestPosition = 
VAR MaxDate = CALCULATE(MAX('你的表名'[Date]), ALLEXCEPT('你的表名', '你的表名'[Name]))
VAR CurrentDate = '你的表名'[Date]
-- 同日期下按职位优先级排序(示例中Senior Engineer比Engineer层级高,故用降序)
VAR PositionRank = RANKX(
    FILTER('你的表名', '你的表名'[Name] = EARLIER('你的表名'[Name]) && '你的表名'[Date] = MaxDate),
    '你的表名'[Position],, DESC, DENSE
)
RETURN IF(CurrentDate = MaxDate && PositionRank = 1, 1, 0)
  1. 在报表视图的表格视觉对象中,添加筛选器:设置IsLatestPosition等于1,即可只展示每个员工的最新职位行。

方法二:通过Power Query创建去重后的新表

  1. 打开Power Query编辑器,加载目标数据。
  2. 选中Name列,点击开始选项卡中的分组依据,设置:
    • 分组依据:Name
    • 新列名:EmployeeRows
    • 操作:所有行
  3. 添加自定义列,输入以下M语言代码:
LatestRow = 
let
    MaxDate = List.Max([EmployeeRows][Date]),
    FilteredByDate = Table.SelectRows([EmployeeRows], each [Date] = MaxDate),
    // 按职位层级降序排序,确保高级职位排在前面
    SortedByPosition = Table.Sort(FilteredByDate,{{"Position", Order.Descending}}),
    GetFirstRow = Table.First(SortedByPosition)
in
    GetFirstRow
  1. 点击LatestRow列的展开按钮,选择需要保留的字段(Name、Project、Date、Position)。
  2. 关闭并应用更改,使用生成的新表创建报表即可。

补充说明

如果你的职位层级有明确的优先级规则(比如Junior < Engineer < Senior Engineer),可以创建一个辅助表存储职位与对应的等级值,关联主表后,在排序或排名时使用等级值替代职位名称,逻辑会更准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:25:34