Power BI:通过Linking Key在同一列匹配另一行的旧日期
解决方案
方法1:Power BI(DAX计算列)
直接在原表中新建计算列,使用以下DAX公式(替换你的表名为实际表名称):
Old Date = CALCULATE( MAX('你的表名'[Date]), FILTER( '你的表名', '你的表名'[Linking Key] = EARLIER('你的表名'[Linking Key]) && '你的表名'[Category] = "Old" ) )
逻辑说明:通过EARLIER获取当前行的Linking Key,筛选同Key下Category为Old的行,取出对应的日期(每个Key仅对应一个Old日期,用MAX/MIN结果一致)。
方法2:Excel(公式实现)
如果是Excel表格,直接在Old Date列输入以下公式:
- 适用于Excel 365/2021及以上版本(XLOOKUP函数):
=XLOOKUP([@[Linking Key]], [Linking Key], IF([Category]="Old", [Date]), "")
- 兼容所有Excel版本(INDEX+MATCH数组公式,旧版需按
Ctrl+Shift+Enter确认):
=INDEX([Date], MATCH(1, ([Linking Key]=[@[Linking Key]])*([Category]="Old"), 0))
逻辑说明:匹配当前行的Linking Key,定位同Key下Category为Old的日期,自动填充到对应行的Old Date列。
两种方法都不会修改原表结构,完全满足你“不透视、保留原表用于其他可视化”的需求,后续筛选Category=Current就能得到Current与Old日期的对比数据。
内容的提问来源于stack exchange,提问作者ninelondon
相关产品推荐
相关产品推荐

