小さな会社の顧客名簿や予約の一覧、在庫の表は、たいていスプレッドシートから始まります。始めるのは簡単ですが、決めずに作ると、半年後に「同じお客さんが3行ある」「誰かが並べ替えて列がずれた」「どれが最新か分からない」という表になります。この記事では、料理教室「サンプル料理教室」の会員台帳・予約一覧・材料の在庫を例に、作る前に決めること、列の設計、入力をそろえる機能、見やすくする機能、テーブル機能の使い方を順に書きます。読み終わると、受付2人と講師3人が同時に使っても崩れにくい台帳を作れて、スプレッドシートを卒業する時期も判断できます。Googleスプレッドシートを開いてセルに入力できる程度の操作が前提です。画面の名前と上限の数字は2026年10月時点のものです。
この記事の内容
先に決めること
台帳づくりで時間がかかるのは、作る作業より決める作業です。次の5つを紙に書いてから作り始めます。
1行に何を入れるか
台帳の1行は「1つのもの」にします。会員台帳なら1行が1人の会員、予約一覧なら1行が1件の予約、在庫なら1行が1つの材料です。
よくある崩れ方は、会員台帳の右側に「10月の出席」「11月の出席」と月の列を足していく作り方です。月が進むたびに列が増え、1年で列が12本増えます。出席は「誰が・いつ・どのレッスンに出たか」という別のものなので、別のシート(出席記録)に1回1行で入れます。会員台帳には会員の情報だけを置きます。
迷ったら「この情報は1人に1つか、何度も起きるか」で分けます。住所や入会日は1人に1つなので会員台帳に、出席や支払いは何度も起きるので別のシートにします。
IDの付け方
1行を見分ける番号(ID)を、最初の列に必ず置きます。名前で見分けようとすると、同姓同名や表記の揺れ(「山田花子」と「山田 花子」)で必ず破綻します。
| 台帳 | IDの形 | 例 | 付け方 |
|---|---|---|---|
| 会員台帳 | M+4桁 | M0001 | 入会時に受付が次の番号を振る |
| 予約一覧 | R+年月+3桁 | R202611-001 | 予約を受けた順に振る |
| 材料の在庫 | 分類の頭文字+3桁 | F001(粉類)、S001(調味料) | 材料を登録したときに振る |
IDには、=ROW() のような行番号から作る式を使いません。並べ替えたり行を挿入したりすると番号が変わり、別の台帳から参照していた値がずれます。IDは一度振ったら変えない値として、文字で入れます。退会した人の番号も使い回しません。
誰が入力するか
同じ台帳に何人が書き込むかで、作り込み方が変わります。サンプル料理教室では次のように分けています。
| 台帳 | 書く人 | 見るだけの人 |
|---|---|---|
| 会員台帳 | 受付2人 | 代表、講師3人 |
| 予約一覧 | 受付2人(フォームからの自動入力もあり) | 代表、講師3人 |
| 出席記録 | 講師3人 | 受付、代表 |
| 材料の在庫 | 講師3人 | 代表 |
書く人が多い台帳ほど、プルダウンや入力規則で入力を縛ります。見るだけの人には閲覧の権限だけを渡し、見たい形はフィルタ表示で各自が作ります。権限と範囲の保護は「スプレッドシートの共有と保護:権限・範囲の保護・プルダウン」に書いています。
どこまでスプレッドシートでやるか
スプレッドシートは「表を持つ」のは得意で、「手順を守らせる」のは苦手です。入金の消し込み、承認の順番、スマホからの現場入力といった「手順」まで台帳に持たせようとすると、式と色分けが増えて誰も直せない表になります。最初に、スプレッドシートでやるのは記録と集計まで、と決めておきます。手順を持たせたくなったら、後ろの節の移る目安を見ます。
ファイルを1つにするか、分けるか
会員台帳・予約一覧・出席記録・在庫を1つのファイルのシートに分けるか、別々のファイルにするかを決めます。見る人と書く人が同じなら1ファイルにまとめます。経理の担当や外部の税理士に見せる請求の表のように、見る人が違うものはファイルを分けます。スプレッドシートの共有はファイル単位なので、シートごとに「この人には見せない」はできません。
サンプル料理教室では、会員台帳・予約一覧・出席記録を「教室台帳」という1ファイルにまとめ、共有ドライブの「会員」に置いています。材料の在庫は講師が書くので「レッスン」に別ファイルで置き、請求は「経理」に別ファイルで置いています。
列設計の例
会員台帳
| 列 | 見出し | 入れ方 | 例 |
|---|---|---|---|
| A | 会員番号 | 文字(変えない) | M0012 |
| B | 氏名 | 文字 | 山田 花子 |
| C | フリガナ | 文字 | ヤマダ ハナコ |
| D | 電話番号 | 文字(先頭の0を消さない) | 09000000000 |
| E | メールアドレス | 文字(入力規則でメールの形) | hanako@example.com |
| F | コース | プルダウン | 和食の基本コース |
| G | 入会日 | 日付(入力規則) | 2026/10/15 |
| H | 状態 | プルダウン | 在籍・休会・退会 |
| I | 退会日 | 日付 | (空) |
| J | アレルギー | 文字 | えび |
| K | 担当講師 | プルダウン | 佐藤 |
| L | 体験の受付番号 | 文字 | T00031 |
| M | メモ | 文字 | 平日夜を希望 |
退会した人の行は消さずに、状態を「退会」にして退会日を入れます。行を消すと、過去の出席や請求の記録から会員番号をたどれなくなります。L列に体験申込の受付番号を残しておくと、体験から入会までの流れを後で数えられます。
予約一覧
| 列 | 見出し | 入れ方 | 例 |
|---|---|---|---|
| A | 予約番号 | 文字 | R202611-004 |
| B | レッスン日 | 日付 | 2026/11/08 |
| C | 時間帯 | プルダウン | 10:30〜12:30 |
| D | レッスン名 | プルダウン | 和食の基本 第3回 |
| E | 会員番号 | 文字(会員台帳にある番号だけ) | M0012 |
| F | 氏名 | 式(会員番号から引く) | 山田 花子 |
| G | 予約の種類 | プルダウン | 通常・振替・体験 |
| H | 状態 | プルダウン | 予約中・出席・欠席・キャンセル |
| I | 出席 | チェックボックス | オン |
| J | メモ | 文字 | 10分遅れる |
F列の氏名は、手で入れずに会員番号から引きます。F2に次の式を入れて下までコピーします。
=IF(E2="", "", XLOOKUP(E2, 会員台帳!A:A, 会員台帳!B:B, "番号なし"))

