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

DAX技术需求:统计月度/年度及按id_book的最长连续天数

DAX 连续天数统计方案

前置条件

假设你已创建计算列IsContinuous:当当前行日期与上一行连续时返回1,否则返回0;数据模型包含Date(日期列)、id_book(书籍ID列)。

核心度量值实现

1. 月度最长连续天数

月度最长连续天数 = 
VAR 当前年月 = SELECTEDVALUE('表'[Date].[YearMonth])
VAR 当月数据 = FILTER(ALL('表'), '表'[Date].[YearMonth] = 当前年月)
VAR 连续段分组 = 
    ADDCOLUMNS(
        GROUPBY(当月数据, '表'[id_book], "连续长度", SUMX(CURRENTGROUP(), '表'[IsContinuous])),
        "最大连续值", [连续长度]
    )
RETURN MAXX(连续段分组, [最大连续值])

注:如果模型未自动生成YearMonth层级,可替换为YEAR('表'[Date])*100 + MONTH('表'[Date])来匹配年月。

2. 整体最长连续天数

整体最长连续天数 = 
VAR 全量数据 = ALL('表')
VAR 连续段分组 = 
    ADDCOLUMNS(
        GROUPBY(全量数据, '表'[id_book], "连续长度", SUMX(CURRENTGROUP(), '表'[IsContinuous])),
        "最大连续值", [连续长度]
    )
RETURN MAXX(连续段分组, [最大连续值])

3. 特定书籍月度最长连续天数(可选需求)

以5月id_book为B为例,直接使用该度量值:

5月书籍B最长连续天数 = 
VAR 目标年月 = YEAR(SELECTEDVALUE('表'[Date]))*100 + 5
VAR 目标数据 = FILTER(ALL('表'), '表'[Date].[YearMonth] = 目标年月 && '表'[id_book] = "B")
RETURN SUMX(目标数据, '表'[IsContinuous])

使用提示

  • 替换代码中的'表'为你实际的表名,列名也要对应调整;
  • 月度统计可配合月份切片器选择目标月份,度量值会自动计算对应结果;
  • 若你的IsContinuous逻辑是标记连续段的每一行,累加后即为该段的连续天数,完全适配上述代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:03:25