Excel の台帳を kintone に移す進め方|列を仕分けてから読み込み、件数と合計で突き合わせる
Excel の顧客台帳を kintone に移すときの進め方です。読み込み画面が先に止めるのは日付と数値の一部だけで、選択肢に無い値や重複は読み込んだ後のエラーの CSV で分かり、姓だけの営業担当は空のまま入りました。列を3つに仕分けて直し、読み込んだ後は件数と合計で突き合わせます。
目次 クリックで開く
顧客の管理を kintone に移すことになり、移行の日が決まった。手元にあるのは、何年も書き足してきた Excel の顧客台帳だ。当日は CSV に書き出して、アプリの[ファイルから読み込む]で読めば終わるはずだった。試しに列を対応付けると、赤い帯で「ファイルの4行目のフィールド「契約開始日」の記載形式に問題があります」と出て、[読み込む]が押せない。その行と、金額の列で同じように出た5行目を直すと、帯は消えた。ところが読み込むと「読み込まれなかった行:6行」と出て、入った24件は、営業担当の欄がどれも空だった――。
読み込み画面は、読み込む前にいくつかの誤りを止めてくれます。ただ、それは日付と数値の書き方の一部です。画面の指摘を1つずつ直して読み込むと、残りの誤りは移した後に見つかり、何が入って何が入らなかったのかを、その場で数え直すことになります。
当社の検証用の kintone に顧客台帳と同じ7項目のアプリを作り、日付や金額の書き方の揺れ、重複した顧客コードなどを含めた30社分の台帳を、2026年10月に読み込みました。kintone 向けのプラグインを提供し、kintone の導入も支援している当社が、移行の前に台帳のどこを見ておくかをまとめたのがこの記事です。画面は説明のために当社の検証用の kintone で作ったもので、会社・人物・数字は架空です。
ここで書くのは、読み込む前に台帳の列を「そのまま入る」「直してから入る」「止まらずに違う値で入る」の3つに仕分けて直し、読み込んだ後は件数と金額の合計で Excel と突き合わせる進め方です。
移す前に決めるのは、列ごとの kintone の種類と、「移せた」とみなす数
最初に、台帳の列を1列ずつ、kintone のどの種類のフィールドに入れるかを決めます。どの値が止まり、どの値が止まらずに入るかは、フィールドの種類で変わるからです。ここで例にする台帳は7列で、顧客コード(文字列1行。必須で、値の重複を禁止)、会社名(文字列1行、必須)、契約開始日(日付)、月額(円)(数値)、ランク(ドロップダウンで A・B・C)、営業担当(ユーザー選択)、備考(文字列複数行)に入れます。
同時に、移せたとみなす数を決めて控えておきます。この台帳では、行数、月額の合計、ランクごとの件数と月額の合計、の3つです。移した後に kintone の側で同じ数を出し、Excel と比べます。金額の列が無い台帳なら、件数と、分類に使う列ごとの件数だけでも突き合わせられます。
読み込むファイルを CSV にするか、Excel ブック(xlsx)のまま読むかも、ここで決めます。読み込み画面には「(Excelブック形式:最大1MB、1,000行まで CSV形式:最大100 MB、10万行まで)」と出ていて、kintone ヘルプの「レコード登録・上書き用のファイルを準備する」も同じ上限を挙げています。見出しの行を1,000行に数えるかはヘルプに書かれていないので、1,000行に近い台帳は、余裕を見て CSV で読みます。
Excel の「CSV(コンマ区切り)」で書き出したファイルは、読み込み画面で文字コードが「Shift-JIS(日本語)」と表示され、プレビューは化けずに出ました。ヘルプは、日本語版の Excel で作ったファイルは Shift-JIS になり、日本語・英数字以外の文字が化ける場合がある、としています。「髙」や「①」のような文字が保たれるかは、楽楽精算の伝票を想定した CSV を kintone に読み込んだ記事で試しています。
列の仕分け表を作る。画面の指摘を直すだけでは6行が落ちた
仕分けが要る理由から書きます。冒頭の場面のとおり、画面が赤い帯で示した2行だけを直すと、すべての列を対応付けても帯は出ず、[読み込む]が押せました。台帳には、和暦の日付も「万」の付いた金額も、全角や小文字のランクも残ったままです。
このまま読み込んだ結果と、残りを直して読み直した結果を並べたのが次の図です。
帯が消えたあとにも、6行が読み込まれませんでした。そして、入った24件を数えると、営業担当はすべて空でした。これは、結果の画面の件数にも、読み込まれなかった行の一覧にも出ません。kintone ヘルプの「レコード登録・上書き用のファイルの記載形式」は、ユーザー選択のフィールドには「選択したいユーザーのログイン名を記載してください。」とし、「kintoneに登録されているユーザーだけがフィールドに読み込まれます。」と補っています。台帳に書いてあったのは姓だけでした。
だから読み込む前に、台帳の値を kintone のフィールドの種類と照らして3つに分けます。そのまま入るもの、直してから入れるもの、止まらずに違う値や空で入ってしまうもの、です。この台帳を仕分けると、次の表になります。
表の「直してから入る」の2列のうち、読み込み画面が先に止めたのは、4行目と5行目だけでした。7行目の「R7.8.1」と13行目の「3.6万」も kintone の日付と数値には入らない書き方ですが、列を対応付けた時点では止まらず、読み込んだ後に分かりました。ランクの全角の「A」は画面のプレビューに出ている行にありましたが、対応付けの時点では止まりませんでした。
自分の台帳で仕分け表を作るときは、表の行に、列、kintone の種類、台帳にある値の例、3つのどれか、直し方、を書きます。値の例は、列ごとに Excel のフィルターのボタンを押して値の一覧を開くと拾えます。日付と金額の列に左に寄った値(文字として入っている値)が無いか、営業担当の列にログイン名ではない値が無いか、を見ます。ただし、Excel のフィルターの条件や COUNTIF は大文字と小文字を区別しないので、ランクの列の「a」は「A」と同じに扱われます。選択肢の列は、最後の節の EXACT を使った式で、選択肢と1文字も違わない値かどうかの印を付けます。できた表は、移行の日の点検表にもなります。
台帳に、この表の種類以外のフィールド(チェックボックス、日時、組織選択など)に入れる列があるときは、ヘルプの「レコード登録・上書き用のファイルの記載形式」にあるその種類の書き方と、台帳の値を照らして、同じ3つのどれかに置きます。その書き方に合わない値は、どれも直す値です。ただ、読み込みで止まる(「直してから入る」)のか、営業担当のように止まらずに空で入る(「止まらずに違う値で入る」)のかは、種類によって違います。どちらになるか分からない列は「止まらずに違う値で入る」に置いておき、移した後に一覧で確かめる列にします。
直す。日付・金額・選択肢・担当者・先頭の0
仕分け表で「直してから入る」と「止まらずに違う値で入る」に置いた値を、Excel の上で直します。
- 日付:文字で書いた「2025年6月1日」は、Excel の日付に直す。和暦の略記「R7.8.1」は「2025/8/1」に。ヘルプが CSV で読める日付として挙げる8つの形(YYYY/MM/DD など)に、和暦の形はありません。空の日付は空のまま入るので、必須にしたい列なら読み込む前に埋めます。
- 金額:「18,000円」は 18000、「3.6万」は 36000 に。読み込み画面は「18,000円」の5行目で止まり、「3.6万」は読み込んだ後のエラーになりました。ヘルプも、CSV では「\(円記号)などの通貨記号は使用できません」としています。Excel が表示どおりに書き出した桁区切りつきの「18,000」は、18000 で入りました(ヘルプも、桁区切りの記号はカンマとピリオドに対応するとしています)。
- ランク:kintone の選択肢と1文字も違わない値にそろえる。全角の「A」、小文字の「a」、「Aランク」は、どれも「A」に直します。
- 営業担当:ログイン名に直す。台帳にある値ごとにログイン名を決めた対応表を作り、列を足して写します(ログイン名の一覧の取り方は、この下に書きます)。
- 顧客コード:先頭の0がセルの表示形式で付いているだけなら、CSV で読む。CSV では Excel が表示どおりに「00101」と書き出し、そのまま入りました。Excel ブックを直接読むと「00101」は「101」で入りました。
- 重複した顧客コード:どちらの行を残すかを決める。読み込むと、ファイルで先にある行が入り、後の行がエラーになりました。
営業担当のログイン名は、kintone ヘルプの「レコード登録・上書き用のファイルの記載形式」によると、cybozu.com共通管理の[組織/ユーザー](共通管理者だけが見られる画面)か、各ユーザーのピープルの URL、またはプロフィール詳細の URL で確かめられます。人数が多いなら、共通管理者に一覧をファイルで書き出してもらう方法もあります。cybozu.com ヘルプの「ユーザーや組織などの情報をファイルに書き出す」によると、共通管理の[ファイルへの書き出し]で[ユーザー]を選んで書き出せ、[先頭行に項目名を書き出す]も選べます。書き出したファイルの列の並びは、そのページには書かれていません。ユーザーを追加・変更するときに読み込むファイルの形(「[ユーザー]のファイルフォーマット」)は、1行に1人で、ログイン名・表示名・姓・名などを並べる形です。書き出したファイルにログイン名と姓の列があれば、その姓と台帳の姓を照らして、ログイン名を対応表に写します。同じ姓の人がいれば、どちらにするかは人が決めます。対応表が移行の日に間に合わないなら、営業担当の列は対応付けずに移し、担当をいつ・どう入れるかを先に決めておきます。空のまま移すと、担当ごとの一覧が作れません。
㈱、会社名の末尾の空白、セル内の改行は、直さなければそのまま入ります。会社名で検索したり、重複を確かめたりする予定があるなら、読み込む前に「株式会社」に置き換え、空白を取っておきます。
読み込む。継続で読み、エラーの CSV を原因のコードで読む
読み込み画面には、エラーの行が見つかったときの扱いを選ぶ欄があります。kintone ヘルプの「読み込みエラー検知時の処理方法を選択する」によると、[読み込みを継続する(エラー行のみスキップします)]を選ぶと、読み込めない行が複数あってもすべてのエラーが検知され、エラーの行はまとめて CSV に出ます(エラーの内容によっては継続されない場合がある、という補足があります)。[読み込みを中止する(エラー行以降の行は読み込みません)]では、最初のエラーしか分かりません。移す日に誤りを一度に見たいなら、継続で読みます。
読み終わったら、[読み込まれたファイル]の画面で、成功した行と読み込まれなかった行の数を見ます。
読み込まれなかった行があれば、「読み込まれなかった行とエラー内容をCSV形式でダウンロード」から CSV を落とします。中身は、元の7列のあとに「読み込まれなかった原因」の列が付いた形でした。行の番号は無く、元の行の値がそのまま並ぶので、どの行かは顧客コードで分かります。原因の先頭にはコードがあり、GAIA_IL17 は記載形式の問題(和暦の日付と「万」の金額)、GAIA_IL16 は値の問題(ランクの3行と、重複した顧客コードの1行)でした。GAIA_IL16 の文は「フィールド「ランク」に設定されている条件(必須項目にする、値の重複を禁止するなど)を確認して」と、必須・重複・選択肢をまとめて挙げるので、どれに当たったかは、その行の値を見て決めます。
落ちた行を直したら、その行だけを足すか、入った分を消して全部を読み直すかを選びます。当社は検証で、入った24件を画面ではなく kintone の API(プログラムからの操作)で消してから、直した台帳を読み直しました。結果は成功29行・読み込まれなかった行1行(重複の後の行)で、レコード番号は続きから振られました(2回目は25から)。レコード番号を顧客の番号のように使う予定があるなら、試しの読み込みは本番のアプリとは別のアプリで行います。
画面で消すなら、kintone ヘルプの「レコードを一括で削除する」の手順です。先に、アプリの設定の[高度な設定]で[レコード一括削除を有効にする]にチェックを入れ、アプリを更新しておきます。消すときは、[レコードの一覧]で[絞り込む]から消すレコードの条件を指定して[適用]し、画面右上の[オプション]から[一括削除]を選びます。操作する人には、アプリのアクセス権の[アプリ管理]と[レコード削除]が要ります。ヘルプは、削除したレコードは復旧できないので、残したい場合はファイルに書き出してから消すように、としています。
件数と合計で突き合わせる。29件・1,020,000円 対 30行・1,068,000円
読み込みが終わったら、最初に決めた数を kintone の側で出します。一覧の[集計する]で、[グラフの種類]を表、[分類する項目]をランク、[集計方法]をレコード数と合計(月額(円))にして、保存せずに[適用]すると、ランクごとの件数と合計が出ました。Excel の側は、直した後の台帳で同じ数を出します(式は最後の節に置きました)。
全体の差は1行・48,000円です。ランクごとに並べると、A と C は件数も合計も合い、差はすべて B に出ています。B の行だけを顧客コードで照らせば、落ちた行が見つかります。この台帳では、エラーの CSV に出た重複の行と一致し、Excel からこの行を引くと合計も合いました。
件数だけでなく合計も比べるのは、行は入ったが金額が違う、という食い違いを件数では見つけられないからです。Excel の合計は、直した後の台帳で取ります。直す前の台帳で合計を取ると、文字の「18,000円」と「3.6万」は合計に入らず、1,014,000円になります。逆に、仕分け表で「止まらずに違う値で入る」に置いた列は、件数にも合計にも出ないので、一覧を開いて数行を目で確かめます。
移行の日の前に決めておく4つ
仕分けと直し、控えの数は、前の日までに済ませます。そのうえで、当日に迷わないよう、次の4つを決めておきます。
- Excel の台帳への書き込みを止める時刻。控えを取ってから、CSV に書き出して突き合わせが終わるまで、Excel 側の数が動かないようにするため。
- 読み込まれなかった行の扱い。その行だけを直して足すのか、入った分を消して全部を読み直すのか。消すなら、一括削除を有効にしておくことと、[アプリ管理]と[レコード削除]の権限を持つ誰が操作するかも。
- 突き合わせの控えを、誰が、どこに残すか。Excel 側の数と kintone の集計を、同じ表に並べられるようにしておく。
- 営業担当を、移行と同時に入れるか、後から入れるか。後から入れるなら、それまでの間に担当ごとの一覧を誰が使うかも確かめておく。
この進め方で、移行の日に決められること
前の日までに控えを取っておけば、移行の日に「移せた」と言える基準は、数で決まっています。この台帳なら、30行・月額の合計1,068,000円と、ランクごとの件数と合計です。重複の後の行を入れないと決めたなら、基準は29件・1,020,000円になります。
この進め方が確かめるのは、行が全部入ったかと、金額の合計が合っているかまでです。Excel の値そのものが正しいか(契約開始日の打ち間違いなど)は、突き合わせても分かりません。また、1つの表を1つのアプリに移す場合の進め方で、複数の表に分かれた台帳や、テーブル・ルックアップを使うアプリへの移行は扱っていません。
確かめられなかったこと
ここに書いた結果は、当社の検証用の kintone で、30行の台帳を2026年10月に読み込んだときのものです。止まった4・5行目は画面のプレビュー(見出しの下の5行)の中、止まらなかった7・13行目はその外でした。kintone ヘルプの「ファイルからレコードのデータをアプリに読み込む」には、列名が同じなのに自動の対応付けが(指定しない)になる原因の一つとして、日付や数値のフィールドに対応付けた列の先頭から5行目までに入力形式が不正なデータが含まれている可能性を挙げる補足があり、契約開始日の列が最初に自動で対応付けられなかったこととは合います。ただ、赤い帯の点検の範囲を述べた文ではないので、点検がプレビューの範囲に限られるというのは、今回の2つのファイルでの見え方からの推測にとどまります。ランクなどの列を対応付けて帯が出なかったのも、各1回の観察です。[読み込みを中止する]を選んだときの動き、UTF-8 の CSV、実在するログイン名を書いた営業担当の入り方、担当だけを後から入れる方法、先頭の0を文字に直した Excel ブックの読み込み、共通管理からのユーザーの書き出し、画面からのレコードの一括削除は試していません。この進め方で移行の手間がどれだけ減るかも、測っていません。
この台帳の点検に使った Excel の式
台帳は1行目が見出しで、A列が顧客コード、B列が会社名、C列が契約開始日、D列が月額、E列がランク、F列が営業担当、G列が備考、2〜31行目が30社分です。点検の式は2行目に入れて、下へ写します。どれも Excel(XLOOKUP は Microsoft 365 か Excel 2021 以降)で、台帳の写しに入れて結果を確かめました。
- 日付が Excel の日付になっているか。FALSE の行が文字の日付です(空のセルも FALSE)。この台帳では 4・7・10行目。
=ISNUMBER(C2) - 金額が数値になっているか。5・13行目が FALSE。
=ISNUMBER(D2) - ランクが選択肢と1文字も違わないか。EXACT は全角と半角、大文字と小文字を見分けます。6・11・16行目が FALSE。
=SUMPRODUCT(--EXACT(E2,{"A","B","C"}))=1 - 顧客コードが重複していないか。21・22行目が TRUE。
=COUNTIF($A$2:$A$31,A2)>1 - 会社名の前後の空白を取る。間の空白が続くところは1つにします。Microsoft のサポートは、TRIM は半角の空白(値 32)を取るためのもので、Web ページなどから写した、改行しない空白(値 160)は取れない、としています。当社の Excel(バージョン 16.0)では、全角の空白も取れました。
=TRIM(B2) - 別のシート「対応表」(A列に台帳の営業担当、B列にログイン名)から、ログイン名を写す。対応表に無い値は「未対応」と出ます。
=XLOOKUP(F2,対応表!$A:$A,対応表!$B:$B,"未対応") - ランク B の行数と月額の合計。突き合わせでは、分類ごとにこの2つを並べます。COUNTIF と SUMIF は大文字と小文字を区別しないので、ランクを直した後の台帳で使います。
=COUNTIF($E$2:$E$31,"B")=SUMIF($E$2:$E$31,"B",$D$2:$D$31)
kintone のアプリには、月額(列名は「月額」、フィールド名は「月額(円)」)を除いて、列名と同じ名前のフィールドを置いています。ヘルプは、列名をフィールド名と同じにしておくと自動で対応付けられる、としています。台帳は Excel の「CSV(コンマ区切り)」で書き出して読み込みました。
まずは、自社の台帳の列を1枚の表に並べる
明日できるのは、自社の台帳の列を縦に並べ、列ごとに kintone のどの種類のフィールドに入れるかを書き、値の例を拾って、そのまま入る・直してから入る・止まらずに違う値で入る、のどれかに印を付けることです。「止まらずに違う値で入る」に印が付いた列が、移行の日にいちばん確かめる列になります。
手間がかかるのは、列の仕分け表づくりと、営業担当のログイン名の対応表、移した後の件数と合計の突き合わせです。当社の kintone 導入支援では、今の Excel の項目を洗い出して kintone のアプリの形に落とし込むところから受けていて、必要な工程だけの依頼もできます。台帳の移行の作業の一部を手伝ってほしいときは、Excel や紙で回している管理を kintone のアプリとして設計・構築する、kintone 導入支援のページからご相談ください。
kintone導入・内製化支援
kintoneを現場の業務に合わせて設計・構築し、Excelや紙業務の置き換え、他システムとのデータ連携、社内メンバー自身が改修・運用できる内製化までを支援します。