氏名を手で入れると、会員台帳で名前を直したときに予約一覧が古いままになります。会員番号だけを入れて名前は引く、が台帳を分けたときの基本です。XLOOKUPやIMPORTRANGEの使い方は「スプレッドシートの関数:業務で使うXLOOKUP・QUERY・IMPORTRANGE」に書いています。
材料の在庫
| 列 | 見出し | 入れ方 | 例 |
|---|---|---|---|
| A | 材料番号 | 文字 | F003 |
| B | 材料名 | 文字 | 強力粉 |
| C | 分類 | プルダウン | 粉類・調味料・乳製品・消耗品 |
| D | 単位 | プルダウン | kg・本・個・袋 |
| E | 在庫数 | 数値(0以上) | 4 |
| F | 発注点 | 数値 | 3 |
| G | 発注先 | プルダウン | 業務用食材店A |
| H | 最終確認日 | 日付 | 2026/10/27 |
| I | 確認した人 | プルダウン | 鈴木 |
| J | 要発注 | 式 | 要発注 |
J列は、在庫数が発注点を下回ったら「要発注」と出す式にします。J2に =IF(E2="", "", IF(E2<=F2, "要発注", "")) を入れて下までコピーします。在庫の表で大事なのは、数字そのものより「いつ誰が数えたか」です。H列とI列が空のまま数字だけ更新されている表は、信用されなくなります。
在庫は「入った・使った」を1回1行で記録して合計を出す作り方もありますが、小さな教室では、週に1回講師が棚を数えて在庫数を上書きする作り方で十分です。入出庫まで記録したくなったら、それは移る目安の1つです。

