Power BI:使用DAX限制图表仅显示季度至今(QTD)数据
实现QTD过滤并固定X轴显示92天的DAX方案
要实现当前季度仅展示已过天数的数据,同时X轴固定显示季度最大92天,可通过以下DAX度量值完成,区分当前季度与历史季度的展示逻辑:
方案1:已有「季度天数」列的场景
如果你的数据表中已经包含直接计算好的季度天数字段(比如1代表季度第1天,92代表最后1天),可以使用这个度量值:
QTD金额 = VAR 当前年季 = YEAR(TODAY()) * 10 + QUARTER(TODAY()) VAR 当前季度已过天数 = DATEDIFF(DATE(YEAR(TODAY()), QUARTER(TODAY())*3-2, 1), TODAY(), DAY) + 1 VAR 行年季 = MAX('你的表名'[年份]) * 10 + MAX('你的表名'[季度]) VAR 当前行天数 = MAX('你的表名'[季度天数]) RETURN IF( // 仅对当前季度做天数过滤,超过已过天数的行返回0(保证X轴显示) 行年季 = 当前年季 && 当前行天数 > 当前季度已过天数, 0, SUM('你的表名'[金额]) )
代码说明:
当前年季:将当前年份和季度转为数值(如2024Q1为20241),用于匹配数据行的年季当前季度已过天数:计算从当前季度第一天到今日的天数,+1是因为季度第一天算第1天- 逻辑判断:如果是当前季度且行的季度天数超过已过天数,返回0(确保X轴92天都显示),否则正常计算金额总和
方案2:仅存「日期」列的场景
如果数据表中只有日期列,没有提前计算季度天数,可以直接基于日期动态计算:
QTD金额 = VAR 当前季度起始 = STARTOFQUARTER(TODAY()) VAR 当前季度已过天数 = DATEDIFF(当前季度起始, TODAY(), DAY) + 1 VAR 当前行日期 = MAX('你的表名'[日期]) VAR 当前行季度天数 = DATEDIFF(STARTOFQUARTER(当前行日期), 当前行日期, DAY) + 1 RETURN IF( STARTOFQUARTER(当前行日期) = 当前季度起始 && 当前行季度天数 > 当前季度已过天数, 0, SUM('你的表名'[金额]) )
图表设置注意:
将X轴设置为季度天数(或动态计算的当前行季度天数),并固定X轴的范围为1到92,确保所有季度天数都显示;Y轴绑定上述度量值,图例使用年份+季度字段即可。
内容的提问来源于stack exchange,提问作者sarvani
相关产品推荐
相关产品推荐

