You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 17:10:00