Excelで管理していた取引先リストや請求データをkintoneへ移そうとして、CSVを読み込んだ瞬間に赤いエラー画面が出た——という経験がある方は少なくないはずです。文字化けを直して再アップロードしたら今度は「更新キーが重複しています」と言われ、それを直したら別の行でまたエラー。原因を1つずつ潰すたびに新しいエラーが顔を出す「もぐらたたき」状態は、経理・総務の定型業務の時間を奪います。

この記事では、kintoneのCSV読み込みで起きるエラーを①文字コード②更新キー③フィールド型の3つの原因に整理し、読み込む前に潰しておくべきチェックポイントを手順化します。

kintoneのCSV読み込みで起きる典型エラーと原因の切り分け

CSV取込エラーコードを原因の3系統(必須・重複/型・形式/参照先)に分類した図

kintoneのCSV・Excel読み込みで表示される主なエラーコードは、次の通りです。

エラーコード意味主な原因
GAIA_IL16必須項目未入力・値の重複禁止違反・選択肢不一致などフィールド単位の入力値異常
GAIA_IL17記載形式が不正数値フィールドに文字列、不正な日付形式など
GAIA_IL19ルックアップの参照先レコードなし参照先データの不足・表記ゆれ
GAIA_LM01ルックアップの参照先レコードが複数存在参照先データの重複
GAIA_IL48カテゴリー選択肢に存在しない値選択肢とファイル値の不一致
GAIA_II02〜II13テーブル関連(作成者・更新者の形式不正など)テーブル行の記載不備
GAIA_RE10ファイル内で更新キー値が重複更新キーの設計・データ側の重複
GAIA_SE02読み込み中止手動キャンセル

エラーメッセージを見ずに「またダメだった」で再アップロードを繰り返すと、同じ原因のエラーに何度もぶつかります。実務でCSVインポートのトラブル対応をしていると、GAIA_IL16とGAIA_RE10を混同してしまうケースがよく見られます。IL16は「必須未入力」や「選択肢の不一致」など行ごとの値の異常、RE10は「ファイル内で更新キーの値そのものが重複している」という、原因のレイヤーが違うエラーです。エラー詳細に表示される行番号とエラーコードを、まず表の3系統(値の異常・記載形式・参照先/重複)のどれに当たるか仕分けてから対処すると、修正の手戻りが減ります。

文字コードが原因のトラブル: UTF-8とShift-JISの見分け方

文字コードには、多言語・特殊文字に対応する汎用形式のUTF-8、Excel等で開く際の文字化けを防ぐBOM付きUTF-8、日本語のみの環境向けのShift-JISがあります。読み込み画面ではファイルの文字コードを選ぶ欄があるため、実際のファイルがどちらか分からない場合は、プレビュー表示で文字化けしていない方を選ぶのが確実です。

kintoneの「ファイルから読み込む」画面。「ファイルを選択」からCSV/Excelを指定して読み込む

特に注意したいのが、Excel日本語版で作成したファイルです。既定ではShift-JISで保存されるため、機種依存文字(丸囲み数字や特殊記号など)が含まれていると文字化けする可能性があります。この場合は、Excel側の設定を探すよりも、OpenOffice CalcなどでいったんファイルをUTF-8として保存し直す方が早く解決します。

データの出所からBOM付きUTF-8かShift-JISかを判定する道のりの図

一括更新の落とし穴: 更新キーの重複・空値は何を引き起こすか

更新キーとは、アプリの既存レコードと読み込むファイルの行を紐づけるためのフィールドです。レコード番号のほか、取引先コードや受注番号など、アプリ内で値が重複しないフィールドを指定します。レコード番号以外を更新キーに使う場合は、そのフィールドの設定で「値の重複を禁止する」を有効にしておく必要があります。この設定がない、あるいはファイル側に同じ値の行が複数あると、GAIA_RE10(更新キー重複)で読み込みが止まります。

また、更新キーの値は完全一致でなければ「別レコード」として扱われる点にも注意が必要です。同じ取引先を指していても、更新キー列に全角と半角のスペースが混在していたり、「株式会社」と「㈱」のような表記の違いがあったりすると、既存レコードを更新するはずが新規レコードとして追加されてしまいます。取引先コードのような、表記のゆれが起きにくい専用フィールドを更新キーに選ぶのも予防策の一つです。

