jisalab SaaS

スプレッドシート運用からSaaSへ移行する手順:列より先に「1行が何を指すか」を決める(2026)

「スプレッドシートからSaaSへ移す」という見出しのアイキャッチ。サブタイトルは「列より先に『1行が何を指すか』を決める4つの手順」。①1行の定義とキーを決める、②1行1件の形に直す、③まず10行だけ取り込む、④二重管理を終える日を決める、の4点が横に並び、①だけが明るい緑で強調されている。脚注は「4手順の構成は jisalab編集部の整理(2026年9月21日)」。 SaaS
この記事の結論(先に3行)
  • 表計算の台帳をNotionやAirtableへ移すときは、列の設計より先に「1行が何を指すか」と「その行を一意に指す列(キー)」を決めることを勧めます(編集部)。
  • 理由は、キーで突き合わせる取り込みの挙動です。AirtableのCSV import extensionの公式ヘルプは、CSVでキーが同じ行が複数あると最初の行だけを使って以降は無視し、キーが空欄の行は新しいレコードとして作ると書いています。
  • 手順は4つです。300行の台帳なら、切り替え1週間後の見直しを含めた作業時間の合計で約5時間30分が目安です(編集部の試算。話し合いは人数を掛けず所要時間で計上)。

「同じ台帳のコピーが何枚もあって、どれが最新か分からない」「同じ案件が二重に入っている」。この記事は、表計算で回している台帳を、NotionやAirtableのようなデータベース型のSaaSへ移す手順をまとめました。対象は、中小〜中堅企業の営業リーダー、バックオフィス、情シスの担当者です。

最終更新: 2026年9月21日/Notion と Airtable の公式ヘルプ・料金ページは同日に取得して確認しています。料金と上限は変わることがあるため、契約前に公式ページもご確認ください。本文で「(編集部)」と付けた箇所は jisalab編集部の整理・推奨・試算で、公式資料の記載ではありません。英文の引用に添えた訳も編集部によるものです。

なぜ「列を作ってコピペ」では終わらないのか

表計算の表は人が読む前提で作られています。空行や小計行も、取り込むと1件のデータとして扱われることがあります(編集部)。

表計算の台帳には、取引先ごとに1行あける空行、月ごとの小計行、2行にまたがる備考、セルの色で表した「急ぎ」、年度別に分かれたシートが混ざりがちです。人は行をまたいで文脈を補えますが、CSVに書き出すと、残るのは1行ずつの値だけです。

そこで取り込む前に2つを決めます。1行が何を指すか(以下「1行の定義」)と、その行を一意に指す列(キー)です。キーは、後から差分を取り込んだり間違いを直したりするときに、CSVの行と移行先の行を突き合わせる手がかりになります。

「スプレッドシートからSaaSへ移す4つの手順」の図解。左の枠「先に決めること」に手順①(1行の定義とキーを決める)が濃い緑で強調されて入り、そこから右の枠「手を動かすこと」の手順②(1行1件の形に直す)へ矢印が伸び、手順③(まず10行だけ取り込む)、手順④(二重管理を終える日を決める)へ順につながる。サブタイトルは「列を設計する前に、1行の定義とキーを決める」。下の帯は、Airtableの取り込み拡張のマージ時に、CSV内でキーが重複した行と空欄の行がどう扱われるか。最下段はキーの3条件。
「先に決めること」と「手を動かすこと」に分けた4つの手順(jisalab編集部の整理・作図/2026年9月21日)。番号は本文の見出しと同じです。

手順①:1行の定義と、キーを決める

「この表の1行は◯◯1件である」と1文で書きます。書けないなら、表が2つ分の役割を持っています。先に分けます。

最初に、いまの表を開いて次の1文を埋めます。「この表の1行は、◯◯1件を表す」。案件管理なら「商談1件」、備品台帳なら「備品1点」、契約管理なら「契約1本」です。

ここで詰まる表は、たいてい2つの役割を兼ねています。よくあるのが、商談の一覧に見積の明細行が混ざっている表です。この場合は「商談」と「見積明細」の2つに分け、商談番号でつなぎます。分けずに移すと、SaaS側で件数を数えるたびに数字が合わなくなります。

1行の定義が決まったら、キーにする列を選びます。条件は3つです。Airtableの公式ヘルプが突き合わせに使う列について望ましいとしているのは一意の値で、残りの2つは編集部が加えた条件です。

キーにする列の条件
条件 公式ヘルプの記載(Airtable) 向かない列(編集部) 向く列(編集部)
重複しない 「ideally containing a unique value like an ID number or email address」(IDやメールアドレスのような一意の値が望ましい) 取引先名(同名企業や表記ゆれで重複する) 案件番号、管理番号
空欄がない 空欄の行は新しいレコードとして作られる 途中から入力を始めた列 行を作るときに必ず振る番号
後から変わらない ―(編集部の条件) 案件名、ステータス、メールアドレス(改姓・異動・ドメイン統合で変わる) 案件番号、社員番号、社内のアカウントID

