ツールへ移動
ViewCSV
ファイルはアップロードされません

CSV ファイルの結合:行を縦に連結・キー列で横に結合

2 ファイル
  1. customers.csv8 行 · customer_id, name, country, segment
  2. invoices.csv10 行 · customer_id, invoice_no, total, paid
結合の方法
結果
結果
#customer_idnamecountrysegmentinvoice_nototalpaid
100301蓮 山本日本retail···
200302凛 加藤日本education···
300303芽依 佐藤日本retail···
400304颯太 高橋日本business···
500305芽依 吉田日本education···
600306陽葵 山田日本business···
700307凛 小林日本education···
800308陽葵 鈴木日本business···
900304···INV-2400502.63false
1000303···INV-2401449.97true
1100304···INV-2402576.98true
1200307···INV-2403853.43false
1300309···INV-2404283.32true
1400302···INV-2405726.81true
1500307···INV-2406154.83true
1600304···INV-2407731.28false
1700306···INV-2408405.28false
1800304···INV-2409225.60true

18 行 · 7 列

CSV ファイルを結合するには、2 つ以上のファイルを追加して結合の方法を選びます。「行を縦につなげる」は、すべてのファイルの行を 1 つの表にまとめます。列は見出しの名前で合わせるため、一部のファイルにしかない列も残り、ほかのファイルの行では空になります。月別や地域別の書き出しファイルをまとめるといった、一般的な意味での結合はこちらです。「キーで結合」は、表計算ソフトの VLOOKUP のように 1 つ以上のキー列で 2 つのファイルを横に並べ、一致した行数、重複しているキー、それによって増えた行数を表示します。結合した表はオプションの変更に合わせて更新され、ファイルはアップロードされずにブラウザー内で結合されます。

CSV ファイルを結合する手順

  1. ファイルを追加します。各ファイルの区切り文字と文字コードは自動で判定され、1 行目が見出しとして使われます。一覧には各ファイルの行数と先頭の列が表示されます。ファイルを上下に移動して順序を決めてください。
  2. すべてのファイルの行を順につなげる場合は「行を縦につなげる」を、最初の 2 つのファイルの行をキーで対応付ける場合は「キーで結合」を選びます。
  3. プレビューとその上の注記を確認してから、結果を CSV としてダウンロードするか、CSV エディター で開いて作業を続けます。

行の順序はファイルの一覧の順序になります。1 つ目のファイルのすべての行、次に 2 つ目のファイルのすべての行、という順です。毎月の書き出しファイルを多数結合する場合は、まとめて追加し、ファイル名の列を有効にしておくと、各行がどのファイルのものかがわかります。

行を縦につなげる:列構成の違うファイルをまとめる

「行を縦につなげる」には、列の合わせ方が 3 通りあります。ファイル間の違いに合ったものを選んでください。

名前で合わせる(既定)結果には、すべてのファイルのすべての見出しが、最初に現れた順に含まれます。ある列がないファイルの行では、その列の値が空になります。名前は完全に一致する必要があり、SKU と sku は別の 2 つの列になります。
同じ列構成が必要見出しの名前、数、順序のいずれかが違うファイルがあると、最初に見つかったファイル名を示すエラーで停止します。すべてのファイルが同じ書き出し処理で作られているはずで、列名が変わっていれば何か問題がある、という場合に使います。
位置で合わせる1 列目は 1 列目の下に、というように位置で合わせます。見出しは最も列の多いファイルから取られ、列の少ないファイルでは末尾が空の値になります。使える見出しがないファイルや、名前は違っても列の並びが同じファイルの場合にだけ使ってください。
各行のファイル名を入れた列を追加最後の列に、各行のファイル名を入れた列を追加します。列名は変更しない限り source_file です。既存の見出しと同じ名前は使えません。
完全に同じ行を削除縦につなげた後、それより前の行とまったく同じ行をすべて削除し、削除した件数を表示します。最初の行が残ります。値は大文字・小文字や空白も含めて完全に一致する必要があります。ファイル名の列は比較の対象外なので、2 つのファイルにある同じ行も重複として扱われます。

あるファイルに余分な列があったり列の順序が違ったりすると、位置で合わせた場合に値が違う見出しの下に入ってしまいます。下の例では、4 月の qty が name の下に入ることになります。ファイルに見出しがある場合は、名前で合わせればこの問題を防げます。

キーで結合:2 つのファイルをキーで組み合わせる

「キーで結合」では、一覧の最初の 2 つのファイルをそれぞれ左側と右側として使います。キー列の組を 1 つ以上選びます。左側が customer_id、右側が id のように、組ごとに列名が違っていてもかまいません。複数の組を指定した場合は、すべての組が一致したときにだけ行が一致します。

左結合:1 つ目のファイルのすべての行(既定)左側のすべての行を出力します。キーが一致した行には右側の列の値が入り、一致しなかった行では空になります。
内部結合:両方にある行のみキーが右側のファイルにある左側の行だけを出力します。
右結合:2 つ目のファイルのすべての行右側のすべての行を出力します。一致した行は左側のファイルの順序で並び、その後にどの行とも一致しなかった右側の行が続きます。
完全外部結合:両方のファイルのすべての行両方のファイルのすべての行を出力します。左結合の結果の後に、どの行とも一致しなかった右側の行が続きます。
キーの大文字と小文字、前後の空白を区別しない C02 と c02 が一致します。結果に書き出されるのは、左側のファイルのキーの文字列です。

