DAX实现度量值空白填充:取财年期初HC填充全财年各月
用DAX实现财年期初HC批量填充同财年所有财月
核心思路
根据你的需求(财年从8月开始,同财年所有月份显示8月的期初HC),正确逻辑是锁定当前财年第一个财月的期初HC值,将其填充到该财年的所有财月行中,而非提取“最新非空白值”(因为期初值是财年起始月的数值,是该财年最早的有效HC)。
实现步骤
假设你已有计算单月期初HC的基础度量期初HC,可以创建以下新度量来实现批量填充:
1. 财年统一期初HC度量
财年统一期初HC = VAR 当前财年 = MAX(日期表[财年]) // 获取当前财年的第一个财月 VAR 财年首月 = CALCULATETABLE( TOPN(1, 日期表, 日期表[财月序号], ASC), FILTER(ALL(日期表), 日期表[财年] = 当前财年) ) // 计算财年首月的期初HC VAR 财年期初HC = CALCULATE( [期初HC], 财年首月 ) RETURN 财年期初HC
代码说明
当前财年:捕获矩阵当前行对应的财年财年首月:筛选出当前财年中财月序号最小的月份(即财年起始月)财年期初HC:在财年首月的上下文下计算期初HC,最终返回这个固定值,实现同财年所有月份统一显示该值
备选方案:提取财年内最新非空白HC值
如果确实需要提取当前财年内最新的非空白HC值来填充空白,可以使用以下度量:
财年最新非空白HC = VAR 当前财年 = MAX(日期表[财年]) // 筛选当前财年内所有非空白的HC记录 VAR 非空白HC记录 = CALCULATETABLE( ADDCOLUMNS(VALUES(日期表[财月]), "@HC值", [期初HC]), FILTER(ALL(日期表), 日期表[财年] = 当前财年 && NOT ISBLANK([期初HC])) ) // 获取最新的一条非空白记录 VAR 最新非空白记录 = TOPN(1, 非空白HC记录, 日期表[财月序号], DESC) RETURN MAXX(最新非空白记录, [@HC值])
内容的提问来源于stack exchange,提问作者Ashwini B Shetty
相关产品推荐
相关产品推荐