入力をそろえる
台帳が崩れる原因のほとんどは、同じものが違う書き方で入ることです。「和食コース」「和食の基本」「和食基本コース」が混ざると、数えられなくなります。入力をそろえる機能を、列ごとに付けます。
| 機能 | 付け方 | 使う列 |
|---|---|---|
| プルダウン | 「挿入」から「プルダウン」 | コース、状態、担当講師、分類 |
| 範囲から作るプルダウン | 「データの入力規則」で「リストを範囲で指定」 | 講師名、発注先(一覧を別シートで管理) |
| チェックボックス | 「挿入」から「チェックボックス」 | 出席、発注済み |
| 日付の入力規則 | 「データの入力規則」で日付の条件 | 入会日、レッスン日、最終確認日 |
| 数値の入力規則 | 「データの入力規則」で数値の条件(0以上) | 在庫数 |
| テキストの入力規則 | 「データの入力規則」で「テキスト」の「次を含む」に @ | メールアドレス |
| 表示形式 | 「表示形式」から「数字」で「書式なしテキスト」 | 電話番号、会員番号 |
プルダウンを付ける
- 会員台帳のF列(コース)の2行目から下を選びます。
- 「挿入」から「プルダウン」を選びます。
- 右側の「データの入力規則」のパネルで、条件が「プルダウン」になっていることを確かめます。
- 1つ目の欄に「和食の基本コース」と入れます。
- 「別のアイテムを追加」を押し、「パンとお菓子のコース」「週末のおもてなしコース」を足します。
- 「詳細オプション」を開き、「データが無効の場合:」が一覧にない値を拒否する既定の設定のままになっていることを確かめます。
- 「完了」をクリックします。
講師名や発注先のように、人や取引先が増えたり減ったりする一覧は、別のシート(「一覧」シート)に縦に並べ、条件を「リストを範囲で指定」にしてその範囲を指定します。講師が1人増えたら「一覧」シートに1行足すだけで、全部のプルダウンに出ます。
「データが無効の場合:」を「警告を表示」にすると、一覧にない値も入れられるようになります。「その他」を許したい列以外は、拒否する既定の設定のままにします。
日付と数値を縛る
- 会員台帳のG列(入会日)を選びます。
- 「データ」から「データの入力規則」を選びます。
- 「ルールを追加」をクリックします。
- 条件で、有効な日付だけを受け付ける日付の条件を選びます。
- 「データが無効の場合:」で拒否する側を選び、「完了」をクリックします。
日付の列は、入力規則を付けたうえで表示形式を「日付」にします。「10/15」と入れれば今年の10月15日として扱われます。「R8.10.15」や「10月15日」のような書き方が混ざると、文字として入ってしまい、並べ替えや集計で外れます。
電話番号の先頭の0を残す
電話番号の列にそのまま 09000000000 と入れると、数値と見なされて先頭の0が消えます。電話番号と会員番号の列は、先に列を選んで「表示形式」から「数字」の「書式なしテキスト」にしておきます。すでに0が消えた番号は、文字に変えてから入れ直します。

見やすくする
並べ替え
- 見出しの行を含めて、並べ替える範囲を選びます。
- 「データ」から「範囲を並べ替え」を選び、「範囲の並べ替え詳細オプション」をクリックします。
- 「データにヘッダー行が含まれている」をオンにします。
- 並べ替える列と順番(A→Z、Z→A)を選び、「並べ替え」をクリックします。
見出しの行は、先に「表示」から先頭行を固定しておくと、並べ替えたあとも上に残って作業しやすくなります。

