请求创建Power BI度量值:按日期及类别取最新非空Stage值
修正DAX度量值:按Location、Breed分组获取最新非空Stage值
修正后的DAX代码
Most Recent Stage Nonblank = VAR CurrentLocation = SELECTEDVALUE('table'[Location]) VAR CurrentBreed = SELECTEDVALUE('table'[Breed]) VAR LatestDate = MAX('table'[Date]) -- 获取当前Location和Breed分组下,最新的非空Stage对应的日期 VAR LastNonBlankDate = CALCULATE( MAX('table'[Date]), 'table'[Location] = CurrentLocation, 'table'[Breed] = CurrentBreed, NOT(ISBLANK('table'[Stage])), 'table'[Date] <= LatestDate ) -- 根据上述日期提取对应分组的Stage值 VAR LastNonBlankStage = CALCULATE( MAX('table'[Stage]), 'table'[Location] = CurrentLocation, 'table'[Breed] = CurrentBreed, 'table'[Date] = LastNonBlankDate ) RETURN -- 当前行Stage非空则直接返回,否则取分组内最新非空值 IF(NOT(ISBLANK(SELECTEDVALUE('table'[Stage]))), SELECTEDVALUE('table'[Stage]), LastNonBlankStage )
关键修改说明
- 新增
CurrentLocation和CurrentBreed变量,明确锁定当前行的分组上下文,彻底解决原代码跨分组取值的问题 - 计算
LastNonBlankDate时,强制限定在当前Location+Breed组合内筛选,只找该分组下最新的非空Stage日期 - 用
ISBLANK替代原代码的= BLANK(),这是DAX中判断空值的标准写法,避免潜在的判断误差 - 最终返回逻辑保持你原本的需求:当前行有值则用当前值,空值则填充分组内最近的非空值
内容的提问来源于stack exchange,提问作者Ilze
相关产品推荐
相关产品推荐

