DAX计算列开发求助:基于最新日期匹配另一表对应值
DAX计算列:获取对应ID的最新日期匹配值
可以用以下DAX公式创建Table A的计算列,实现需求:
Latest Wanted Value = VAR CurrentAID = 'Table A'[PK] VAR MaxDateForAID = CALCULATE( MAX('Table B'[Date param]), 'Table B'[Table A ID] = CurrentAID ) RETURN CALCULATE( VALUES('Table B'[Wanted Value]), 'Table B'[Table A ID] = CurrentAID, 'Table B'[Date param] = MaxDateForAID )
逻辑说明
CurrentAID:捕获当前Table A行的PK值,作为匹配Table B的关联条件。MaxDateForAID:通过CALCULATE筛选出当前ID对应的Table B中最新的Date param日期。- 最终返回:再次筛选Table B,匹配当前ID和最新日期,用
VALUES提取对应的Wanted Value(确保返回单个值)。
特殊情况处理
如果Table B中存在同一Table A ID + 同一最新Date param对应多个不同Wanted Value的情况,VALUES会返回错误。此时可以改用MAX或MIN来获取唯一值,调整后的公式如下:
Latest Wanted Value = VAR CurrentAID = 'Table A'[PK] VAR MaxDateForAID = CALCULATE( MAX('Table B'[Date param]), 'Table B'[Table A ID] = CurrentAID ) RETURN CALCULATE( MAX('Table B'[Wanted Value]), -- 或MIN,根据业务需求选择 'Table B'[Table A ID] = CurrentAID, 'Table B'[Date param] = MaxDateForAID )
内容的提问来源于stack exchange,提问作者Shiverz
相关产品推荐
相关产品推荐

