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

如何计算仅经历PROSPECT到GAIN阶段客户的阶段起始日期差

计算潜在客户转正式客户的耗时(Power BI DAX实现)

核心逻辑

仅保留同时存在PROSPECT(潜在客户)阶段和GAIN(正式客户)阶段记录的客户ID,计算该客户首次进入PROSPECT阶段的日期与首次进入GAIN阶段的日期差值,其余ID自动排除。


方式1:添加计算列(单客户耗时)

在数据表中新增计算列,直接显示每个符合条件客户的转化耗时:

转为正式客户耗时 = 
VAR 当前客户ID = '你的数据表名'[ID]
VAR 潜在阶段首次日期 = CALCULATE(
    MIN('你的数据表名'[START_DATE]),
    FILTER(ALL('你的数据表名'),
        '你的数据表名'[ID] = 当前客户ID && '你的数据表名'[PHASE] = "PROSPECT"
    )
)
VAR 正式阶段首次日期 = CALCULATE(
    MIN('你的数据表名'[START_DATE]),
    FILTER(ALL('你的数据表名'),
        '你的数据表名'[ID] = 当前客户ID && '你的数据表名'[PHASE] = "GAIN"
    )
)
RETURN
IF(
    NOT(ISBLANK(潜在阶段首次日期)) && NOT(ISBLANK(正式阶段首次日期)),
    DATEDIFF(潜在阶段首次日期, 正式阶段首次日期, DAY),
    BLANK()
)

代码说明

  • 用变量分别提取当前客户的潜在阶段、正式阶段最早进入日期
  • 通过IF判断两个阶段日期都存在时,计算天数差(可替换DAY为MONTH/YEAR等调整时间单位)
  • 不符合条件的客户返回空值,后续可视化时可自动过滤

方式2:创建度量值(聚合分析)

如果需要计算整体平均耗时、最长/最短耗时等聚合指标,使用度量值:

平均转化耗时 = 
VAR 有效客户ID = 
    FILTER(
        VALUES('你的数据表名'[ID]),
        CALCULATE(COUNTROWS('你的数据表名'), '你的数据表名'[PHASE] = "PROSPECT") > 0 &&
        CALCULATE(COUNTROWS('你的数据表名'), '你的数据表名'[PHASE] = "GAIN") > 0
    )
VAR 客户转化耗时列表 = 
    ADDCOLUMNS(
        有效客户ID,
        "单客户耗时",
        DATEDIFF(
            CALCULATE(MIN('你的数据表名'[START_DATE]), '你的数据表名'[PHASE] = "PROSPECT"),
            CALCULATE(MIN('你的数据表名'[START_DATE]), '你的数据表名'[PHASE] = "GAIN"),
            DAY
        )
    )
RETURN
AVERAGEX(客户转化耗时列表, [单客户耗时])

代码说明

  • 先筛选出同时拥有两个阶段记录的客户ID集合
  • 为每个有效客户计算转化耗时,生成临时列表
  • 最后对列表中的耗时计算平均值(可替换AVERAGEX为MAXX/MINX获取极值)

注意事项

  • 请将代码中的你的数据表名替换为实际使用的数据表名称
  • 若业务中存在同一客户多次进入同一阶段的情况,代码中用MIN取首次进入日期,可根据需求调整为MAX取末次日期
  • 日期差值的时间单位可按需修改,DAX支持的单位包括:SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:31:18