![Excel - 人物 ID に基づいて 2 つのシートを 1 つに結合し、ID が複数見つかった場合は新しい行を作成します。](https://rvso.com/image/1618340/Excel%20-%20%E4%BA%BA%E7%89%A9%20ID%20%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%84%E3%81%A6%202%20%E3%81%A4%E3%81%AE%E3%82%B7%E3%83%BC%E3%83%88%E3%82%92%201%20%E3%81%A4%E3%81%AB%E7%B5%90%E5%90%88%E3%81%97%E3%80%81ID%20%E3%81%8C%E8%A4%87%E6%95%B0%E8%A6%8B%E3%81%A4%E3%81%8B%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AF%E6%96%B0%E3%81%97%E3%81%84%E8%A1%8C%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%BE%E3%81%99%E3%80%82.png)
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)