求助:Power BI中按季度计算% increase列累计和且季度切换时重置
解决Power BI按季度累计% increase的方案
必要准备
首先确认数据模型里有日期表,并与你的业务表(含日期、% increase列)建立关联。如果还没有日期表,用下面的DAX创建:
DateTable = CALENDAR(MIN('业务表'[日期]), MAX('业务表'[日期]))
接着给日期表添加季度标识列,方便后续分组匹配:
季度 = "Q" & FORMAT('DateTable'[日期], "Q") & " " & YEAR('DateTable'[日期])
创建季度累计度量值
用以下DAX编写度量值,替换业务表为你的实际表名:
季度累计% = VAR 当前季度 = SELECTEDVALUE('DateTable'[季度]) VAR 当前日期 = SELECTEDVALUE('业务表'[日期]) RETURN CALCULATE( SUM('业务表'[% increase]), FILTER( ALL('业务表'), RELATED('DateTable'[季度]) = 当前季度 && '业务表'[日期] <= 当前日期 ) )
按需调整显示
- 如果要展示每日的季度累计趋势,把日期表的「日期」字段和这个度量值放进表格/折线图即可,季度切换时累计值会自动重置。
- 如果只需要每个季度的总累计结果(即该季度所有% increase的总和),用这个简化版度量值,搭配日期表的「季度」字段分组:
季度总累计% = VAR 当前季度 = SELECTEDVALUE('DateTable'[季度]) RETURN CALCULATE( SUM('业务表'[% increase]), FILTER( ALL('DateTable'), 'DateTable'[季度] = 当前季度 ) )
关于之前方法无效的说明
DATEADD、PARALLELPERIOD这类时间智能函数主要用于周期平移(比如取上季度同期),但按季度累计需要的是限定当前季度内的历史数据范围,用FILTER结合季度匹配的逻辑更精准,不会出现跨季度计算的问题。
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

