スプレッドシートで業務の台帳を作る:顧客・予約・在庫

公開 書いた人 大林 諒

小さな会社の顧客名簿や予約の一覧、在庫の表は、たいていスプレッドシートから始まります。始めるのは簡単ですが、決めずに作ると、半年後に「同じお客さんが3行ある」「誰かが並べ替えて列がずれた」「どれが最新か分からない」という表になります。この記事では、料理教室「サンプル料理教室」の会員台帳・予約一覧・材料の在庫を例に、作る前に決めること、列の設計、入力をそろえる機能、見やすくする機能、テーブル機能の使い方を順に書きます。読み終わると、受付2人と講師3人が同時に使っても崩れにくい台帳を作れて、スプレッドシートを卒業する時期も判断できます。Googleスプレッドシートを開いてセルに入力できる程度の操作が前提です。画面の名前と上限の数字は2026年10月時点のものです。

この記事の内容
  1. 先に決めること
  2. 列設計の例
  3. 入力をそろえる
  4. 見やすくする
  5. テーブルにする
  6. サンプル料理教室の台帳の全体
  7. 応用
  8. スプレッドシートでやり続けると困ること
  9. できないことと、その代わり
  10. よく詰まるところ
  11. 次にやること

先に決めること

台帳づくりで時間がかかるのは、作る作業より決める作業です。次の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, "番号なし"))
予約一覧のE列に会員番号を入れると、F列に氏名がXLOOKUPで表示されるところ
予約一覧のE列に会員番号を入れると、F列に氏名がXLOOKUPで表示されるところ

氏名を手で入れると、会員台帳で名前を直したときに予約一覧が古いままになります。会員番号だけを入れて名前は引く、が台帳を分けたときの基本です。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つです。

会員台帳の1行目に見出し、A列に会員番号、H列に「在籍・休会・退会」のプルダウンが並んでいるところ
会員台帳の1行目に見出し、A列に会員番号、H列に「在籍・休会・退会」のプルダウンが並んでいるところ

入力をそろえる

台帳が崩れる原因のほとんどは、同じものが違う書き方で入ることです。「和食コース」「和食の基本」「和食基本コース」が混ざると、数えられなくなります。入力をそろえる機能を、列ごとに付けます。

機能付け方使う列
プルダウン「挿入」から「プルダウン」コース、状態、担当講師、分類
範囲から作るプルダウン「データの入力規則」で「リストを範囲で指定」講師名、発注先(一覧を別シートで管理)
チェックボックス「挿入」から「チェックボックス」出席、発注済み
日付の入力規則「データの入力規則」で日付の条件入会日、レッスン日、最終確認日
数値の入力規則「データの入力規則」で数値の条件(0以上)在庫数
テキストの入力規則「データの入力規則」で「テキスト」の「次を含む」に @メールアドレス
表示形式「表示形式」から「数字」で「書式なしテキスト」電話番号、会員番号

プルダウンを付ける

  1. 会員台帳のF列(コース)の2行目から下を選びます。
  2. 「挿入」から「プルダウン」を選びます。
  3. 右側の「データの入力規則」のパネルで、条件が「プルダウン」になっていることを確かめます。
  4. 1つ目の欄に「和食の基本コース」と入れます。
  5. 「別のアイテムを追加」を押し、「パンとお菓子のコース」「週末のおもてなしコース」を足します。
  6. 「詳細オプション」を開き、「データが無効の場合:」が一覧にない値を拒否する既定の設定のままになっていることを確かめます。
  7. 「完了」をクリックします。

講師名や発注先のように、人や取引先が増えたり減ったりする一覧は、別のシート(「一覧」シート)に縦に並べ、条件を「リストを範囲で指定」にしてその範囲を指定します。講師が1人増えたら「一覧」シートに1行足すだけで、全部のプルダウンに出ます。

「データが無効の場合:」を「警告を表示」にすると、一覧にない値も入れられるようになります。「その他」を許したい列以外は、拒否する既定の設定のままにします。

