使用DAX按财周分组求和并在Power BI中展示当前与上一财周金额的需求咨询
DAX按财周分组求和并在Power BI中展示当前与上一财周金额的需求咨询
嗨,我来帮你搞定这个Power BI的展示需求!从你给出的数据和预期结果来看,核心是要计算当前最新财周和上一财周的金额总和,然后用卡片可视化呈现出来。下面是具体的步骤和DAX表达式:
第一步:梳理数据逻辑
先看你的数据:最新的财周是FY24的第52周,这个财周只有gorup2有20的金额,所以当前总金额是20;上一财周是FY24的第51周,gorup1的30加上gorup2的5,总和是35,正好匹配你的预期结果。
第二步:创建DAX度量值
假设你的数据表名为YourTable(记得替换成你实际的表名),我们需要创建两个度量值:
1. 当前财周总金额(Current Amt)
Current Amt = VAR CurrentFiscalYear = MAX('YourTable'[FiscalYear]) VAR CurrentFiscalWeek = CALCULATE(MAX('YourTable'[FiscalWeek]), 'YourTable'[FiscalYear] = CurrentFiscalYear) RETURN CALCULATE( SUM('YourTable'[Amt]), 'YourTable'[FiscalYear] = CurrentFiscalYear, 'YourTable'[FiscalWeek] = CurrentFiscalWeek )
这个度量值的逻辑是:先找到最新的财年,再定位该财年下的最大财周(也就是当前财周),最后计算这个财年+财周组合下的金额总和。
2. 上一财周总金额(Previous Amt)
Previous Amt = VAR CurrentFiscalYear = MAX('YourTable'[FiscalYear]) VAR CurrentFiscalWeek = CALCULATE(MAX('YourTable'[FiscalWeek]), 'YourTable'[FiscalYear] = CurrentFiscalYear) VAR PreviousWeek = CurrentFiscalWeek - 1 RETURN CALCULATE( SUM('YourTable'[Amt]), 'YourTable'[FiscalYear] = CurrentFiscalYear, 'YourTable'[FiscalWeek] = PreviousWeek )
逻辑和上面类似,只是把财周减1,定位到上一财周后计算总和。如果后续遇到当前财周是第1周的跨财年情况,你可以再调整逻辑,但目前你的数据用这个完全没问题。
第三步:用卡片可视化展示
- 把这两个度量值分别拖入Power BI的卡片可视化组件中
- 你可以在卡片的格式设置里修改标题,比如改成“Current Amt”和“Previous Amt”,就能得到你想要的展示效果啦!
备注:内容来源于stack exchange,提问作者symkly
相关产品推荐
相关产品推荐

