Excel - 根据人员 ID 将 2 张工作表合并为 1 张,如果发现 ID 多次,则创建新行

Excel - 根据人员 ID 将 2 张工作表合并为 1 张,如果发现 ID 多次,则创建新行

我有两张不同的表格中的个人数据和地址数据,我想将它们合并为一张。问题是每个人可以有多个地址。

例如,如果我有以下 2 个数据集:

**Person Data**
PersonID         Name

1          John Smith
2          Mark Brown

**Address Data**
PersonID      Address

1                  UK
1              France
1                 USA
2                  UK

我需要他们像这样联合起来:

**Combined Data**
PersonID      Name       Address

1       John Smith            UK
1       John Smith        France
1       John Smith           USA
2       Mark Brown            UK

有没有办法通过 excel 公式来实现这一点?谢谢

答案1

看起来您只是想将该人的姓名添加到地址数据列表的每一行中。如果是这样,这很容易。

假设

  • 人员数据是排序且连续的(即,PersonID 1 位于第 2 行,PersonID 100 位于第 101 行)— 如果情况并非如此,请参阅上一节。
  • 地址数据已排序

解决方案

**Combined Data Sheet**
PersonID          Name                            Address
=$Addresses!A2    =OFFSET($Names!$B$1, A2, 0)     =$Addresses!B2

当然,将公式向下复制。

解释

第一列和最后一列只是从 Addresses 表中复制出来的。该OFFSET函数允许您向下或向右移动一定量。在本例中,我们知道正确的 Person 位于 PersonID + 1 行。由于我们从第 1 行开始($Names!$B$1),因此 +1 是不必要的。

不连续的人员 ID

VLOOKUP函数可用于搜索 PersonID,然后返回同一行中的另一列。在本例中,内容如下:

=VLOOKUP(A2, Names!$A$1:$B$1000, 2, FALSE)

相关内容