基于月份切片器的MTD/LY及整月销售额DAX实现与默认设置咨询
问题解答
1. 可以通过DAX编码实现所需的销售额展示逻辑
你需要创建两个度量值,分别计算本年(TY)和上年(LY)的销售额,通过判断选中月份是否为当前月份(2025年2月)来切换MTD或整月统计逻辑:
首先创建辅助度量值获取销售数据的最后日期:
Last Sales Date = MAX('Sales'[SalesDate])
本年销售额(TY Sales)度量值
TY Sales = VAR SelectedYearMonth = SELECTEDVALUE('Date'[YearMonth]) -- 日期表需包含格式为"YYYYMM"的年月列 VAR CurrentYearMonth = FORMAT([Last Sales Date], "YYYYMM") RETURN IF( SelectedYearMonth = CurrentYearMonth, -- 选中当前月份,计算截至当前日期的MTD销售额 CALCULATE(SUM('Sales'[Amount]), DATESMTD('Date'[Date])), -- 选中过往月份,计算对应月份的完整销售额 CALCULATE(SUM('Sales'[Amount]), DATESBETWEEN('Date'[Date], STARTOFMONTH('Date'[Date]), ENDOFMONTH('Date'[Date]))) )
上年销售额(LY Sales)度量值
LY Sales = VAR SelectedYearMonth = SELECTEDVALUE('Date'[YearMonth]) VAR CurrentYearMonth = FORMAT([Last Sales Date], "YYYYMM") RETURN IF( SelectedYearMonth = CurrentYearMonth, -- 选中当前月份,计算上年同期MTD销售额 CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR(DATESMTD('Date'[Date]))), -- 选中过往月份,计算上年对应完整月份的销售额 CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR(DATESBETWEEN('Date'[Date], STARTOFMONTH('Date'[Date]), ENDOFMONTH('Date'[Date])))) )
注意:确保你的日期表与销售表已建立正确的关系,且日期表包含
YearMonth列(格式为YYYYMM的文本或数值,用于快速匹配年月)。
2. 可以将2025年2月设置为日期切片器的默认选中项
操作步骤如下:
- 在Power BI Desktop中选中目标日期切片器
- 切换到右侧「可视化」面板的「格式」选项卡
- 找到「默认选择」设置项,点击「添加默认值」
- 若为日期级切片器,勾选2025年2月的所有日期;若为月份级切片器,直接选择「2025年2月」选项
- 保存设置后,每次打开报表时切片器会默认选中2025年2月
内容的提问来源于stack exchange,提问作者B T
相关产品推荐
相关产品推荐

