Power BI:计算过去3个月及12个月的MTD平均销售额
Power BI 计算过去3/12个月的MTD销售额平均值
前提准备
确保你的模型满足以下条件:
- 存在一张标记为日期表的
Date表(右键表 > 标记为日期表),包含完整日期序列,且需添加YearMonth列(公式:YearMonth = FORMAT('Date'[Date], "YYYY-MM")) - 包含
sales列的事实表(如Sales),且与Date表通过日期字段建立关联关系
过去3个月MTD销售额平均值度量
过去3个月MTD销售额平均值 = VAR CurrentDay = DAY(MAX('Date'[Date])) VAR Past3Months = DATESINPERIOD( 'Date'[Date], MAX('Date'[Date]) - 1, // 排除当前月份 -3, MONTH ) VAR MonthlyMTDData = SUMMARIZE( Past3Months, 'Date'[YearMonth], "月度MTD销售额", CALCULATE( SUM(Sales[sales]), DATESBETWEEN( 'Date'[Date], STARTOFMONTH('Date'[Date]), STARTOFMONTH('Date'[Date]) + CurrentDay - 1 ) ) ) RETURN AVERAGEX(MonthlyMTDData, [月度MTD销售额])
过去12个月MTD销售额平均值度量
过去12个月MTD销售额平均值 = VAR CurrentDay = DAY(MAX('Date'[Date])) VAR Past12Months = DATESINPERIOD( 'Date'[Date], MAX('Date'[Date]) - 1, // 排除当前月份 -12, MONTH ) VAR MonthlyMTDData = SUMMARIZE( Past12Months, 'Date'[YearMonth], "月度MTD销售额", CALCULATE( SUM(Sales[sales]), DATESBETWEEN( 'Date'[Date], STARTOFMONTH('Date'[Date]), STARTOFMONTH('Date'[Date]) + CurrentDay - 1 ) ) ) RETURN AVERAGEX(MonthlyMTDData, [月度MTD销售额])
逻辑说明
- CurrentDay:提取当前上下文日期的日部分(如4月3日则返回3)
- PastNMonths:筛选出过去N个完整月份(排除当前月)的日期范围
- MonthlyMTDData:按月份分组,计算每个月截至对应日数的销售额总和
- AVERAGEX:对所有月份的MTD销售额取平均值
注意事项
- 若过去月份的天数少于当前日数(如当前为31日,目标月份只有30天),度量会自动取该月最后一天的销售额总和
- 结果受报表中日期筛选器(切片器、页面筛选等)影响,需确保筛选上下文正确
- 若需包含当前月的MTD数据,只需将
MAX('Date'[Date]) - 1改为MAX('Date'[Date])
内容的提问来源于stack exchange,提问作者AndreA
相关产品推荐
相关产品推荐