メールアドレスはAirtableの例示にあり一意性は満たしますが、変わりうるため、この記事ではキーにしません(編集部)。適当な列が無ければ、表計算側で連番を振り、値として固定してから移します。重複は、キーの列(ここではA列)の隣に =COUNTIF(A:A,A2) を入れ、2以上の行が無いかで確かめられます。

キーが効くのは、既存の行に突き合わせて取り込むときです。AirtableのCSV import extension(公式ヘルプの提供プランは「All paid plans」)は、CSVから新しいレコードを追加することも、突き合わせに使うフィールドを指定して既存のレコードにマージすることもできます。マージ時の挙動は次のとおりです。

「If the CSV file contains multiple rows which contain the same value for the merge field, the extension will only use the first of those rows, and subsequent rows will be ignored.」(CSVファイルの中に、マージ対象のフィールドが同じ値の行が複数ある場合、拡張機能は最初の行だけを使い、以降の行は無視します)

ここでいうマージ対象のフィールドが、この記事のキーです。CSV側でキーが重複していると、2行目以降の内容は反映されません。同ページは、キーが空欄の行は新しいレコードとして作られること、逆にテーブル側で同じキーのレコードが複数あると、一致するCSVの行があればそのすべてが更新されることも書いています。そのうえで「Deduplicate before you import, or merge on a unique field」(取り込む前に重複を除くか、一意なフィールドでマージする)と勧めています。

一方、Notionの公式ヘルプは「インポートでは行が追加されます。既存の行は更新されないため、重複がないか確認してください。」と書いています。取り込みの型は2つで、Notionは行を足すだけ、AirtableのCSV import extensionはキーで既存レコードを更新できます。移行後もCSVで取り込み続けるなら、この違いが効きます。選び方の全体像はプロジェクト管理SaaS比較にまとめています。

手順②:いまの表を1行1件の形に直す

空行・小計行・結合セル・色分けを外し、1行に1件だけが入った状態にします。色で表していた情報は列に起こします。

ここは表計算側の作業で、移行のうち最も時間がかかる工程です。コピーが何枚も出回っているなら、まず正とする1枚を決め、他のコピーにしかない更新をその1枚に集めてから直します。直す対象は次の5つです。

表計算の「見やすくする工夫」が、取り込みで何になるか
いまの表にあるもの 取り込むとどうなるか(編集部) 直し方
区切りの空行、月ごとの小計行 中身が空、または合計値だけの行が1件として作られる 削除する。小計は移行先の集計機能で出す
セルの色で表した「急ぎ」「保留」 CSVは色を持てないため、書き出した時点で消える 「優先度」「状態」の列を作り、文字で入れる
2つのセルを結合した見出し・備考 値は1つのセルにだけ残り、ほかの行は空欄になることが多い 結合を解除し、各行に値を入れる
数式で出している列(合計、残日数など) CSVには計算結果の値だけが入る 移行先で計算する列として作り直す
年度ごとに分かれた複数のシート 1つのCSVにはまとまらない 「年度」列を足して1枚に統合してから書き出す

「取り込むとどうなるか」は、CSVという形式を通すことによる一般的な結果の整理です(編集部)。数式について、Notionの公式ヘルプは「新しいCSVインポートでは」新しいロールアップや数式を作成できず、インポート後にNotionで再構築する必要があるとしています。

日付の列は1つの書式に揃えます。Notionに入れるなら、公式ヘルプの「日付はMM/DD/YYYYの形式でインポートします。」という案内どおりMM/DD/YYYYにします。Airtableの日付の書式は公式ヘルプで確認していないため、手順③の10行で日付として入ったかを確かめてください。書き出しはUTF-8のCSVを勧めます(編集部)。Notionの公式ヘルプも、文字化けしたときはUTF-8として再エクスポートするよう案内しています。

手順③:まず10行だけ取り込む

全件をいきなり入れません。10行で列の対応と書式を確かめ、直してから全件を入れます。上限は先に見ておきます。

取り込む前に、プランごとの上限を確認します。

移行前に見ておく上限と料金(2026年9月21日に各社公式で確認)
ツール・プラン 1人あたり月額(年払い時) 月払い時 円換算(目安、年払い/月払い) 移行で効く上限
Notion フリー ¥0 ¥0 公式が円建て CSVは1ファイル5MB
Notion プラス ¥1,650 ¥2,000 公式が円建て CSVは1ファイル50MB
Notion ビジネス ¥3,150 ¥3,800 公式が円建て CSVは1ファイル50MB
Airtable Free $0 $0 ¥0 1ベース1,000レコード。拡張機能は使えない
Airtable Team $20 $24 約3,160円/約3,790円 1ベース50,000レコード
Airtable Business $45 $54 約7,110円/約8,530円 1ベース125,000レコード

