You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何修正DAX公式以正确计算指定表结构的Prev YTD(上一财年累计)?

解决自定义财年YTD同比计算问题

你遇到的问题核心在于:SAMEPERIODLASTYEAR 默认是基于日历年度偏移日期,但你的YTD是基于**自定义财年(9/30结束)**计算的,直接嵌套会导致筛选上下文混乱,最终返回了整个上一财年的累计值而非同期YTD。

这里有两种可靠的调整方案,都能精准计算上一财年同期累计:

方案一:结合DATESYTD与SAMEPERIODLASTYEAR

这种方法先明确当前财年的YTD日期范围,再取该范围的去年同期,最后计算对应区间的总和:

Total Retail Dues YTD LY = 
CALCULATE(
    [Total Retail Dues],
    SAMEPERIODLASTYEAR(DATESYTD(DateTable[Date], "9/30"))
)

逻辑拆解:

  • DATESYTD(DateTable[Date], "9/30"):获取当前筛选下,从财年起始日(10/1)到当前日期的所有日期
  • SAMEPERIODLASTYEAR(...):将上述日期范围整体偏移1年,得到上一财年的同期日期区间
  • CALCULATE([Total Retail Dues], ...):计算该区间内的零售应付款总和,即上一财年YTD累计

方案二:用DATEADD直接偏移日期后计算YTD

这种写法更简洁,直接对日期偏移1年,再基于偏移后的日期计算自定义财年YTD:

Total Retail Dues YTD LY = 
TOTALYTD(
    [Total Retail Dues],
    DATEADD(DateTable[Date], -1, YEAR),
    "9/30"
)

逻辑拆解:

  • DATEADD(DateTable[Date], -1, YEAR):将当前筛选的日期全部往前偏移1年
  • TOTALYTD(..., ..., "9/30"):基于偏移后的日期,计算从财年起始日到该日期的累计值

额外注意事项

确保你的DateTable已经在Power BI中标记为日期表(右键表 → 标记为日期表),时间智能函数只有在正确的日期表上下文下才能正常工作。

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

火山引擎 最新活动