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

Power BI中基于DAX的客户首月订单统计及cohort分析可视化问询

DAX实现客户Cohort分析:首月订单统计与矩阵展示

前提准备

确保Customers表与Orders表已通过Customers[ID]和Orders[customerId]建立一对多关系(Customers为一方,Orders为多方)。

1. 统计客户首月订单次数

创建以下DAX度量值,计算每个客户在注册当月的订单数量:

第1个月订单次数 = 
VAR CustomerFirstRegMonth = EOMONTH(MAX(Customers[DateOfFirstRegistration]), 0)
VAR FirstMonthStart = DATE(YEAR(CustomerFirstRegMonth), MONTH(CustomerFirstRegMonth), 1)
RETURN
IFERROR(
    CALCULATE(
        COUNT(Orders[ID]),
        Orders[orderDate] >= FirstMonthStart,
        Orders[orderDate] <= CustomerFirstRegMonth
    ),
    0
)

2. 判断首月订单是否超过阈值

假设阈值为3,创建度量值标记是否达标:

首月订单超阈值 = 
VAR FirstMonthOrders = [第1个月订单次数]
RETURN
IF(FirstMonthOrders >= 3, "是", "否")

可根据需求修改阈值数值。

3. 矩阵展示第1-3个月订单情况

分别创建第2、3个月的订单次数度量值,配合第1个月的度量值实现矩阵展示:

第2个月订单次数

第2个月订单次数 = 
VAR CustomerFirstRegMonth = EOMONTH(MAX(Customers[DateOfFirstRegistration]), 0)
VAR SecondMonthStart = DATE(YEAR(CustomerFirstRegMonth), MONTH(CustomerFirstRegMonth)+1, 1)
VAR SecondMonthEnd = EOMONTH(SecondMonthStart, 0)
RETURN
IFERROR(
    CALCULATE(
        COUNT(Orders[ID]),
        Orders[orderDate] >= SecondMonthStart,
        Orders[orderDate] <= SecondMonthEnd
    ),
    0
)

第3个月订单次数

第3个月订单次数 = 
VAR CustomerFirstRegMonth = EOMONTH(MAX(Customers[DateOfFirstRegistration]), 0)
VAR ThirdMonthStart = DATE(YEAR(CustomerFirstRegMonth), MONTH(CustomerFirstRegMonth)+2, 1)
VAR ThirdMonthEnd = EOMONTH(ThirdMonthStart, 0)
RETURN
IFERROR(
    CALCULATE(
        COUNT(Orders[ID]),
        Orders[orderDate] >= ThirdMonthStart,
        Orders[orderDate] <= ThirdMonthEnd
    ),
    0
)

矩阵配置步骤

  1. 插入矩阵视觉对象;
  2. 将Customers[ID]拖入矩阵的「行」区域;
  3. 将第1个月订单次数、第2个月订单次数、第3个月订单次数拖入矩阵的「值」区域;
  4. 可右键度量值重命名,让列标题更清晰(比如直接叫「第1个月」「第2个月」「第3个月」)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:05:44