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

如何在Power BI中计算表格内度量值的跨财年百分比差异

可以实现,不过需要先明确你需要的是静态计算列还是动态响应筛选的度量值,两种方案的适配场景和写法差异很大,优先推荐用度量值实现:

方案1:优先推荐:GP% 度量值(适配所有筛选上下文)

因为你原有Gross Euros本身就是度量值,直接基于它做时间智能计算即可,完全可以动态计算不同筛选条件下的财年同比差值:

GP % = 
VAR CurrentFY_Gross = [Gross Euros]
-- 如果你的财年是自然年直接用SAMEPERIODLASTYEAR,非自然年调整偏移规则即可
VAR LastFY_Gross = CALCULATE([Gross Euros], SAMEPERIODLASTYEAR('日期表'[Date]))
RETURN
DIVIDE(CurrentFY_Gross - LastFY_Gross, LastFY_Gross, 0)
  • 优势:可以响应报表所有切片器、行标签的筛选,放到按财年分组的矩阵里就能直接显示FY21对比FY20、FY22对比FY21的百分比差值,不需要修改模型结构
  • 注意:使用前需要确保你的日期表已经标记为官方日期表,且和业务表的日期字段建立了活跃的一对多关系

方案2:业务表新增计算列(仅适合需要固定静态值的场景)

如果你确实需要在业务表中生成固定的GP%列(刷新后不会随筛选变化),可以用以下DAX,核心是要移除行上下文的限制,取对应财年的全量Gross Euros汇总值:

GP % (计算列) = 
VAR CurrentRow_FY = RELATED('日期表'[Fiscal Year])
VAR CurrentFY_TotalGross = CALCULATE([Gross Euros], ALL('业务表'), '日期表'[Fiscal Year] = CurrentRow_FY)
VAR LastFY_TotalGross = CALCULATE([Gross Euros], ALL('业务表'), '日期表'[Fiscal Year] = CurrentRow_FY - 1)
RETURN
DIVIDE(CurrentFY_TotalGross - LastFY_TotalGross, LastFY_TotalGross, 0)
  • 注意:该方案生成的列值在数据刷新时就固定,后续调整报表筛选不会改变数值,仅适合需要把财年差值固化到行级的特殊场景

内容的提问来源于stack exchange,提问作者Theo27

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:33:04