月ごとのCSVで列順が違うとき:結合前にそろえる3つの手順

記事
IT・テクノロジー
月ごとのCSVをまとめたいのに、「見出し・列順が一致しません」と止まる。見出しの名前が同じでも、並び方が違うと、そのまま結合する処理では扱えません。

今回は、架空の2ファイルを「注文ID・商品・金額」の順へそろえてから結合する例です。実在の注文や顧客情報は含みません。


1.残す列と、出力する順番を決める


1月の見出し:注文ID,商品,金額,社内メモ

1月のデータ:0001,"りんご,小玉",1200,架空メモA

2月の見出し:社内メモ,金額,商品,注文ID

2月のデータ:架空メモB,800,みかん,0002

最終的に必要なのは「注文ID,商品,金額」の3列とします。社内メモは出力から外します。元ファイルは残し、別名で結果を保存してください。

単に「1列目・2列目・3列目を残す」と決めると、2月のデータでは社内メモが注文IDの位置に入ります。位置ではなく、見出しの名前で対応づけることが大切です。


2.各ファイルを同じ見出し・同じ列順へそろえる


それぞれのファイルから、注文ID→商品→金額の順に列を選びます。結合前の出力は、どちらも同じ3列になります。

1月:注文ID,商品,金額
0001,"りんご,小玉",1200

2月:注文ID,商品,金額
0002,みかん,800

見出しは完全一致で確認します。「注文ID」と「注文ID 」の末尾空白、「金額」と「金額(税込)」は別の名前です。見出しが重複している場合や、必要な列が欠けている場合は、どちらを採用するか推測せず作成元を確認します。

商品名「りんご,小玉」の中にもカンマがあります。テキストをカンマだけで分割するとセルが壊れるため、CSVの引用符を扱える処理が必要です。セル内の改行も、必ずしも次のデータ行の始まりではありません。


3.結合後は、件数と値を確認する


列をそろえた2ファイルを縦に結合すると、期待する結果は次のとおりです。

注文ID,商品,金額
0001,"りんご,小玉",1200
0002,みかん,800

確認するのは、見出し1行・データ2件・3列、注文ID「0001」「0002」、商品名のカンマ、社内メモが出力されていないことです。列の整理だけでは、重複した注文は削除されません。重複除去が必要なら、判定列と残す行のルールを別に決めます。

CSVの文字列として先頭ゼロを保持しても、表計算ソフトの開き方によって数値として解釈される場合があります。IDは文字列として取り込み、保存後の値も確認してください。すでに消えたゼロを、この処理で復元できるわけではありません。


この実例で検証した内容


2026年10月8日、自作のCSV解析・列選択・結合処理で、元の列順では停止すること、列整理後はデータ2件・3列になること、先頭ゼロと商品名のカンマが残ることを確認しました。社内メモにセル内改行を入れたケース、必要な見出しがないケース、保存したCSVを読み直した結果も確認しています。

この架空例の検証であり、特定の会計ソフトやECサービスへの取り込みを確認したものではありません。制作補助にAIを使用しています。


毎月同じ作業を繰り返す場合


毎月の入力形式が一定なら、残す列・列順・結合順・重複の扱いを決めて、繰り返せるPython処理にまとめる方法があります。見積り相談では、個人情報を除いた架空の入力例と、期待する出力例をご用意ください。

現在の出品の基本範囲は、1種類の列構造・最大10ファイル・合計10MB、最大5操作です。Python実行環境が必要です。今回のように入力の列構造が複数ある場合は、基本範囲に含まれると判断せず、購入前に対応範囲を相談してください。価格や納期はサービスページと見積りで確認します。

毎月のCSV整理をPythonで自動化するサービスの内容を見る

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す