CSVの列名・順番が違って取り込めないときの直し方

記事
IT・テクノロジー
「必要な列がありません」「項目数が違います」と表示されて、CSVを取り込めない。
中身を見ても、注文番号も商品コードも入っているのに進まないと困りますよね。

そんなときは、取込先が求める列名と順番を確認してみましょう。たとえば「order_id」と「注文番号」は、人には同じ意味でも、システムによっては別の項目として扱われます。

今回は、Excelの「Power Query」という取込・整形機能を使って、列を整えるところから、保存後の確認まで進めます。コードの入力は必要ありません。

対象は、Windowsのデスクトップ版Excel(Microsoft 365/Excel 2024)です。画面名は更新状況で少し違う場合があります。Mac版・ブラウザー版は、この記事と同じ手順の対象にしていません。

1 直す前に、取込先の見本を確認する


まず、元のCSVをコピーし、原本は別に残します。Excelで開いて保存し直す前のファイルを使ってください。

次に、取込先の公式ヘルプやサンプルCSVで、次を確認します。

・1行目に見出しが必要か
・列名と列の順番
・必要な列と、追加してはいけない列
・区切り文字と文字コード
・空欄の可否、番号や日付の書き方

取込画面に「項目の対応づけ」があるなら、そこで元の列を指定するだけで済む場合もあります。列順を固定していないシステムもあるため、見本と違うという理由だけで全部並べ替える必要はありません。

この記事では、取込先の指定を次のように仮定します。

見出しあり/カンマ区切り/UTF-8のBOM付き
列の順番は「注文番号、商品コード、商品名、数量」

この4列に直す練習です。実際のシステムの仕様を表すものではありません。元の列名に空欄や重複があるCSVも、この手順の対象外です。まず元の列の意味を確認してください。

2 3行だけの練習用CSVを作る


顧客情報のない、次の架空データで試せます。

