Power BI计算列与度量值:本年记录标记问题求助
解决Power BI中标记当前财年记录的问题
我来帮你搞定这个计算列的需求,核心就是把规划表的记录和你定义的当前财年(也就是[Current Year]返回的2018/19)做精准匹配,分场景处理会更严谨:
一、先理清楚匹配逻辑
你的[Current Year]是2018/19这种财年格式,而规划表有FiscalYear(数字型)和ReportDate两个关键字段,我们分两种情况判断:
- 如果
ReportDate不为空,优先通过关联的日期表获取该日期对应的财年(匹配日期表的FiscalYearSlash字段) - 如果
ReportDate为空,就用规划表的FiscalYear生成和[Current Year]一致的格式(比如2018 →2018/19)再做匹配
二、计算列DAX公式
假设你的规划表叫规划表,日期表叫日期表,且两者已经通过ReportDate和日期表的日期字段建立了关系,直接复制下面的DAX创建计算列就行:
IsCurrentFiscalYear = VAR CurrentFY = [Current Year] -- 从日期表获取ReportDate对应的财年 VAR FYFromReportDate = RELATED(日期表[FiscalYearSlash]) -- 用FiscalYear生成和Current Year一致的财年格式 VAR FYFromFiscalYear = IF( NOT(ISBLANK(规划表[FiscalYear])), FORMAT(规划表[FiscalYear], "0000") & "/" & FORMAT(规划表[FiscalYear] + 1, "00"), BLANK() ) RETURN SWITCH( TRUE(), -- 有ReportDate且对应财年是当前财年 NOT(ISBLANK(规划表[ReportDate])) && FYFromReportDate = CurrentFY, "是", -- 无ReportDate但FiscalYear匹配当前财年 NOT(ISBLANK(FYFromFiscalYear)) && FYFromFiscalYear = CurrentFY, "是", -- 其他情况都标记为否 "否" )
三、你的样本数据测试结果
代入你提供的样本数据,[Current Year]为2018/19时,最终标记结果如下:
| FiscalYear | ReportDate | Status | IsCurrentFiscalYear |
|---|---|---|---|
| 2017 | 01/4/2018 | Open | 是(该日期属于2018/19财年) |
| 2018 | Open | 是(FiscalYear2018生成2018/19) | |
| 2017 | Closed | 否(FiscalYear2017生成2017/18) | |
| 2016 | 01/10/2016 | Complete | 否(该日期属于2016/17财年) |
| 2016 | 01/8/2017 | Complete | 否(该日期属于2017/18财年) |
四、几个注意点
- 一定要确保规划表和日期表的关系正确(
ReportDate关联日期表的日期字段),不然RELATED函数没法正常获取日期表的财年信息 - 如果你的财年格式不是
YYYY/YY(比如是YY/YY),要调整FORMAT函数的参数,保证生成的财年字符串和[Current Year]完全一致 - 如果[Current Year]是动态计算的(比如基于系统当前日期),这个计算列会自动跟着财年变化更新标记结果
内容的提问来源于stack exchange,提问作者deethreenovice
相关产品推荐
相关产品推荐

