Excel - 根據人員 ID 將 2 個工作表合併為 1 個工作表,如果多次找到 ID,則建立新行

Excel - 根據人員 ID 將 2 個工作表合併為 1 個工作表,如果多次找到 ID,則建立新行

我的人員資料和地址資料位於 2 個不同的工作表中,我希望將其合併為 1 個工作表。

例如,如果我有以下 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

當然,也要向下複製公式。

解釋

第一列和最後一列只是從地址表複製出來。此OFFSET功能可讓您向下或橫向移動一定的距離。在本例中$Names!$B$1,我們知道正確的 Person 將位於 PersonID + 1 的行上。

不連續的人員 ID

VLOOKUP函數可用於搜尋 PersonID,然後傳回同一行中的另一列。在這種情況下,類似:

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

相關內容