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

基于DAX按状态计算产品累计数量(无日期维度)

无日期维度下按状态累计统计产品数量的DAX实现

需求说明

在无日期维度的场景中,使用DAX语言按状态(Status)对产品数量进行累计统计,现有包含14个产品的数据集如下:

输入数据

ProductIDDays Since LastPurchaseStatus
3072559007660 - 180 days
5252200005930 - 60 days
20950000020< 30 days
31296960015160 - 180 days
2493000005230 - 60 days
2101000005230 - 60 days
30485140015060 - 180 days
30485160015060 - 180 days
314152700367> 180 days
4053000009060 - 180 days
3146923009060 - 180 days
3146924005330 - 60 days
524270000213> 180 days
524280000213> 180 days

期望输出

StatusCumulative Count
< 30 days1
> 180 days4
30 - 60 days8
60 - 180 days14

解决方案

由于无日期维度,累计统计需要基于状态的自定义排序逻辑实现,以下提供两种可行方案:

方案1:创建状态排序表(推荐)

  1. 新建计算表定义状态的排序规则:
状态排序表 = 
DATATABLE(
    "Status", STRING,
    "SortOrder", INTEGER,
    {
        {"< 30 days", 1},
        {"> 180 days", 2},
        {"30 - 60 days", 3},
        {"60 - 180 days", 4}
    }
)
  1. 在数据模型中,将状态排序表[Status]与原产品表的Status列建立关系。
  2. 创建DAX度量值计算累计数量:
Cumulative Count = 
VAR CurrentSort = SELECTEDVALUE('状态排序表'[SortOrder])
RETURN
CALCULATE(
    DISTINCTCOUNT('产品表'[ProductID]),
    FILTER(
        ALL('状态排序表'),
        '状态排序表'[SortOrder] <= CurrentSort
    )
)

方案2:直接在度量值中定义排序逻辑

无需额外建表,直接在度量值内嵌入状态排序规则:

Cumulative Count = 
VAR CurrentStatus = SELECTEDVALUE('产品表'[Status])
VAR CurrentSort = 
    SWITCH(
        CurrentStatus,
        "< 30 days", 1,
        "> 180 days", 2,
        "30 - 60 days", 3,
        "60 - 180 days", 4
    )
RETURN
CALCULATE(
    DISTINCTCOUNT('产品表'[ProductID]),
    FILTER(
        ALL('产品表'[Status]),
        SWITCH(
            '产品表'[Status],
            "< 30 days", 1,
            "> 180 days", 2,
            "30 - 60 days", 3,
            "60 - 180 days", 4
        ) <= CurrentSort
    )
)

结果验证

将度量值与Status列放入可视化组件后,即可得到与期望输出完全一致的累计统计结果:

  • < 30 days:仅统计自身,累计1
  • > 180 days:统计< 30 days + > 180 days,累计1+3=4
  • 30 - 60 days:统计前两类 + 自身,累计4+4=8
  • 60 - 180 days:统计所有状态,累计8+6=14

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 08:54:26