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

如何在DAX中调整财年起始月以计算QTD与YTD?

自定义财年(5月1日起始)的QTD/YTD计算方案

当然可以在DAX中调整财年起始月份,下面分场景给出具体实现:

一、财年YTD(年度至今)的简化实现

DAX的DATESYTD函数支持通过第二个参数指定财年结束日期,你的财年是5月1日至次年4月30日,财年结束月份为4,直接用以下代码即可:

自定义财年YTD = 
CALCULATE(
    [measure],
    DATESYTD('Calendar'[Date], "04-30")
)

注:第二个参数格式为"MM-DD",代表财年的最后一天。

二、财年QTD(季度至今)的实现

DATESQTD没有直接的财季调整参数,需要先在日历表中添加财年相关计算列,再自定义筛选逻辑:

步骤1:给日历表添加计算列

在Calendar表中新增3个计算列,标记财年、财季及财季起始日期:

// 财年:5月及以后属于下一年财年
财年 = IF(MONTH('Calendar'[Date]) >= 5, YEAR('Calendar'[Date]) + 1, YEAR('Calendar'[Date]))

// 财季:5-7月为Q1,8-10月为Q2,11-1月为Q3,2-4月为Q4
财季 = SWITCH(
    MONTH('Calendar'[Date]),
    5,6,7, "Q1",
    8,9,10, "Q2",
    11,12,1, "Q3",
    2,3,4, "Q4"
)

// 财季起始日期
财季起始日期 = SWITCH(
    MONTH('Calendar'[Date]),
    5,6,7, DATE(YEAR('Calendar'[Date]), 5, 1),
    8,9,10, DATE(YEAR('Calendar'[Date]), 8, 1),
    11,12,1, DATE(IF(MONTH('Calendar'[Date]) >= 11, YEAR('Calendar'[Date]), YEAR('Calendar'[Date]) - 1), 11, 1),
    2,3,4, DATE(YEAR('Calendar'[Date]) - 1, 2, 1)
)

步骤2:编写QTD计算度量值

基于上述计算列,编写自定义QTD度量值:

自定义财年QTD = 
CALCULATE(
    [measure],
    FILTER(
        ALL('Calendar'),
        'Calendar'[财年] = MAX('Calendar'[财年]) &&
        'Calendar'[Date] >= MAX('Calendar'[财季起始日期]) &&
        'Calendar'[Date] <= MAX('Calendar'[Date])
    )
)

额外提示

如果你的日历表是完整无缺失的日期序列,也可以用DATEADD结合财年起始简化QTD筛选逻辑,但上述方法兼容性更强,适配各种日历表场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 03:02:43