楽天CSVの 『 16行目は項目数が合っていません 』 への対処方法

   2016/06/02

内容に特に間違いがなくても出るCSVの理不尽エラー『 16行目は項目数が合っていません 』

楽天市場の運営上、商品登録をCSVを使うことはもはや必須テクニック。

しかし、特にCSV初心者の方で多く出るエラーが『 16行目は項目数が合っていません 』です。

実はこれ、エクセルでCSVファイルを生成した時に出てしまうバグによって出るエラー。

何かミスをしてしまい本当に項目数があってないとかそういうわけではないのでご安心を。

逆に言えば別にファイルの作り方がマズイとかではないのに出てしまうのが厄介なんですけどね。

『 16行目は項目数が合っていません 』 エラーが出る原因

まずなぜそんなエラーが出るのか原因がわからなければ対処しようがないので、先にエラーが出る原因を解説します。

『 16行目は項目数が合っていません 』 エラーが出る原因は、一番右にある最後の列が空欄だから。

CSVの一番右の列がカラだと16行目項目名エラーが出る

ExcelでCSVをいじった時に、一番右の列がカラだと16行目

正確に言えばデータが16行以上あり、一番右端の列のセルがカラだとエラーになります。

実はコレExcelのバグで、Excel上で一番右端の項目列のセルがカラだとCSVファイルを保存した時に本来全部の行の一番最後に付与されるべき区切りの 『 , 』(カンマ)が何故か15行目までしか付与されず16目以降は入らないのです。

CSVの一番右の列がカラだと16行目項目名エラーが出る原因

なぜか16行目以降にはデータ上カンマが付与されず、CSVとして読み込めない状態に

Excelで見ている分には特に問題ないのですが、このようにメモ帳で開くと16行目以降の最後のデータの横に区切りのカンマがないのが確認できます。

このバグのため、CSVとしての読み込みでエラーが出てしまうのです。

16行目エラーを解消するための対処方法

この16行目エラーを解消するための対処方法は二つあります。

一つが項目ごと別の列と入れ替えてしまうことと、そもそもExcelを使わず別のソフトを使うことです。

対処方法その1

実は楽天のCSVは、最低限必須の項目の列さえ残っていれば行も列も順番を入れ替えてOK。

なので、すべてのセルにデータが入っている他の列を切り取って一番後ろの列に挿入して入れ替えればOKです。

例えば楽天のカテゴリー用のCSVファイルではダウンロードしたばかりの状態だと、右端の『 1ページ複数形式 』の列がカラになっています。

これは特に指定せず空欄のままにしておくことが多く、ここで16行目エラーが出やすい。

なのでこの場合は中身が必須のためカラになる心配のない『 表示先カテゴリー 』項目の列を一番後ろに持って来ると解消されます。

対処方法その2

16行目エラーを防ぐもう一つの対処方法はExcel以外のソフトを使うこと。

Excelと同じくマイクロソフト社のデータベース管理用のソフトであるAccess(アクセス)を使えば列の最後がカラでもこんなバグは出ません。

ただ、Accessはもともとデータベース管理用のソフトで有料ですし、最初から入っているPCってほぼないんですよね。

現実的なラインでいく、表計算ソフトでCassavaというフリーソフトがあり、コチラはExcelとは違ってCSVをいじることに特化したソフトで、エラー・バグが出にくくて結構オススメです。

頻繁にCSVをいじる通販界隈では結構有名なソフトです。

もともとExcel自体がCSVにも対応しているってだけでCSV専用のソフトではないので、うまく機能しない可能性が多々あります。

管理人もEC-CUBEのCSVをいじっててどうやってもダメな時があって、その時にcassavaを導入したんですが、同じデータをExcelからcassavaにコピペして一発OKでした。

Excelとは使い勝手が大分違うため管理人も本当に原因不明でダメな時くらいしか使っていませんけど、関数なども揃っているので使い慣れればCSVの運用上でExcel使わなくても済むようになるようです。

16行目バグに限らず、どうしてもエラーが出てしまいCSVがうまくアップロードできない時には、上記Accessやcassavaなど別のソフトを試してみると良いでしょう。

楽天CSV 『 16行目は項目数が合っていません 』 エラーの対処方法まとめ

・『 16行目は項目数が合っていません 』 エラーが出る理由は、CSVを作る時に最後の列のセルが空白だと 『 , 』(カンマ)が抜けてしまうExcelのバグがあるため

・そのため、実は楽天以外のCSVでもうまく読み込めなくなる可能性有り

・CSV基本的に列は入れ替えてもOKなので、カラの列を切り抜き → (右クリック)セルの挿入でセル内にデータが入ってる列の前に入れる

・反対に、セル内にデータが入ってる列を一番右端に入れて防波堤代わりにするのでもOK。

ちなみにこのバグ、最近のExcelは出ないようです。(管理人所持のExcel2013では再現せず。上記のバグが出ている画像はExcel2003で再現させています)

CSVの一番右の列がカラだと出る16行目項目名エラーは新しいバージョンのExcelではバグ対応され、出なくなっている(2013で解消確認済み)

Excel2013を使って保存したCSVでは最後の列がカラでもカンマが付与されている

さすがにマイクロソフト、こんなバグをいつまでも放ってはおけなかったのでしょう。

それでも管理人、最後の列にカラのセルがあると気になってついクセでふさぎたくなります。

切り取り&ペーストのひと手間ですから、バージョンの古いExcelを使う場合は塞いでしまうのが無難でしょう。

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。