結果には、左側のすべての列の後に、キー列を除いた右側のファイルの列が続きます。右側の列名がすでに使われている場合は、total (2) のように (2) が付き、名前を変更した列は注記に一覧表示されます。どの行とも一致しなかった右側の行では、そのキーが左側のキー列に書き込まれ、左側のほかの列は空になります。

右側のファイルに同じキーが複数回出てくる場合、一致する左側の行は一致した回数だけ繰り返されます。注記には、一致した行、左側のみの行、右側のみの行、それぞれの側で重複しているキー、増えた行の数が表示されるため、1 対 1 のはずの照合がそうなっていない場合にすぐ気付けます。

値・見出し・異なる区切り文字の扱い

  • 値は文字列として扱い、書かれたとおりに残すため、00123 の先頭のゼロも保たれます。キーも文字列として比較するため、大文字・小文字や空白を区別しない設定でも、00123 と 123 は一致しません。
  • 値の中の引用符で囲まれた区切り文字、引用符、改行は RFC 4180 に従って読み込み、ダウンロード時に必要に応じて再び引用符で囲みます。
  • 1 つのファイルの中で、空の見出しは Column 3 に、重複した見出しは name (2) になります。こうして付けた名前も、名前で列を合わせるときにはほかの名前と同じように扱われます。
  • ファイルごとに区切り文字や文字コードが違っていてもかまいません。それぞれ個別に判定されます。ダウンロードはコンマ区切りで、改行コードと文字コードは一覧の最初のファイルに合わせます。Shift_JIS などブラウザーが書き出せない文字コードは、UTF-8 で保存されます。

連結・結合でよくある問題

  • 少しだけ名前の違う列が 2 つできる。ファイルによって見出しの表記が違います(Email と email、末尾の空白など)。結合する前に CSV の列名変更・並べ替え でどちらかの名前を変更するか、列の並びが同じであれば位置で合わせてください。
  • キーで結合してもほとんど一致しない。両方のファイルでキーが同じように書かれているか確認してください。先頭のゼロ、接頭辞、空白もすべて区別されます。大文字と小文字、前後の空白を区別しない設定をオンにするか、先に CSV データのクリーニング でその列の空白を削除してください。
  • 結合結果の行数が左側のファイルより多い。右側のファイルで同じキーが繰り返されています。注記に、重複しているキーの数と、それによって増えた行の数が表示されます。重複を削除するか、より具体的なキーの組を選んでください。
  • 結合した表がブラウザーの上限を超える。結果は最大 10万行、200万セルまでです。先に入力ファイルを 抽出 するか、一度に結合するファイルの数を減らしてください。

結合の制限とプライバシー

各ファイルは 25 MB、10万行、250 列、200万セルまでで、縦につなげた結果やキーで結合した結果も同じく 10万行、200万セルまでです。結合はストリーミングでは行わず、すべてのファイルをメモリに読み込みます。

ファイルはこのタブ内のバックグラウンドのワーカーで読み込まれ、ブラウザー内で結合されます。サーバーに送信されることはありません。2 つのファイルを結合するのではなく、2 つのバージョン間の変更点を調べるには CSV ファイルの比較 を、1 つのファイルを複数に分けるには CSV ファイルの分割 を使ってください。

例:列構成の違う 2 つの在庫ファイルを縦に連結

列構成の違う 2 つの在庫データを、ファイル名の列を有効にして、名前で合わせて縦につなげた例です。name と warehouse は一方のファイルにしかないため、もう一方のファイルの行ではその列が空になります。SKU の先頭のゼロも保たれています。

CSV
march.csv
sku,name,qty
00123,"Desk lamp, brass",4
00456,Shelf,2

april.csv
sku,qty,warehouse
00789,10,North
00456,2,
merged.csv
sku,name,qty,warehouse,source_file
00123,"Desk lamp, brass",4,,march.csv
00456,Shelf,2,,march.csv
00789,,10,North,april.csv
00456,,2,,april.csv

よくある質問

3 つ以上のファイルをキーで結合できますか?

1 回ではできません。キーで結合するときは、一覧の最初の 2 つのファイルを使います。結果をダウンロードするか開いてから、次のファイルと結合してください。「行を縦につなげる」にはこの制限がなく、追加したすべてのファイルをつなげられます。

完全に同じ行の削除では、キー列だけを比較しますか?

いいえ。行が削除されるのは、すべての値がそれより前の行と完全に一致する場合だけです。ID ごとに 1 行だけ残すには、結果を CSV データのクリーニング で開き、キー列を指定して重複を削除してください。

位置で合わせたら、値が違う見出しの下に入ったのはなぜですか?

位置で合わせる場合は見出しの名前を無視し、最も列の多いファイルの見出しを使います。ほかのファイルにない列が 1 つのファイルにあると、その後の値がすべてずれてしまいます。名前で合わせる方法に切り替えてください。

規格と参考資料