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

如何用DAX获取上月排除周末的数据值?现有代码优化需求

解决方案

原表达式用于计算所有日期中每日AccessionNo去重计数的最大值,要修改为仅统计上月非周末日期的对应最大值,可参考以下两种DAX实现:

实现方式一:结合DATEADD筛选上月+周几判断

MAXX(
    FILTER(
        VALUES(VW_RisOrderTable[OrderDate].[Date]),
        -- 判定日期属于上月(当前日期所在月份的上一个月)
        DATEADD(VW_RisOrderTable[OrderDate].[Date], 1, MONTH) IN DATESMTD(TODAY())
        &&
        -- 仅保留周一至周五(WEEKDAY参数2表示周一=1,周五=5)
        WEEKDAY(VW_RisOrderTable[OrderDate].[Date], 2) <= 5
    ),
    CALCULATE(DISTINCTCOUNT(VW_RisOrderTable[AccessionNo]))
)

实现方式二:用PARALLELPERIOD定位上月+排除周末

MAXX(
    FILTER(
        -- 获取当前上下文对应的上月日期范围
        PARALLELPERIOD(VW_RisOrderTable[OrderDate].[Date], -1, MONTH),
        -- 排除周日(1)和周六(7),WEEKDAY参数1表示周日=1
        NOT(WEEKDAY([Date], 1) IN {1, 7})
    ),
    CALCULATE(DISTINCTCOUNT(VW_RisOrderTable[AccessionNo]))
)

注意事项

  • WEEKDAY的第二个参数需根据你的日期习惯调整:
    • 参数1:周日=1,周六=7
    • 参数2:周一=1,周日=7
  • 若之前用PARALLELPERIOD未得到预期结果,大概率是未正确结合周末筛选逻辑,或上下文存在冲突(比如当前页面有其他日期筛选器),可先单独测试PARALLELPERIOD返回的日期范围是否符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:42:48