2つのExcelファイルを片方だけのデータも残して結合するには?
売上表と在庫表を商品コードで結合し、一致しない商品も残す方法です。両方の全行を保持する設定と空の値の意味を確認します。
両方のファイルのデータを残しながら共通商品の情報を横に並べるには、JOIN SHEETの「両方のシートの全行を保持」を選びます。一致するコードがない側の値は空欄になります。これは全外部結合に相当し、片方を基準にする結合とは残るデータが異なります。
販売された商品と在庫だけの商品を同時に確認する
架空の販売表ではP10が4個、P20が2個売れています。在庫表にはP20が8個、P30が5個あります。一致した商品だけを残すとP20の1行になり、P10とP30は確認できません。
コードの有無だけなら「値を比較」でも確認できます。販売数量と在庫数量を横に並べたい場合は、コードを結合キーとして接続します。表を上下に追加する「縦結合」とは異なる操作です。図は架空データを使った説明図で、画面キャプチャではありません。
両側の全行を保持する設定
- 「ファイルを追加」で販売と在庫のシートを読み込みます。
- 販売側の「販売コード」を在庫側の「在庫コード」の接続ポイントへドラッグします。
- 「接続方法を選択」で「両方のシートの全行を保持」を選びます。
- 「結果のプレビュー」で両側のコードと数量を確認します。
結果は3行。空欄は0ではない
| 販売コード | 販売数量 | 在庫コード | 在庫数量 |
|---|---|---|---|
| P10 | 4 | — | — |
| P20 | 2 | P20 | 8 |
| — | — | P30 | 5 |
表の「—」は空の値です。P10の在庫が空欄なのは、一致するコードが在庫表にないためです。在庫が0個だと確認されたわけではありません。P30の販売数量も同じです。
なぜコードの列が2つ残りますか?
結合は対応するデータを並べる処理であり、2つの元の列を1つに上書きする処理ではありません。販売コードと在庫コードは別々に保持され、自動的に1つの共通コードへ統合されるわけではありません。販売コードだけで探すと在庫側だけにあるP30を見落とします。
両側に同じコードが繰り返される場合は、一致する組み合わせの数だけ行数が増えます。結合キーの重複を調べる方法も使い、残したい商品の有無と数量の重複計上を別々に確認してください。
繰り返しの作業を減らす
シートを接続・比較して、必要な結果を確認できます。
この記事はProプランの利用環境を前提としています。
JOIN SHEETを使ってみる ↗Excel・CSVの作業はPCでご利用ください。新しいタブで開くため、作業中のデータは置き換わりません。
サンプルの検証日:
出典
Join two spreadsheets on a common column in Excel or OpenOffice — Stack Overflow
Joining two data sets together to create a combined table — Reddit r/excel
全外部結合に関する公開質問を参考に架空例を作成しました。原文で扱うすべての列加工を再現するものでも、質問者の製品利用を示すものでもありません。