円換算は、欧州中央銀行が2026年9月18日に公表した参考相場(EUR/USD 1.1460、EUR/JPY 180.94。9月21日の取得時点で最新)から編集部が算出した1米ドル=157.9円による目安です。同行は米ドル/円を直接公表していません。Notionの料金ページには「日本の消費税(該当する場合)」との注記があります。AirtableのCSV import extensionの上限(25,000行・5MB)はプランによらず有料プラン共通です。Notionのデータベースの行数上限は公式ページで確認できませんでしたが、複数のメンバーで使うフリープランにはブロック数の上限があります。

次に、10行ほどの小さなCSVで、列がねらいどおりの項目に対応しているか、日付と金額が正しい型で入っているか、日本語が化けていないかの3点を見ます。全件を入れる前に、試した10行(またはテスト用に作ったデータベース)は削除します。Notionは行を追加するだけなので、残すと10行が二重になります。Airtableでキーを指定してマージするならCSVの値で更新されるので、削除は要りません。全件を取り込んだCSVは、手順④で使うので保存しておきます。

AirtableのCSV import extensionのヘルプは、フィールドが受け付けられない値があっても取り込みは止まらず、そのセルが空欄になると書いています。エラーなく終わっても全部入ったとは限らないため、同ヘルプは取り込み後に数件を元のファイルと見比べるよう勧めています。単一選択・複数選択のフィールドは、既存の選択肢に無い値は「Create missing select options」をオンにしないと空欄になります(オンにできるのはベースのOwnerとCreator)。

手順④:二重管理を終える日を決める

取り込みが済んでも、旧シートやそのコピーへの入力が続くと台帳が2つに割れます。切り替え日を決め、旧シートとコピーを読み取り専用にします。

残りは、更新の入口を1つにする作業です。手順③で全件を入れてから切り替え日までの準備期間は、旧シートを正とし、移行先は編集しません(編集部)。両方で直すと、どちらが新しいかをキーでは判断できなくなるためです。

  1. 切り替え日を決めて周知する: 「この日から入力は新しい側だけ」と日付で示します
  2. その日に、旧シートと出回っているコピーを読み取り専用にする: 共有設定を閲覧のみに変え、ファイル名の先頭に「【参照のみ】」などを付けます。メール添付や個人フォルダのコピーも同じ扱いです。消さずに残せば、やり直すときの元データになります
  3. 書き出し直して差分を洗い出す: 旧シートを書き出し直し、手順③で保存したCSVとキーで突き合わせます。キーで分かるのは「どの行か」だけなので、値が変わった行・増えた行・消えた行の3種類を拾います。手順②で「最終更新日」列を作っておくと絞りやすくなります
  4. 差分を反映する: 下の表のとおりです
準備期間中の差分の反映方法
使う取り込み 値が変わった行 増えた行 消えた行
NotionのCSVインポート(行を追加するのみ) 数件なら移行先で手で直す。多ければ変わった行だけのCSVを追加して古い行を消す(その間はキーが重複するので1回の作業で終える) 増えた行だけのCSVを取り込む 移行先で手で消す
AirtableのCSV import extension(有料プラン) 切り替え日のCSV全件をキーでマージし直す。画面下に更新・変更なし・新規作成の件数が出るので、洗い出した差分の数と照らし合わせる 公式ヘルプはマージでの削除の動作を説明していないので、手で消す(編集部)

下の試算の手順④(30分)は、差分が数件の場合の目安です(編集部)。準備期間を1〜2週間に区切ると、差分を少なく保てます。

300行の台帳を移す場合の作業時間(jisalab編集部の試算。話し合いは所要時間で計上)
工程 やること 目安
手順① 1行の定義とキーを決める(担当2〜3人で話す) 60分
手順② 正とする1枚を決め、空行・小計・結合セル・色分けを解消して書き出す 120分
手順③ 10行で試し、直してから全件を取り込む 60分
手順④ 切り替え日の周知、旧シートとコピーの読み取り専用化、差分(数件)の洗い出しと反映 30分
1週間後 件数とキーの重複の再確認、重複登録の整理 60分
合計 ― 330分(約5時間30分)

前提は「5人前後のチームが1枚のスプレッドシートを共同編集していて、手元にはそのコピーも出回っている。台帳は300行ほど」という状態です(編集部の前提)。手順②は表の状態で大きく変わり、結合セルや複数シートが多い表では倍かかることもあります。最初の50行を直した時点で、実測値に置き換えてください。

職種ごとの使いどころ