kintoneのCSV読み込み設定画面。文字コード・区切り文字とプレビューを確認し、反映方法(追加のみ/更新と追加)とエラー検知時の処理を選ぶ

更新キーそのものよりも見落としやすいのが、空欄セルの扱いです。ファイルの値を記載せず空欄のまま読み込むと、読み込み先のフィールドは「空、または初期値」で上書きされます。つまり、一部の項目だけを更新するつもりで作ったファイルでも、対応付けたフィールドのセルが空欄なら、既存の値が消えてしまいます。

一部のフィールドだけを更新したい場合は、列とフィールドの対応付け画面で該当フィールドを「(指定しない)」にして、対応付け自体を外すのが安全です。対応付けを外したフィールドは読み込みの対象から外れるため、既存の値がそのまま維持されます。「空欄で対応付ける」と「対応付けを外す」は見た目が近いのに結果がまったく違うため、一括更新の設計では区別して覚えておく必要があります。

この更新キー設計と部分更新の判断は、一度データ移行で事故を経験すると重みが分かる工程です。自社のデータ構造で判断に迷う場合は、無料相談で実際の項目を見ながら確認するか、kintone相談先5選で相談先を探すのが確実です。

フィールド型と列の対応: 計算・添付など取り込めないフィールド

CSV・Excelから読み込めないフィールドがあります。ラベル、自動計算が設定された文字列(1行)、計算、添付ファイル、関連レコード一覧、ルックアップの参照フィールド、システムフィールド(作成者・作成日時・更新者・更新日時・レコード番号)です。また、コメントや変更履歴、プロセス管理のステータス・作業者もレコード情報として読み込めません。

読み込み可能なフィールド型と読み込み不可なフィールド型の対応図

ルックアップフィールドは、「コピー元のフィールド」に指定した値だけファイルへの記載が必須です。「ほかのフィールドのコピー」に指定されたフィールドは読み込み後に自動で再取得されるため、ファイルに書いても読み込まれません。

フィールド型ごとに、ファイルへの記載形式も異なります。

フィールド型記載形式
チェックボックス・複数選択「フィールド名[選択肢名]」で選択肢ごとに列を分け、選択時は1・非選択は空欄
ドロップダウン・ラジオボタン選択肢名をそのまま記載
日付YYYY-MM-DD、YYYY/MM/DD、YYYYMMDDなど複数形式に対応
時刻HH:MM(24時間制)またはHH:MM AM/PM
ユーザー選択ログイン名を改行区切り(ゲストは「guest/」を接頭)
組織・グループ選択コードを改行区切り
テーブル先頭列にレコード開始行の目印(*)を記載し複数行で表現

なお、画面上の更新キーの候補にどこまでの型が表示されるかは、公式ヘルプ上に明確な一覧がありません。安全に運用するなら、レコード番号か、値の重複を禁止した文字列(1行)・数値フィールドを更新キーに選ぶ前提で設計するのが確実です。

読み込み前チェックを自動化する

ここまでの原因は、いずれも「読み込んでみないと分からない」ものではなく、ファイルを作る段階で機械的にチェックできる項目です。文字コードの判定、更新キー列の重複チェック、フィールド型と列の対応チェックを事前に済ませておけば、本番アプリへのアップロードは「失敗を前提に何度もやり直す作業」ではなく「一度で通す作業」に変わります。

pullie 取込アシストの設定画面(kintoneアプリの設定 > プラグインから開く)

当社が提供する「取込アシスト」は、こうした読み込み前チェックをkintone上で行うためのプラグインです。なお、こうしたチェックをAPI経由で自動化する仕組みを自社で作り込む場合は、kintone REST APIの1日あたりのリクエスト上限(スタンダードプランで10,000件/ドメインなど)も設計時の考慮点になります。

まとめ: 手戻りゼロのインポート手順

CSV取込前・取込中・取込後の3段階チェックの様子

CSV読み込みのエラーは、原因を切り分けて考えると実はパターンが限られています。

この3点を読み込む前のチェックリストとして固定しておくだけで、CSVインポートは「エラーが出たら直す」作業から「最初から通す」作業に変わります。