You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI使用DAX将Export表最新NR2值同步至Overview表

需求说明

现有两张表:

  • Export表:包含重复物料编号(Material)和NR2列,同一物料对应多条记录
  • Overview表:每个物料编号唯一,包含Nr列(示例中为NR 1)

需要在Overview表中新增一列,展示对应物料在Export表中的最新NR2值(无日期字段,取该物料的最后一条记录的NR2值)

示例数据

Export表

MaterialNR 2
123X
123Y
123Z
456K
456L
456M1
789-
789A
789D

目标Overview表

MaterialNR 1NR2 From Export
123XZ
456KM1
789DD

解决方案

1. SQL实现(数据库场景)

如果使用支持窗口函数的数据库(如MySQL 8.0+、PostgreSQL、SQL Server等),可以通过ROW_NUMBER()按物料分组排序,关联到Overview表:

WITH ranked_export AS (
    SELECT 
        Material,
        `NR 2` AS latest_nr2,
        ROW_NUMBER() OVER (PARTITION BY Material ORDER BY (SELECT NULL) DESC) AS rn
    FROM Export
)
SELECT 
    o.Material,
    o.`NR 1`,
    r.latest_nr2 AS `NR2 From Export`
FROM Overview o
LEFT JOIN ranked_export r ON o.Material = r.Material AND r.rn = 1;

注:ORDER BY (SELECT NULL) DESC用于在无明确排序字段时,依托数据库默认存储顺序取最后一条记录;部分数据库可替换为表的主键字段,确保取到实际最后插入的记录。

如果是不支持窗口函数的旧版数据库(如MySQL 5.x),可使用关联子查询:

SELECT 
    o.Material,
    o.`NR 1`,
    (SELECT `NR 2` FROM Export e WHERE e.Material = o.Material ORDER BY (SELECT NULL) DESC LIMIT 1) AS `NR2 From Export`
FROM Overview o;

2. Excel实现(表格文件场景)

假设Export表数据在Sheet1的A:B列,Overview表在Sheet2的A:C列,在Sheet2的C2单元格输入以下公式,下拉填充即可:

=LOOKUP(2,1/(Sheet1!$A$2:$A$10=Sheet2!A2),Sheet1!$B$2:$B$10)

原理:1/(Sheet1!$A$2:$A$10=Sheet2!A2)会生成匹配物料的位置为1、不匹配为错误值的数组,LOOKUP(2, ...)会定位到最后一个1对应的B列值,即该物料的最后一条NR2记录。


内容的提问来源于stack exchange,提问作者Marco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 07:22:16