日付と数値を縛る

  1. 会員台帳のG列(入会日)を選びます。
  2. 「データ」から「データの入力規則」を選びます。
  3. 「ルールを追加」をクリックします。
  4. 条件で、有効な日付だけを受け付ける日付の条件を選びます。
  5. 「データが無効の場合:」で拒否する側を選び、「完了」をクリックします。

日付の列は、入力規則を付けたうえで表示形式を「日付」にします。「10/15」と入れれば今年の10月15日として扱われます。「R8.10.15」や「10月15日」のような書き方が混ざると、文字として入ってしまい、並べ替えや集計で外れます。

電話番号の先頭の0を残す

電話番号の列にそのまま 09000000000 と入れると、数値と見なされて先頭の0が消えます。電話番号と会員番号の列は、先に列を選んで「表示形式」から「数字」の「書式なしテキスト」にしておきます。すでに0が消えた番号は、文字に変えてから入れ直します。

「データの入力規則」のパネルで、条件「プルダウン」に3つのコースを入れたところ
「データの入力規則」のパネルで、条件「プルダウン」に3つのコースを入れたところ

見やすくする

並べ替え

  1. 見出しの行を含めて、並べ替える範囲を選びます。
  2. 「データ」から「範囲を並べ替え」を選び、「範囲の並べ替え詳細オプション」をクリックします。
  3. 「データにヘッダー行が含まれている」をオンにします。
  4. 並べ替える列と順番(A→Z、Z→A)を選び、「並べ替え」をクリックします。

見出しの行は、先に「表示」から先頭行を固定しておくと、並べ替えたあとも上に残って作業しやすくなります。

「範囲の並べ替え詳細オプション」で「データにヘッダー行が含まれている」をオンにし、入会日で並べ替えを選んだところ
「範囲の並べ替え詳細オプション」で「データにヘッダー行が含まれている」をオンにし、入会日で並べ替えを選んだところ

列の見出しを右クリックして「シートを並べ替え」を選ぶと、1行目まで並べ替えに巻き込まれることがあります。台帳では、範囲を選んで並べ替えるか、次のフィルタを使います。

フィルタとフィルタ表示

フィルタは、シートを開いている全員に同じ絞り込みがかかります。受付が「在籍」だけに絞ると、講師が開いても「在籍」だけが見えます。講師が「休会の人はどこ」と探して見つからない、という混乱が本番の環境で起きました。複数人で使う台帳では、フィルタ表示を使います。

項目フィルタフィルタ表示
誰に効くか開いている全員使っている人だけ
名前と保存名前なし、1つだけ名前を付けて複数保存できる
閲覧だけの人変えられない自分だけの一時的な表示を作れる(保存はされない)
共有できない表示を付けたURLを渡せる
使いどころ1人で使うシート複数人で使う台帳

フィルタ表示を作る手順です。

  1. 会員台帳のどこかのセルを選びます。
  2. 「データ」から「フィルタビューを作成」を選びます。
  3. H列(状態)の見出しのフィルタのアイコンを押し、「在籍」だけにチェックを入れます。
  4. F列(コース)で並べ替えます。
  5. 右上の「ビューを保存」から「保存」をクリックします。
  6. シート左上の「名前」に「在籍者 コース別」と入れて Enter を押します。

保存したフィルタ表示は「データ」の「表示を変更」から選べます。サンプル料理教室では「在籍者 コース別」「休会中」「今月の入会」の3つを作り、講師はこのうち見たいものを選ぶだけにしています。

フィルタ表示「在籍者 コース別」を開き、シートの枠が濃い色になって「在籍」だけが表示されているところ
フィルタ表示「在籍者 コース別」を開き、シートの枠が濃い色になって「在籍」だけが表示されているところ

条件付き書式

色は、目で探す手間を減らすためだけに使います。サンプル料理教室で入れている色は次の3つです。

