我有两张不同的表格中的个人数据和地址数据,我想将它们合并为一张。问题是每个人可以有多个地址。
例如,如果我有以下 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)