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

PowerBI中按阶段优先级保留客户最新阶段重复记录的实现方法

PowerBI 保留客户最新阶段重复记录的实现方案

一、Power Query Editor 方案(推荐,便于后续关联)

步骤1:添加阶段优先级映射列

进入Power Query编辑器,选中CRM数据表,点击「添加列」→「自定义列」,输入以下公式(将阶段转换为可排序的优先级数值,数值越大代表阶段越新):

= if Text.Contains([客户阶段], "Lead") then 1 
  else if Text.Contains([客户阶段], "Prospect") then 2 
  else if Text.Contains([客户阶段], "Profile") then 3 
  else 0

将该列命名为阶段优先级。

步骤2:按客户分组获取最高优先级

点击「转换」→「分组依据」,配置如下:

  • 分组依据:选择客户唯一标识字段(如客户ID)
  • 新列名:客户最大优先级
  • 操作:最大值
  • 列:阶段优先级
    点击确定后,得到每个客户对应的最新阶段优先级。

步骤3:合并原表与分组结果

回到原CRM数据查询,点击「合并查询」→「合并查询作为新查询」:

  • 左表:原CRM数据表
  • 右表:刚生成的分组表
  • 匹配字段:客户唯一标识(如客户ID)
  • 合并类型:左外部
    展开合并后的列,仅保留客户最大优先级字段。

步骤4:筛选最新阶段记录

添加筛选条件:阶段优先级等于客户最大优先级,此时将保留该客户所有处于最新阶段的记录(包括重复项)。

步骤5:清理辅助列(可选)

删除阶段优先级和客户最大优先级两个辅助列,保留业务所需字段即可。

二、度量值方案(当Power Query无法满足场景时)

步骤1:创建阶段优先级计算列

在数据视图中,新建计算列:

阶段优先级 = 
SWITCH(
    TRUE(),
    CONTAINSSTRING('CRM数据'[客户阶段], "Lead"), 1,
    CONTAINSSTRING('CRM数据'[客户阶段], "Prospect"), 2,
    CONTAINSSTRING('CRM数据'[客户阶段], "Profile"), 3,
    0
)

步骤2:创建筛选度量值

新建度量值:

保留最新阶段 = 
VAR 当前客户 = SELECTEDVALUE('CRM数据'[客户ID])
VAR 客户最高优先级 = CALCULATE(MAX('CRM数据'[阶段优先级]), ALL('CRM数据'), 'CRM数据'[客户ID] = 当前客户)
RETURN
IF(MAX('CRM数据'[阶段优先级]) = 客户最高优先级, 1, 0)

步骤3:应用筛选

在报表视图中,将保留最新阶段度量值拖入筛选器面板,设置为等于1,即可在可视化组件中显示客户所有最新阶段的记录(含重复项)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:00:05