「商品一覧に在庫数を追加したい」「価格表と商品マスターを1つにまとめたい」
このようなときは、2つのファイルに共通する商品コードを使って、データを横につなげます。
ただし、表の並び順に合わせてコピー&ペーストするだけでは、別の商品に在庫数や価格を付けてしまうおそれがあります。また、一致した商品だけを残すと、片方のファイルにしかない商品を見落とすこともあります。
商品コードでExcel・CSVを結合するときは、「照合する項目」「残す行」「一致しないデータ」の3点を確認することが大切です。
この記事では、事務人の「Excel・CSV結合・分割ツール」を使い、商品コードで2つのファイルを結合する方法と、結合できなかったデータの確認方法を解説します。
商品コードで結合すると何ができる?
商品コードでの結合とは、共通するコードを手がかりに、別のファイルにある情報を同じ行へ追加することです。
たとえば、次の2つのファイルがあるとします。
商品一覧
| 商品コード | 商品名 |
|---|---|
| 00123 | ペン |
| 00045 | ノート |
| 00067 | 付箋 |
在庫一覧
| 商品コード | 在庫数 |
|---|---|
| 00045 | 30 |
| 00123 | 100 |
| 00089 | 20 |
在庫一覧は商品一覧と並び順が違い、含まれる商品も一部異なります。
商品コードで照合し、商品一覧の行をすべて残して結合すると、次のようになります。
| 商品コード | 商品名 | 在庫数 |
|---|---|---|
| 00123 | ペン | 100 |
| 00045 | ノート | 30 |
| 00067 | 付箋 |
商品コードが一致するペンとノートには、対応する在庫数が追加されます。付箋は在庫一覧に同じコードがないため、在庫数が空欄になります。
一方、在庫一覧だけにある「00089」は、この設定では結果に含まれません。
結合結果に何を残すかによって、確認できるデータが変わります。
「下へつなげる」と「商品コードで横につなげる」の違い
Excel・CSVの結合には、大きく分けて2つの方法があります。
| 方法 | 処理の内容 | 向いている作業 |
|---|---|---|
| 下へつなげる | 複数の表のデータ行を追加する | 月別の売上一覧を1つにまとめる |
| 共通項目で横につなげる | 一致するコードの行に別の項目を追加する | 商品一覧へ在庫数や価格を追加する |
今回使うのは、「共通項目で横につなげる」方法です。
商品一覧と在庫一覧を下へつなげても、商品ごとに在庫数が追加されるわけではありません。何を1つにまとめたいのかに合わせて、結合方法を選びましょう。
結合前に確認したい4つのこと
1.同じ商品を表すコードか確認する
両方のファイルに「コード」という列があっても、同じ意味とは限りません。
たとえば、自社の商品コードと仕入先の商品コードでは、同じ商品でも番号が異なることがあります。
照合する項目は、列の名前だけでなく、コードの意味も確認してください。
逆に、片方の列名が「商品コード」、もう片方が「品番」でも、同じ番号体系であれば照合に使えます。
2.商品コードの先頭の0が残っているか確認する
「00123」と「123」は、そのままでは異なる文字列です。
片方のファイルだけ先頭の0が消えていると、同じ商品として結び付けられない原因になります。
| 商品一覧のコード | 在庫一覧のコード | 確認すること |
|---|---|---|
| 00123 | 00123 | 同じコードになっている |
| 00123 | 123 | 先頭の0が失われていないか |
| AB-001 | AB001 | ハイフンの有無に意味があるか |
| ABC123 | ABC123 | 半角・全角が混在していないか |
コードをそろえる場合は、元の管理ルールに従って修正します。
桁数が分からない状態で0を追加したり、記号を一括で削除したりすると、別の商品を同じコードにしてしまうおそれがあります。
3.同じ商品コードが複数行にないか確認する
商品マスターでは1商品につき1行でも、売上明細や倉庫別在庫では、同じ商品コードが複数行に登場することがあります。
たとえば、在庫一覧が次のような場合です。
| 商品コード | 倉庫コード | 在庫数 |
|---|---|---|
| 00123 | TOKYO | 100 |
| 00123 | OSAKA | 40 |
商品コードだけでは、どちらの行と結合するかを1つに決められません。
倉庫単位で照合するなら、「商品コード+倉庫コード」のように複数項目を組み合わせます。商品ごとの総在庫が必要なら、結合前に在庫数を集計する必要があります。
結合と集計は別の処理です。
4.商品コードが空欄の行を確認する
コードが空欄のままでは、どの商品かを正しく特定できません。
空欄同士が照合されたり、重複として扱われたりする可能性もあるため、結合前に確認してください。
分からないコードを推測で埋めるのではなく、元データの出力元や商品マスターで確認しましょう。
事務人のツールで商品コードを使って結合する方法
事務人の「Excel・CSV結合・分割ツール」では、基準となるファイルと追加するファイルを選び、共通する項目で横に結合できます。
Excelの.xlsxファイルとCSVを扱えるため、商品一覧がExcel、在庫一覧がCSVという組み合わせでも利用できます。
ここでは、商品一覧に在庫数を追加する手順を紹介します。
手順1.「結合する」を選び、2つのファイルを追加する
ツールで「結合する」を選び、商品一覧と在庫一覧を追加します。
Excelの場合は、対象のシートを確認してください。CSVの場合は、日本語が文字化けしていないか、列が正しく区切られているかを確認します。
見出し付きの表では、1行目を項目名として扱う設定にします。
初期状態は「PCで処理」です。サーバー処理を選ぶ場合はファイルがサーバーへ送信されるため、画面の案内と社内のデータ取り扱いルールに合わせて選択してください。
手順2.「共通項目で横につなげる」を選ぶ
結合方法は「共通項目で横につなげる」を選びます。
「下へつなげる」では、商品コードを使った照合にはなりません。商品情報へ別の項目を追加したい場合は、横につなげる方法を選びます。
手順3.基準にするファイルを選ぶ
「基準にするファイル」で、商品一覧を選びます。
基準ファイルは、結合結果の土台になる表です。
今回のように「商品一覧に在庫数を追加する」なら商品一覧を、「売上明細に商品名を追加する」なら売上明細を基準にすると、目的を整理しやすくなります。
手順4.両方の照合項目で商品コードを選ぶ
商品一覧側と在庫一覧側で、それぞれ商品コードの列を選びます。
| ファイル | 選ぶ照合項目 |
|---|---|
| 商品一覧 | 商品コード |
| 在庫一覧 | 商品コード |
列名が異なる場合も、同じ意味の項目を選びます。
倉庫別など、商品コードだけでは行を特定できない場合は「照合項目を追加」を使い、対応する項目を組み合わせてください。
手順5.「残す行」を選ぶ
結合後に残す行は、目的に合わせて選びます。
| 設定 | 結果に残る行 | 向いている目的 |
|---|---|---|
| 基準ファイルの行を残す | 基準側の全行。一致しない追加側の項目は空欄 | 商品一覧を残して在庫数を追加する |
| 両方にある行だけ残す | 商品コードが両方にある行 | 一致した商品だけを出力する |
| すべての行を残す | 両方のファイルの行。片方だけにある商品も残す | 不一致も含めて全体を確認する |
一致しない商品を調べたい場合は、最初から「両方にある行だけ残す」を選ばないことがポイントです。
一致しなかった商品が結果から外れるため、どの商品が不足しているのか確認しにくくなります。
商品一覧を中心に確認するなら「基準ファイルの行を残す」、両方のファイルにしかない商品まで確認するなら「すべての行を残す」を選びます。
手順6.同じ番号が複数ある場合の扱いを確認する
事務人のツールでは、同じ照合番号が複数ある場合、初期設定では処理を止めて確認します。
選択肢には、次のものがあります。
- いったん止めて確認する
- 最初の行を使う
- 最後の行を使う
- 組み合わせをすべて作る
エラーを解消するためだけに「最初の行」や「最後の行」を選ぶのは避けましょう。
これらは、更新日時が最新のデータを自動で判断する機能ではありません。また、基準側にも同じコードが複数あると、採用されない行が出る場合があります。
商品コードが重複する理由を確認してから、扱いを決めてください。
手順7.プレビューを確認して保存する
結合前後の件数や先頭データを確認し、商品名と在庫数の組み合わせが正しいかをチェックします。
保存形式は、利用目的に合わせてExcelまたはCSVを選びます。CSVを他のシステムへ取り込む場合は、文字コードや区切り文字も取り込み先の指定に合わせてください。
サーバー処理ではプレビューが先頭の一部に限られるため、保存後のファイルでも確認します。
なお、Excel出力は元ブックの書式やグラフ、計算式をそのまま引き継ぐ用途ではありません。結合したデータを利用するための出力として扱いましょう。
一致しないデータを確認する方法
結合できた行だけでなく、片方にしかない商品も確認すると、登録漏れやコードの不一致を見つけやすくなります。
「すべての行を残す」で両方の不足を確認する
冒頭の商品一覧と在庫一覧を「すべての行を残す」で結合すると、次のようになります。
| 商品コード | 商品名 | 在庫数 |
|---|---|---|
| 00123 | ペン | 100 |
| 00045 | ノート | 30 |
| 00067 | 付箋 | |
| 00089 | 20 |
この例では、元データとの比較から次のことが分かります。
- 「00067」は商品一覧にあり、在庫一覧にはない
- 「00089」は在庫一覧にあり、商品一覧にはない
ただし、結合後の空欄だけで、不一致と断定することはできません。
在庫一覧の元データで在庫数が空欄だった場合も、結合結果は空欄になります。
不一致と元データの空欄を区別するには、確認用の列を付ける
区別を明確にしたいときは、元ファイルのコピーに確認用の列を追加しておく方法が便利です。
商品一覧には「商品一覧に存在」、在庫一覧には「在庫一覧に存在」という列を作り、すべてのデータ行に「あり」と入力します。
その状態で「すべての行を残す」を選ぶと、次のように判別できます。
| 商品コード | 商品一覧に存在 | 在庫一覧に存在 | 確認結果 |
|---|---|---|---|
| 00123 | あり | あり | 両方にある |
| 00045 | あり | あり | 両方にある |
| 00067 | あり | 商品一覧だけにある | |
| 00089 | あり | 在庫一覧だけにある |
※「確認結果」は説明用の列です。ツールが自動で付ける判定列ではありません。
この方法なら、在庫数そのものが空欄でも、在庫一覧に該当する商品コードがあったかどうかを確認できます。
確認用の列は作業用コピーに追加し、他システムへ取り込む最終ファイルでは、取り込み仕様に合わせて除いてください。
片方にしかない理由を調べる
不一致のデータが見つかったら、すぐに削除せず理由を確認します。
| 状況 | 考えられる理由 |
|---|---|
| 商品一覧にだけある | 在庫未登録、新商品、在庫一覧の抽出対象外 |
| 在庫一覧にだけある | 商品マスターへの登録漏れ、旧コード、廃番商品 |
| 同じ商品のはずなのに一致しない | 先頭の0、空白、全角・半角、記号などの違い |
| 一部の商品だけ不足する | 出力日時、対象店舗、倉庫、抽出条件の違い |
片方のファイルが最新で、もう片方が数日前のデータなら、コードが正しくても不一致は発生します。コードの表記だけでなく、出力条件も確認しましょう。
商品コードが一致しないときに確認すること
前後に空白が入っていないか
「00123」と「00123 」は見た目が似ていますが、後者には末尾の空白があります。
コピー&ペーストや外部システムからの出力で、見えにくい空白が混ざることがあります。
前後の空白だけでなく、全角スペースや改行などが入っていないかも確認してください。
全角・半角や英字の大文字・小文字が違わないか
「ABC123」と「ABC123」、「abc123」と「ABC123」などの違いも確認します。
事務人のツールでは、横結合の照合値を自動で同じ表記にそろえる前提にせず、元データ側で管理ルールに合わせることが大切です。
大文字・小文字や記号に意味があるコードでは、無条件に統一しないようにしてください。
表示されているコードと実際の値が違わないか
Excelでは、セルの表示形式によって先頭に0を付けている場合があります。
画面上で「00123」と表示されていても、実際の値が「123」であれば、文字列として保存された「00123」とは扱いが異なることがあります。
読み込み後のプレビューで、実際にどのようなコードになっているか確認しましょう。
すでに桁落ちや丸めが起きたコードは、結合処理では元に戻せません。正しい元データから取り直す必要があります。
結合後に行数が増えたときは、コードの重複を確認する
「組み合わせをすべて作る」を選ぶと、同じ商品コードの行数に応じて、結合結果が増えることがあります。
たとえば、同じ商品コードが基準側に2行、追加側に3行ある場合、そのコードについては次の件数になります。
2行×3行=6行
これは、すべての組み合わせを出力するためです。
結合後に数量や金額を合計すると、同じ値を何度も数えてしまうおそれがあります。
行数が想定より多いときは、次を確認してください。
- 商品コードが両方のファイルで重複していないか
- 商品コード以外の照合項目が必要ではないか
- 結合前に商品単位で集計すべきデータではないか
- 片方にしかない行を残したことで増えていないか
単に行数が増えたという理由で重複行を削除せず、何を1行として扱う表なのかを確認することが大切です。
保存後に確認したいチェックリスト
取り込みや集計に使う前に、保存したファイルを確認しましょう。
- 基準にした商品や明細が、意図せず減っていない
- 商品コードと商品名、在庫数、価格の対応が正しい
- 一致しない商品について理由を確認できている
- コードの重複によって行数が増えていない
- 先頭の0や長いコードが変わっていない
- 同名の項目を、別のファイル由来の列と取り違えていない
- CSVの文字コードや列順が、取り込み先の指定に合っている
事務人のツールでは、追加側に同名の列がある場合、元の列を上書きせず、ファイル名を付けた列として残します。
たとえば両方に「商品名」がある場合は、どちらのファイルの商品名を最終的に使うか確認してください。
よくある質問
2つのファイルで商品が並んでいる順番が違っても結合できますか?
できます。商品コードを照合項目にすれば、行の位置ではなくコードを手がかりに対応するデータを結び付けます。
ただし、商品コードの重複や空欄は事前に確認してください。
「商品コード」と「品番」のように列名が違っていても使えますか?
同じ商品を表す共通の番号であれば使えます。両方のファイルで、対応する列を照合項目として選択してください。
列名が似ていても番号体系が違う場合は、そのままでは照合できません。
ExcelとCSVを組み合わせて結合できますか?
事務人のツールでは、.xlsxとCSVを扱えます。Excel側の対象シートと、CSV側の文字コード・区切り文字を確認してから結合してください。
一致しない商品を消さずに残せますか?
基準側の商品を残すなら「基準ファイルの行を残す」、両方のファイルにしかない商品も残すなら「すべての行を残す」を選びます。
不一致を確認する段階では、残す行の設定を特に注意して選びましょう。
商品コードが同じ行の在庫数を、自動で合計できますか?
横結合は、対応する行に情報を追加する処理です。在庫数を商品単位で合計する処理とは異なります。
倉庫別在庫などを合計したい場合は、必要な単位で集計してから結合してください。
商品コードと倉庫コードを組み合わせて照合できますか?
できます。照合項目を追加し、両方のファイルで「商品コード」と「倉庫コード」を対応させます。
商品コードだけでは1行に特定できないデータでも、複数の項目を組み合わせることで、目的に合う単位で照合できます。









