如何修改DAX公式实现截至上月末的YTD销售额求和?
解决截至上月末的YTD销售额计算问题
首先修正你原公式里的笔误:year'Date'[Masterdate]应该是'Date'[Masterdate],正确的基础YTD公式为:
Net Sales YTD = TOTALYTD( SUM('SAP'[Net sales]), 'Date'[Masterdate] )
要计算截至上月末的年初至今销售额,不用绕弯子排除月份,直接通过筛选日期范围的方式更直观可靠,这里给你两种可行方案:
方案1:动态指定YTD截止日期
利用ENDOFMONTH和PREVIOUSMONTH自动获取上月末日期,传递给TOTALYTD的筛选参数,实现动态适配:
Net Sales YTD (End of Last Month) = TOTALYTD( SUM('SAP'[Net sales]), 'Date'[Masterdate], 'Date'[Masterdate] <= ENDOFMONTH(PREVIOUSMONTH('Date'[Masterdate])) )
这个公式会自动锁定当年1月1日到上月最后一天的时间范围,不管当前日期是当月哪天,都能准确计算目标时段的销售额总和。
方案2:按你的思路排除当前月份
如果坚持用“排除当前月份”的逻辑,可以通过筛选本年日期且剔除当前月份数据实现:
Net Sales YTD (Exclude Current Month) = CALCULATE( SUM('SAP'[Net sales]), DATESYTD('Date'[Masterdate]), NOT('Date'[Masterdate] IN DATESMTD('Date'[Masterdate])) )
这里用DATESYTD限定本年范围,再用NOT IN DATESMTD排除当前月份的所有日期,最终得到的就是截至上月末的YTD销售额。
注意:确保你的'Date'表是标准的日期维度表(包含完整连续的日期序列),且与'SAP'表已建立正确的关联关系,否则可能出现计算偏差。
内容的提问来源于stack exchange,提问作者Didier Ansermet
相关产品推荐
相关产品推荐