列の見出しを右クリックして「シートを並べ替え」を選ぶと、1行目まで並べ替えに巻き込まれることがあります。台帳では、範囲を選んで並べ替えるか、次のフィルタを使います。
フィルタとフィルタ表示
フィルタは、シートを開いている全員に同じ絞り込みがかかります。受付が「在籍」だけに絞ると、講師が開いても「在籍」だけが見えます。講師が「休会の人はどこ」と探して見つからない、という混乱が本番の環境で起きました。複数人で使う台帳では、フィルタ表示を使います。
| 項目 | フィルタ | フィルタ表示 |
|---|---|---|
| 誰に効くか | 開いている全員 | 使っている人だけ |
| 名前と保存 | 名前なし、1つだけ | 名前を付けて複数保存できる |
| 閲覧だけの人 | 変えられない | 自分だけの一時的な表示を作れる(保存はされない) |
| 共有 | できない | 表示を付けたURLを渡せる |
| 使いどころ | 1人で使うシート | 複数人で使う台帳 |
フィルタ表示を作る手順です。
- 会員台帳のどこかのセルを選びます。
- 「データ」から「フィルタビューを作成」を選びます。
- H列(状態)の見出しのフィルタのアイコンを押し、「在籍」だけにチェックを入れます。
- F列(コース)で並べ替えます。
- 右上の「ビューを保存」から「保存」をクリックします。
- シート左上の「名前」に「在籍者 コース別」と入れて Enter を押します。
保存したフィルタ表示は「データ」の「表示を変更」から選べます。サンプル料理教室では「在籍者 コース別」「休会中」「今月の入会」の3つを作り、講師はこのうち見たいものを選ぶだけにしています。

条件付き書式
色は、目で探す手間を減らすためだけに使います。サンプル料理教室で入れている色は次の3つです。
| シート | 範囲 | カスタム数式 | 色 |
|---|---|---|---|
| 会員台帳 | A2:M | =$H2="退会" | 文字を灰色 |
| 会員台帳 | D2:D | =COUNTIF($D$2:$D,$D2)>1 | 背景を薄い黄色(電話番号の重複) |
| 材料の在庫 | A2:J | =AND($E2<>"",$E2<=$F2) | 背景を薄い赤(要発注) |
- 会員台帳のA2:Mを選びます。
- 「表示形式」から「条件付き書式」を選びます。
- 「セルの書式設定の条件」で「カスタム数式」を選びます。
- 「値または数式」に
=$H2="退会"と入れます。 - 書式設定のスタイルで文字の色を灰色にし、「完了」をクリックします。
式の $H2 の $ は「H列に固定して、行だけずらす」という意味です。これで、H列が「退会」の行は、行全体の文字が灰色になります。色のルールを増やしすぎると、何色が何の意味か誰も覚えていない表になります。3つか4つまでにして、意味をシートの上か「一覧」シートに書いておきます。

テーブルにする
Googleスプレッドシートには、範囲を「テーブル」に変える機能があります。テーブルにすると、列ごとに型(数字・テキスト・日付・プルダウン・チェックボックスなど)を決められ、型に合わない値に警告が出ます。見出しの固定、交互の色、フィルタも最初から付きます。
テーブルに変える手順
- 会員台帳の見出しを含む範囲(A1:M)を選びます。
- 「表示形式」から「テーブルに変換」を選びます。
- テーブル名を「Members」にします。
- G列(入会日)の列のメニューから、列の型を「日付」にします。
- H列(状態)の列の型を「プルダウン」にし、「在籍」「休会」「退会」を入れます。
- D列(電話番号)とA列(会員番号)は、列の型を「テキスト」にします。
選べる列の型は次のとおりです(2026年10月時点)。
| 型 | 中身 | 台帳での使いどころ |
|---|---|---|
| 数字 | 数値・割合・通貨 | 在庫数、月謝 |
| テキスト | 文字 | 氏名、会員番号、電話番号 |
| 日付 | 日付・日時・時間 | 入会日、レッスン日 |
| プルダウン | 選択肢から選ぶ | 状態、コース |
| チェックボックス | オン・オフ | 出席、発注済み |
| スマートチップ | ユーザー・ファイル・地図など | 担当講師(ユーザー) |
| なし | 型を決めない | メモ |
テーブルでできること
テーブルにすると、式の中で列を見出しの名前で指せます。在籍者の数は次の式で数えられます。
=COUNTIF(Members[状態], "在籍")
行を足しても範囲を直す必要がありません。テーブルの列の見出しでグループ化して表示することもでき、コースごとにまとめて件数を出す、といった見方がその場で作れます。テーブルのフィルタ表示も、使っている人だけに効きます。
予約一覧もテーブルにしておくと、行の追加のたびにプルダウンやチェックボックスを下までコピーする手間がなくなります。Googleフォームの回答を新しいスプレッドシートに保存した場合は、最初からテーブルの形式になっています。
テーブルで気をつけること
テーブルを「削除」すると、中のデータも一緒に消えます。テーブルの見た目だけをやめたいときは、テーブルのメニューから「表形式でないデータに戻す」を選びます。テーブル名には、数字で始まる名前、A1 のようなセルの番地と同じ名前、アンダースコア以外の記号は使えません。名前に空白を入れると、式の中では空白がアンダースコアに置き換わります。最初から空白なしの英字で付けておくほうが迷いません。この記事でテーブル名を「Members」にしているのはそのためです。

