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

Power BI/DAX:如何基于#Order维度构建订单数量漏斗分析?

使用DAX实现订单漏斗分析

起始条件

现有一张包含两列的表:

  • E-Mail(字符串类型,唯一值)
  • Number of Orders(整数类型)

示例数据集

| E-Mail             | #Orders |
| ------------------ | ------- |
| user1@example.com  | 1       |
| user2@example.com  | 1       |
| user3@example.com  | 4       |
| user4@example.com  | 4       |
| user5@example.com  | 4       |
| user6@example.com  | 5       |
| user7@example.com  | 2       |
| user8@example.com  | 1       |
| user9@example.com  | 5       |
| user10@example.com | 4       |

分析目标

构建漏斗分析,统计满足以下条件的唯一客户(以唯一邮箱地址为准)数量:

  • 至少完成1笔订单
  • 至少完成2笔订单
  • 至少完成3笔订单

逻辑示例:统计“至少完成2笔订单”的客户数 = DISTINCTCOUNT(E-Mail) WHERE #Orders >= 2

DAX实现方案

方案1:创建独立度量值

针对每个漏斗层级单独创建度量值,操作简单,适合直接用于图表:

  1. 至少1笔订单的客户数
客户数_至少1笔订单 = 
DISTINCTCOUNT('订单表'[E-Mail])

注:由于所有客户的订单数均≥1,直接统计唯一邮箱数量即可

  1. 至少2笔订单的客户数
客户数_至少2笔订单 = 
CALCULATE(
    DISTINCTCOUNT('订单表'[E-Mail]),
    '订单表'[Number of Orders] >= 2
)
  1. 至少3笔订单的客户数
客户数_至少3笔订单 = 
CALCULATE(
    DISTINCTCOUNT('订单表'[E-Mail]),
    '订单表'[Number of Orders] >= 3
)

方案2:动态度量值(支持灵活扩展)

如果后续需要增加更多漏斗层级(如≥4、≥5笔订单),可以通过参数表+动态度量值实现:

  1. 创建漏斗层级参数表
    通过Power BI的「输入数据」功能创建名为漏斗层级的表,内容如下:
漏斗层级描述最小订单数
至少1笔订单1
至少2笔订单2
至少3笔订单3
  1. 创建动态度量值
动态客户数 = 
CALCULATE(
    DISTINCTCOUNT('订单表'[E-Mail]),
    '订单表'[Number of Orders] >= SELECTEDVALUE('漏斗层级'[最小订单数])
)

使用时,将漏斗层级[漏斗层级描述]拖至图表的轴区域,动态客户数拖至值区域,即可自动生成所有层级的统计结果。

计算结果验证

基于示例数据集,计算结果如下:

  • 至少1笔订单:10个客户
  • 至少2笔订单:7个客户
  • 至少3笔订单:6个客户

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 01:35:24