order_id,quantity,sku,item_name,memo
0000123,2,001-A,"赤,青セット",社内用
0000124,10,1-2,ノート,社内用
0000125,0,0007,"""限定""ペン",社内用

Windowsのメモ帳で新しいファイルを作り、上の4行を貼り付けます。「ファイル」→「名前を付けて保存」で、ファイル名を import_practice.csv、ファイルの種類を「すべてのファイル」、文字コードを「UTF-8」にして保存してください。.csv.txt になっていないかも確認します。

「赤,青セット」を囲む半角のダブルクォートも、そのままコピーします。これは、商品名の中のカンマを列の区切りと区別するためです。最後の商品名には、文字としてのダブルクォートも含めています。

3 Excelの「データ」から取り込む


CSVをダブルクリックする代わりに、Excelで空白のブックを開きます。

①「データ」→「テキストまたはCSVから」を選ぶ

見当たらない場合は、「データの取得」→「ファイルから」→「テキストまたはCSVから」を探します。

② import_practice.csv を選ぶ

③ プレビューで、次の設定にする

・元のファイル:65001/Unicode(UTF-8)
・区切り記号:コンマ
・データ型検出:データ型を検出しない

文字コードの欄は「ファイルの配信元」などの名前で表示される場合もあります。実データではUTF-8と決めつけず、書き出し元の指定に合わせます。

④「データの変換」を押す

別画面のPower Queryエディターが開きます。

「データ型を検出しない」を選ぶのは、番号や商品コードを文字のまま扱うためです。先頭の0が消えたり、「1-2」が日付へ変わったりするのを避けます。

この設定が見つからない場合は、いったん取り込みを取り消してください。変換後に表示形式だけを文字列にしても、失われた0や元の文字が戻るとは限りません。

4 不要な列を外し、名前と順番を合わせる


まず、列見出しが order_id、quantity、sku、item_name、memo になっているか確認します。

もし Column1、Column2 などになっていて、データの1行目に order_id がある場合だけ、「ホーム」または「変換」の「1行目をヘッダーとして使用」を選びます。すでに正しい見出しなら、この操作は不要です。

次に、次の順番で操作します。

① memo の列見出しを右クリックして「削除(列の削除)」

今回の取込先には不要という設定なので外します。実データで必要か分からない列は削除しないでください。

② 各列見出しをダブルクリックして、名前を変更

order_id → 注文番号
quantity → 数量
sku → 商品コード
item_name → 商品名

半角・全角や、名前の前後の空白にも注意します。見本から列名をコピーすると照合しやすくなります。

③「数量」の列見出しをつかみ、右端へドラッグ

「注文番号、商品コード、商品名、数量」の順になればOKです。表の中の数字をドラッグするのではなく、一番上の列見出しを動かします。

この時点で、次の内容になっているか見比べます。

・1行目:0000123 / 001-A / 赤,青セット / 2
・2行目:0000124 / 1-2 / ノート / 10
・3行目:0000125 / 0007 / "限定"ペン / 0

ここでは「/」は説明用の区切りです。実際のセルには入力しません。CSVで使う囲みのダブルクォートや、引用符を二重にする処理は、保存時にExcelへ任せます。セルの文字に手作業で付け足す必要はありません。

列見出しの左のアイコンは、テキストを表す「ABC」が目印です。数量も今回は計算せず、そのまま出力するためテキストで扱います。0が消えている、日付になっている、ABC以外の型になっている場合は、保存せず元のCSVから取り込みをやり直します。

5 Excelの作業用ファイルと、出力CSVを分ける


Power Queryエディターの「ホーム」→「閉じて読み込む」で、結果をワークシートへ戻します。読み込み先を選ぶ画面が出たら、「テーブル」「新規ワークシート」を選びます。

まず、このブックを「Excelブック(.xlsx)」で保存します。例:CSV変換_作業用.xlsx。このファイルに、変換の手順を残します。

次に、CSVとして出すための別ブックを作ります。

① Ctrl+N で、新しい空白のブックを開く
② 新しいブックで列見出しAからDまでを選ぶ
③「ホーム」の数値の表示形式を「文字列」にする
④ 作業用ブックに戻り、結果の見出しと3行だけをコピーする
⑤ 新しいブックのA1を選び、Ctrl+Alt+Vで「形式を選択して貼り付け」を開き、「値」を選んでOKを押す

今回ならA1:D4だけです。余分な説明文や、合計行は含めません。貼り付け後も、0000123、0007、1-2 がそのままか確認してください。

出力用ブックで「ファイル」→「名前を付けて保存」を開き、ファイルの種類を「CSV UTF-8(コンマ区切り)(*.csv)」、名前を import_ready.csv にして保存します。元のCSVや作業用xlsxとは別名にします。

CSVに保存されるのは作業中の1シートです。複数のシートや変換の設定は残りません。形式の確認メッセージが出た場合は、作業用xlsxを保存済みであることと、出力用ブックを操作していることを確認してから、CSVで保存を続けます。

実際の取込先がShift_JISやBOMなしUTF-8を要求する場合、この保存形式をそのまま使わないでください。列が正しくても、文字コードの条件が違えば取り込めないことがあります。

6 保存できたら、もう一度「取り込み」で確認する


出力CSVをダブルクリックして確認すると、Excelが番号や日付を解釈し直すことがあります。

新しい空白のブックで、手順3と同じ方法で import_ready.csv を取り込みます。「データ型を検出しない」をもう一度選び、「データの変換」を押します。列見出しがColumn1などの場合は、手順4の冒頭と同じように1行目をヘッダーにします。手順4に示した3行と全項目を見比べ、次を確かめましょう。

・見出しが指定の4列、指定の順番になっている
・データは3行で、欠けたり増えたりしていない
・注文番号の先頭の0が残っている
・商品コードの「1-2」がそのまま残っている
・「赤,青セット」が1つのセルに収まっている
・「"限定"ペン」のダブルクォートが残っている
・数量が上から2、10、0になっている

列が1本にまとまってしまう場合は、出力ファイルの区切り文字も確認します。Windowsの地域設定などにより、CSVの保存時にコンマ以外が使われることがあるためです。設定をむやみに変えず、取込先の仕様に合わせて調べてください。

最後は、取込先のプレビューやテスト機能で確認します。本番にそのまま入れると、注文や商品が追加・更新されることがあります。架空データを入れてよい検証環境がない場合は、アップロードせず担当者に確認しましょう。

列がそろってもエラーが出る場合は


列名と順番の確認が済んだら、次はエラーの出た行の「必須項目」「日付」「数量」「使えない文字」などを調べます。エラーを消すためだけに、行を削除したり空欄を0に置き換えたりしないことが大切です。

同じ形式のCSVが繰り返し届くなら、今回の作業用xlsxが次の整形の土台になります。ただし、列名やファイルの場所が変わると、読み込みの設定も確認が必要です。更新ボタンだけで、あらゆるCSVを変換できるわけではありません。

まずは3行の練習で、「元の値を変えずに、指定の列へ並べる」ところまで試してみてください。

取込先の指定が複雑な場合や、何度も使う形に整えたい場合は、Excel・CSVの作成や修正をお手伝いしています。

ご相談の際は、「取込先の名前」「表示されたエラー」「今の列名と、必要な列名」が分かると確認しやすくなります。最初は個人情報や社外秘を含めず、列名と架空の数行で大丈夫です。

参考にした公式資料

・Microsoft Learn「Power Query Text/CSV コネクタ」
・Microsoft Support「列の名前を変更する(Power Query)」
・Microsoft Learn「列を移動する」
・Microsoft Support「テキスト(.txt または .csv)ファイルのインポートまたはエクスポート」

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