1行の定義とキーは扱う台帳で決まります。3つの台帳での置き方の例です(編集部)。
台帳ごとの1行の定義とキーの例(編集部)
台帳 1行の定義 キーの例 重くなりやすい手順
営業の案件管理 商談1件 案件番号 手順①(商談と見積明細を分ける)
備品・契約の台帳 備品1点/契約1本 管理番号 手順②(期限の日付列の書式を揃える)
情シスのアカウント台帳 アカウント1件 社内のアカウントIDや社員番号(無ければ連番) 手順①(メールアドレスをキーにしない)

情シスの台帳でメールアドレスを突き合わせに使うなら、AirtableのCSV import extensionのヘルプが、照合は大文字と小文字を区別する(「case-sensitive」)一方、前後の空白は無視すると書いている点に注意します。使う前にCSV側とテーブル側の両方を小文字に揃えてください。

次に取る行動(チェックリスト)
  • 移したい表を開き、「この表の1行は◯◯1件を表す」を1文で書く。書けなければ表を分ける
  • 重複しない・空欄がない・後から変わらない列をキーに決める。無ければ連番を振る
  • コピーが複数あれば正とする1枚を決め、空行・小計行・結合セル・色分けを外す
  • 日付の列を1つの書式に揃え(NotionならMM/DD/YYYY)、UTF-8のCSVで書き出す
  • 10行だけ取り込み、日付と金額の型、文字化けを確認し、数件を元の表と見比べる。全件を入れる前に試した10行を消す(Airtableでキーでマージするなら不要)
  • 切り替え日まで移行先は編集しない。当日に旧シートとコピーを読み取り専用にし、書き出し直したCSVで差分を反映する

よくある質問

取り込みに失敗したら、元に戻せますか?
ツールによります。AirtableのCSV import extensionのヘルプは、取り込み前にベースのスナップショットを取るよう勧め、マージを誤ったときはスナップショットを復元すれば以前の版に戻せると書いています。Notionの「データのインポート」のページには、CSVインポートを取り消す手順は見当たりませんでした。どちらのツールでも、手順③の10行テストを経てから全件を入れてください。
無料プランのまま移行できますか?
ツールとプランによります。Airtableの公式ヘルプでは、Freeプランは1ベースあたり1,000レコードが上限で、拡張機能(Extensions)はFreeプランで使えない機能に挙がっています。そのため、キーで既存レコードに差分を反映するCSV import extensionはFreeでは使えません。Freeで使えるほかの取り込み方法は、この記事では確認していません。Notionはフリープランでも1ファイル5MBまでCSVを取り込めます。データベースの行数上限は公式ページで確認できませんでしたが、料金ページには「フリープランのワークスペースを複数のメンバーで使用している場合はブロック数に制限があり、それ以上のブロックを追加するにはアップグレードを行う必要があります。」とあります。取り込みのヘルプによると、インポートしたブロックはこの制限に数えられず、インポートしたページ内にあとから作成したブロックは数えられます。移行前に3年後の行数を見積もり、上限が公表されているツールではその数字と比べてください。
全部を一度に移すべきですか、1つの表から試すべきですか?
1つの表から始めることをおすすめします。理由は、手順②で必要な作業量が表ごとに大きく違い、最初の1つを終えるまで見積もれないためです。選ぶなら、複数人が毎日触っていて、かつ表としては単純な台帳が向いています。他の表から参照されている表や、関数で他ファイルとつながっている表は、つながりごと移す必要があるので後回しにしてください。
出典
  • Notion ヘルプセンター「データのインポート」 notion.com(2026年9月21日取得。CSVのファイルサイズ上限、行の追加、日付形式、UTF-8、データ型の混在、数式、インポートしたブロックの扱い)
  • Airtable Help Center「CSV import extension」 support.airtable.com(2026年9月21日取得。All paid plans、25,000行・5MB、マージ対象フィールドの重複・空欄の挙動、大文字小文字の区別、受け付けられない値・選択肢の扱い、マージ時の件数表示、スナップショット)
  • Airtable Help Center「Airtable plans overview」 support.airtable.com(2026年9月21日取得。1ベースあたりのレコード上限、プラン料金、Freeプランで使えない機能)
  • Notion「料金プラン」 notion.com(2026年9月21日取得。年払い時の表示価格と月払いの価格、フリープランのブロック数制限)
  • 欧州中央銀行「Euro foreign exchange reference rates」 ecb.europa.eu(2026年9月18日公表値を9月21日に取得。円換算の参考相場。日次XMLは最新日分のみのため、過去分は同ページの履歴データで確認できます)
本記事は各社の公式ヘルプ・料金ページの記載にもとづく解説で、編集部による製品の実測(検証)は行っていません(検証済印は付いていません)。「(編集部)」と付けた整理・条件・例・試算は jisalab編集部の設計と前提によるものです。

タイトルとURLをコピーしました