サンプル料理教室の台帳の全体
ここまでの台帳を、教室の仕事の流れに並べると次のようになります。
| 場面 | 書くシート | 書く人 | 次につながるもの |
|---|---|---|---|
| 体験の申込 | 予約一覧(フォームの回答から) | 自動 | 受付が状況を付ける |
| 入会 | 会員台帳 | 受付 | 会員番号を振る |
| レッスンの予約 | 予約一覧 | 受付 | 会員番号から氏名を引く |
| 出席 | 出席記録 | 講師 | 月謝の請求の数に使う |
| 材料の確認 | 材料の在庫 | 講師 | 要発注の行を代表が発注 |
| 月末 | 請求の表(経理のファイル) | 代表 | GASで請求書のPDFを作る |
体験申込の回答から予約一覧を作る形は「フォームの回答をスプレッドシートで管理する:確認・集計・対応状況」に書いています。月末の請求書は、出席記録と会員台帳を引いてGASでPDFにしています。
応用
入力用のシートと一覧のシートを分ける
会員台帳を直接触るのが不安な場合は、入力用のシートを作り、そこから会員台帳へ行を足すGASを置く作り方もあります。ただ、ここまで作り込むなら、次に書くAppSheetに移るほうが早く、後から直す人も困りません。
シートの変更履歴で戻す
誰かが誤って列を消したときは、「ファイル」の「変更履歴」から、その前の版を開いて値をコピーし直せます。版ごと戻すと、その後に入力された分も消えるので、戻すより「前の版から必要な範囲だけコピーする」が安全です。
講師がスマホで入れる
出席や在庫をスマホのGoogleスプレッドシートのアプリで入れることもできます。小さな画面で横に長い表を触ると、別の行に入れる事故が起きやすくなります。スマホで入れる列が3つ以上あるなら、AppSheetで入力の画面を作ります。
スプレッドシートでやり続けると困ること
スプレッドシートの台帳は、ある規模を超えると急に扱いにくくなります。何が起きるかと、移る先を並べます。
| 困りごと | 起きること | 目安 | 移る先 |
|---|---|---|---|
| 同時に書く人が多い | 同じ行を2人が直す、並べ替えで他の人の入力位置がずれる | 書く人が5人を超える | AppSheet、kintone |
| スマホからの入力 | 横長の表で入れ間違える | 現場でスマホから毎日入れる | AppSheet |
| 件数 | 式が重くなり、開くのに時間がかかる | 1ファイル2,000万セルが上限、その手前で重くなる | kintone、データベース |
| 権限 | 行ごとに「この人には見せない」ができない | 講師ごとに担当の会員だけ見せたい | AppSheet、kintone |
| 手順 | 承認・通知・入力の順番を守らせられない | 「受付が入れたら代表が承認」が要る | kintone、AppSheet |
| 変更の記録 | 誰がいつどの値を変えたか追いにくい | 金額や契約の変更を記録したい | kintone |
| 台帳同士のつながり | XLOOKUPが増え、どこかで番号がずれる | シートが5枚を超えて参照し合う | kintone |
スプレッドシートの上限は、1ファイルあたり2,000万セルまたは100MBです(2026年10月時点)。ただ、上限に当たる前に、XLOOKUPや条件付き書式が増えて動きが重くなるほうが先に来ます。
AppSheetに移る目安
データはスプレッドシートのままでよく、「入力の画面」と「見せる範囲」だけを整えたいならAppSheetです。講師がスマホで出席を入れる、担当の会員だけを見せる、といったことができます。Google WorkspaceのBusiness Starter・Business Standard・Business Plusには、ドメインの所有権を証明したユーザーごとにAppSheet Coreのライセンスが含まれています(2026年10月時点)。今の台帳をそのまま元にしてアプリを作れるので、この記事の列設計が整っていれば移るのは難しくありません。作り方は「AppSheetの作り方:スプレッドシートから業務アプリを作る」に書いています。
kintoneに移る目安
台帳の数が増え、手順や承認、変更の記録、細かい権限まで必要になったら、kintoneのような業務アプリの仕組みが向きます。スプレッドシートのように自由に式を書く道具ではありませんが、そのぶん「決めた形でしか入らない」台帳になります。スプレッドシートに残すものとkintoneに移すものの分け方、つなぎ方は「スプレッドシートとkintoneの使い分けと、つなぎ方」に書いています。
サンプル料理教室の規模では、会員数が数百人、書く人が5人なので、スプレッドシートの台帳と講師用のAppSheetで十分に回ります。教室が2つ、3つと増えて、教室ごとに見せる範囲を分けたくなった時点が、kintoneを考える時期です。
できないことと、その代わり
| やりたいこと | スプレッドシートだけで | 代わりの手 |
|---|---|---|
| 行ごとに見せる人を変える | できない(共有はファイル単位) | ファイルを分ける、AppSheetやkintoneの権限 |
| 入力の順番や承認を強制する | できない | kintoneのプロセス管理、AppSheetのアクション |
| 列の型を完全に守らせる | 入力規則とテーブルの型で警告・拒否まで | 貼り付けは規則を通り抜けることがあるので定期的に見直す |
| 誰がどのセルを変えたか一覧で見る | セルごとの編集履歴は見られるが一覧は難しい | kintoneの変更履歴 |
| 在庫の入出庫を自動で数える | 式で作れるが壊れやすい | AppSheetで入出庫の画面を作る |
| 台帳の変化を通知する | 「通知設定」でメール通知のみ | GASかn8nでChatやLINEへ |
よく詰まるところ
| 症状 | 原因 | 直し方 |
|---|---|---|
| 電話番号の先頭の0が消える | 数値として入った | 列を「書式なしテキスト」にしてから入れ直す |
| 日付で並べ替えると順番がおかしい | 一部の日付が文字で入っている | 日付の入力規則を付け、文字の日付を入れ直す |
| 講師が開くと一部の会員しか見えない | 誰かがフィルタをかけたまま | フィルタを外し、各自はフィルタ表示を使う |
| 並べ替えたら氏名と電話番号がずれた | 一部の列だけを選んで並べ替えた | 「変更履歴」で前の版に戻す。並べ替えは範囲全体かフィルタで |
| プルダウンにない値が入っている | 「警告を表示」の設定、または貼り付けで入った | 一覧にない値を拒否する設定にする。貼り付けた値は条件付き書式で見つけて直す |
| XLOOKUPで「番号なし」が出る | 会員番号の前後に空白、全角と半角の違い | TRIM で空白を消す。番号は半角でそろえる |
| 同じ会員が2行ある | 再入会のときに新しい行を作った | 状態を「在籍」に戻して1行で持つ。重複は条件付き書式で見つける |
| テーブルを消したらデータも消えた | テーブルの「削除」を選んだ | 「変更履歴」から戻す。見た目だけやめるときは「表形式でないデータに戻す」 |
| 行を足したらプルダウンが付いていない | 入力規則の範囲が途中の行まで | 範囲を列の最後まで広げるか、テーブルにする |
| ファイルが重くて開かない | 列全体への式や条件付き書式が増えた | 使っていない式を消し、古い年の記録を別ファイルに移す |
| 色の意味が誰にも分からない | 条件付き書式を足し続けた | 3〜4つに絞り、意味をシートに書く |
次にやること
台帳ができたら、関数・共有・アプリへと広げます。
- スプレッドシートの関数:業務で使うXLOOKUP・QUERY・IMPORTRANGE
- スプレッドシートの共有と保護:権限・範囲の保護・プルダウン
- AppSheetの作り方:スプレッドシートから業務アプリを作る
- スプレッドシートとkintoneの使い分けと、つなぎ方