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

もちろん、数式を下方向にコピーします。

説明

最初の列と最後の列は、単純に Addresses シートからコピーされます。このOFFSET関数を使用すると、特定の量だけ下または横に移動できます。この場合、正しい Person は PersonID + 1 の行にあることがわかります。行 1 ( $Names!$B$1) から開始するため、+1 は不要です。

連続しない個人ID

このVLOOKUP関数を使用すると、PersonID を検索し、同じ行の別の列を返すことができます。この場合、次のようになります。

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

関連情報