シート範囲カスタム数式色
会員台帳A2:M=$H2="退会"文字を灰色
会員台帳D2:D=COUNTIF($D$2:$D,$D2)>1背景を薄い黄色(電話番号の重複)
材料の在庫A2:J=AND($E2<>"",$E2<=$F2)背景を薄い赤(要発注)
  1. 会員台帳のA2:Mを選びます。
  2. 「表示形式」から「条件付き書式」を選びます。
  3. 「セルの書式設定の条件」で「カスタム数式」を選びます。
  4. 「値または数式」に =$H2="退会" と入れます。
  5. 書式設定のスタイルで文字の色を灰色にし、「完了」をクリックします。

式の $H2 の $ は「H列に固定して、行だけずらす」という意味です。これで、H列が「退会」の行は、行全体の文字が灰色になります。色のルールを増やしすぎると、何色が何の意味か誰も覚えていない表になります。3つか4つまでにして、意味をシートの上か「一覧」シートに書いておきます。

材料の在庫で、在庫数が発注点以下の行が薄い赤になっているところ
材料の在庫で、在庫数が発注点以下の行が薄い赤になっているところ

テーブルにする

Googleスプレッドシートには、範囲を「テーブル」に変える機能があります。テーブルにすると、列ごとに型(数字・テキスト・日付・プルダウン・チェックボックスなど)を決められ、型に合わない値に警告が出ます。見出しの固定、交互の色、フィルタも最初から付きます。

テーブルに変える手順

  1. 会員台帳の見出しを含む範囲(A1:M)を選びます。
  2. 「表示形式」から「テーブルに変換」を選びます。
  3. テーブル名を「Members」にします。
  4. G列(入会日)の列のメニューから、列の型を「日付」にします。
  5. H列(状態)の列の型を「プルダウン」にし、「在籍」「休会」「退会」を入れます。
  6. D列(電話番号)とA列(会員番号)は、列の型を「テキスト」にします。

選べる列の型は次のとおりです(2026年10月時点)。

型中身台帳での使いどころ
数字数値・割合・通貨在庫数、月謝
テキスト文字氏名、会員番号、電話番号
日付日付・日時・時間入会日、レッスン日
プルダウン選択肢から選ぶ状態、コース
チェックボックスオン・オフ出席、発注済み
スマートチップユーザー・ファイル・地図など担当講師(ユーザー)
なし型を決めないメモ

テーブルでできること

テーブルにすると、式の中で列を見出しの名前で指せます。在籍者の数は次の式で数えられます。

=COUNTIF(Members[状態], "在籍")

行を足しても範囲を直す必要がありません。テーブルの列の見出しでグループ化して表示することもでき、コースごとにまとめて件数を出す、といった見方がその場で作れます。テーブルのフィルタ表示も、使っている人だけに効きます。

予約一覧もテーブルにしておくと、行の追加のたびにプルダウンやチェックボックスを下までコピーする手間がなくなります。Googleフォームの回答を新しいスプレッドシートに保存した場合は、最初からテーブルの形式になっています。

テーブルで気をつけること

テーブルを「削除」すると、中のデータも一緒に消えます。テーブルの見た目だけをやめたいときは、テーブルのメニューから「表形式でないデータに戻す」を選びます。テーブル名には、数字で始まる名前、A1 のようなセルの番地と同じ名前、アンダースコア以外の記号は使えません。名前に空白を入れると、式の中では空白がアンダースコアに置き換わります。最初から空白なしの英字で付けておくほうが迷いません。この記事でテーブル名を「Members」にしているのはそのためです。

「表示形式」から「テーブルに変換」した会員台帳で、H列の列の型をプルダウンにしているところ
「表示形式」から「テーブルに変換」した会員台帳で、H列の列の型をプルダウンにしているところ

サンプル料理教室の台帳の全体

ここまでの台帳を、教室の仕事の流れに並べると次のようになります。

場面書くシート書く人次につながるもの
体験の申込予約一覧(フォームの回答から)自動受付が状況を付ける
入会会員台帳受付会員番号を振る
レッスンの予約予約一覧受付会員番号から氏名を引く
出席出席記録講師月謝の請求の数に使う
材料の確認材料の在庫講師要発注の行を代表が発注
月末請求の表(経理のファイル)代表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の使い分けと、つなぎ方

あわせて読む