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

Power BI二次购买关联分析需求:首购商品筛选次购商品统计

Power BI首购后复购商品分析报表制作指南

一、先理清楚现有数据

你提供的订单表包含三列:客户、客户订单序号(每个客户的订单顺序,1代表首单,2代表第二单)、商品,这个结构完全满足需求,无需调整原始数据。

二、创建必要的DAX计算

1. 生成独立的商品维度表

用DAX创建独立的商品维度表,避免后续切片器与报表商品的筛选冲突:

商品维度表 = DISTINCT('订单表'[商品])

在模型视图中,将「商品维度表」的「商品」列与「订单表」的「商品」列建立一对多关系。

2. 标记客户的首购商品

创建计算列,让每个客户的所有订单行都带上自己的首购商品:

客户首购商品 = 
CALCULATE(
    MAX('订单表'[商品]),
    ALLEXCEPT('订单表', '订单表'[客户]),
    '订单表'[客户订单序号] = 1
)

3. 统计复购商品的用户数

统计首单后所有复购订单的商品用户数

复购商品用户数 = 
VAR 选中的首购商品 = VALUES('商品维度表'[商品])
VAR 符合条件的客户 = 
    CALCULATETABLE(
        VALUES('订单表'[客户]),
        '订单表'[客户首购商品] IN 选中的首购商品,
        '订单表'[客户订单序号] > 1
    )
RETURN
    CALCULATE(
        DISTINCTCOUNT('订单表'[客户]),
        '订单表'[客户] IN 符合条件的客户,
        '订单表'[客户订单序号] > 1
    )

仅统计第二个订单的商品用户数

如果只关注首单后的第一个复购订单,把度量值中的>1替换为=2即可:

第二单商品用户数 = 
VAR 选中的首购商品 = VALUES('商品维度表'[商品])
VAR 符合条件的客户 = 
    CALCULATETABLE(
        VALUES('订单表'[客户]),
        '订单表'[客户首购商品] IN 选中的首购商品,
        '订单表'[客户订单序号] = 2
    )
RETURN
    CALCULATE(
        DISTINCTCOUNT('订单表'[客户]),
        '订单表'[客户] IN 符合条件的客户,
        '订单表'[客户订单序号] = 2
    )

三、搭建可视化报表

  1. 添加切片器:拖入「商品维度表」的「商品」字段,作为首购商品的筛选控件。
  2. 添加可视化图表:推荐使用簇状条形图或表格:
    • 簇状条形图:Y轴选「订单表」的「商品」,值选上述创建的「复购商品用户数」或「第二单商品用户数」
    • 表格:列选「订单表」的「商品」和对应的度量值
  3. 验证效果:例如选择切片器中的「Steak(牛排)」,表格会显示:
    • Mashed Potatoes(土豆泥):2人(Greg和Cindy)
    • Green Beans(青豆):1人(Susie)
    • Cake(蛋糕):1人(Greg)
      (若使用「第二单商品用户数」,则仅显示前两项,因为Cake是Greg的第三单商品)

四、踩坑提示

  • 必须使用独立的商品维度表,否则直接用订单表的商品做切片器会过滤掉复购商品行,导致统计结果错误。
  • 确保「客户订单序号」是每个客户的正确订单顺序,序号错乱会导致首购商品判断失效。
  • 若需排除复购首购同款商品的情况,可在度量值中添加过滤条件:'订单表'[商品] NOT IN 选中的首购商品

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 01:20:12