予約表のテンプレート エクセルとスプレッドシートの作り方
小さな
この
この
この
予約表は、週の表と予約の一覧の2枚に分ける
予約表を
| シート | 1行の単位 | 手で |
式で |
|---|---|---|---|
| 設定 | (値を |
週の |
なし |
| 予約 | 予約1件 | 日付、 |
確認、 |
| 週 | 30分の |
なし | 週の |
| 月の数字 | 1か月 | 月の初日 | 来院、 |
| 回数券 | 回数券1枚 | 券の |
使った |
毎日
「担当」は、
そのまま使える、予約の一覧の列
予約の
| 列 | 項目 | 入れ方 |
|---|---|---|
| A | 予約ID | Y0001 の |
| B | 日付 | 日付 |
| C | 開始 | 半角で 10:00 の形 |
| D | 終了 | 半角で 11:00 の形 |
| E | 担当 | プルダウン |
| F | 顧客ID | 顧客台帳がC0001 の |
| G | 名前 | 呼べる |
| H | メニュー | パーソナル・体験・カウンセリングなど。 |
| I | 状態 | プルダウン |
| J | 経路 | 電話・店頭・LINE・Web |
| K | 回数券ID | 回数券で |
| L | 取消の |
取消の |
| M | 確認 | 式 |
| N | この |
式 |
| O | 直前の取消 | 式 |
| P | 行 | 式 |
| Q | 表示 | 式。 |
最初から
- A
(予約ID)、 B (日付)、 C(開始)、 D(終了)、 E(担当)、 G(名前)、 H(メニュー)、 I(状態) - L
(取消の 連絡日)は、 状態を 「取消」に した 行だけ
F
状態の
| 状態 | 入れるとき | 週の表 |
|---|---|---|
| 予約 | 予約を |
名前と |
| 来院 | 来て、 |
名前と |
| 取消 | 前もって |
出ない |
| 無断 | 連絡なく |
名前に |
| 枠止め | 休憩、 |
メニューの |
日時を
設定のシート
設定の
| セル | 入れる値 | 例 |
|---|---|---|
| A1、B1 | 週の初日、 |
2026/11/9 |
| A2、B2 | 枠の長さ、 |
0:30 |
| A3、B3 | 担当の数、1〜3 |
2 |
| A5、B5 | 最初の枠、 |
10:00 |
| A6、B6 | 最後の枠、 |
21:30 |
| A7、B7 | 取消の締め切り(日前)、 |
1 |
| D1、D2〜D9 | 担当、 |
トレーナーA、トレーナーB |
| F1、F2〜F6 | 状態、予約、来院、取消、無断、枠止め |
この |
B1に=TODAY()-WEEKDAY(TODAY(),3) と+7 を
B7の
1週間の予約表は、一覧から式で並べる
週の
| B | C | D | E | … | |
|---|---|---|---|---|---|
| 1 | 11/9 | 11/9 | 11/10 | 11/10 | … |
| 2 | トレーナーA | トレーナーB | トレーナーA | トレーナーB | … |
| 3 |
甲・パーソナル | シフト外 | … | ||
| 4 |
〃 | 重複 | … |
1つの
A列の時刻
A3に
A3(時刻)
=IF('設定'!$B$5+(ROW()-3)*'設定'!$B$2>'設定'!$B$6+1/1440,"",'設定'!$B$5+(ROW()-3)*'設定'!$B$2)1行目と2行目の日付と担当
B1と
B1(日付)
=IF(COLUMN()-2>=7*'設定'!$B$3,"",'設定'!$B$1+INT((COLUMN()-2)/'設定'!$B$3))
B2(担当)
=IF(B1="","",INDEX('設定'!$D$2:$D$9,MOD(COLUMN()-2,'設定'!$B$3)+1))予約を並べる式
B3に
B3(予約の表示)
=IF(OR(B$1="",B$2="",$A3=""),"",IF(COUNTIFS('予約'!$B:$B,B$1,'予約'!$E:$E,B$2,'予約'!$I:$I,"<>取消",'予約'!$C:$C,"<"&($A3+1/1440),'予約'!$D:$D,">"&($A3+1/1440))=0,"",IF(COUNTIFS('予約'!$B:$B,B$1,'予約'!$E:$E,B$2,'予約'!$I:$I,"<>取消",'予約'!$C:$C,"<"&($A3+1/1440),'予約'!$D:$D,">"&($A3+1/1440))>1,"重複",IF(INDEX('予約'!$C:$C,MINIFS('予約'!$P:$P,'予約'!$B:$B,B$1,'予約'!$E:$E,B$2,'予約'!$I:$I,"<>取消",'予約'!$C:$C,"<"&($A3+1/1440),'予約'!$D:$D,">"&($A3+1/1440)))<$A3-'設定'!$B$2+1/1440,"〃",INDEX('予約'!$Q:$Q,MINIFS('予約'!$P:$P,'予約'!$B:$B,B$1,'予約'!$E:$E,B$2,'予約'!$I:$I,"<>取消",'予約'!$C:$C,"<"&($A3+1/1440),'予約'!$D:$D,">"&($A3+1/1440)))))))くり返される
| 条件 | 意味 |
|---|---|
'予約'!$B:$B,B$1 |
その |
'予約'!$E:$E,B$2 |
その |
'予約'!$I:$I,"<>取消" |
取り消した |
'予約'!$C:$C,"<"&($A3+1/1440) |
枠の |
'予約'!$D:$D,">"&($A3+1/1440) |
枠の |
1/1440 は10:00 と、10:00 に
1件だけかかっている
予約のシートの式
予約の
N2(この人の無断)
=IF(F2="","",COUNTIFS($F:$F,F2,$I:$I,"無断"))
O2(直前の取消)
=IF(AND(I2="取消",ISNUMBER(L2),ISNUMBER(B2)),IF(L2>=B2-'設定'!$B$7,1,0),"")
P2(行)
=ROW()
Q2(表示)
=IF(I2="枠止め",IF(H2="","枠止め",H2),G2&IF(H2="","","・"&H2)&IF(I2="無断","(無断)",""))P列は、
顧客台帳が=IF(F2="","",IFERROR(INDEX('顧客'!$B:$B,MATCH(F2,'顧客'!$A:$A,0)),"IDなし")) にします。
二重予約は、一覧の確認の列で見つける
二重予約は、
M2(確認)
=IF(COUNTA(A2:L2)=0,"",IF(A2="","IDを入れる",IF(COUNTIF($A:$A,A2)>1,"IDが重複",IF(NOT(ISNUMBER(B2)),"日付を確認",IF(OR(NOT(ISNUMBER(C2)),NOT(ISNUMBER(D2))),"時刻を確認",IF(D2<=C2,"終わりが前",IF(E2="","担当を確認",IF(COUNTIF('設定'!$D$2:$D$9,E2)=0,"担当を確認",IF(I2="","状態を確認",IF(COUNTIF('設定'!$F$2:$F$6,I2)=0,"状態を確認",IF(OR(C2<'設定'!$B$5-1/1440,D2>'設定'!$B$6+'設定'!$B$2+1/1440),"時間外",IF(MOD(ROUND((C2-'設定'!$B$5)*1440,0),ROUND('設定'!$B$2*1440,0))+MOD(ROUND((D2-'設定'!$B$5)*1440,0),ROUND('設定'!$B$2*1440,0))>0,"刻みと違う",IF(AND(I2<>"取消",COUNTIFS($B:$B,B2,$E:$E,E2,$I:$I,"<>取消",$C:$C,"<"&(D2-1/1440),$D:$D,">"&(C2+1/1440))>1),"重複",IF(AND(I2="取消",NOT(ISNUMBER(L2))),"取消日を入れる",IF(AND(I2="予約",B2<TODAY()),"来院か無断に","")))))))))))))))重複の
M列に
| 表示 | 意味 | 直し方 |
|---|---|---|
| IDを |
行に |
IDを振る |
| IDが重複 | 同じ |
1つの |
| 日付を確認 | 日付が |
日付で |
| 時刻を確認 | 開始か10時 など) |
半角の 10:00 で |
| 終わりが前 | 終了が |
時刻を直す |
| 担当を確認 | 担当が |
プルダウンから |
| 状態を確認 | 状態が |
プルダウンから |
| 時間外 | 最初の |
時刻か |
| 刻みと違う | 開始か10:15 など) |
刻みに |
| 重複 | 同じ |
どちらかを |
| 取消日を |
取消なのに |
連絡を |
| 来院か |
過ぎた |
「来院」か |
「刻みと0:15 に
「枠止め」の
確認の=$M2<>"" にします。=B3="重複" で
会社サイトの
空き枠の数は、週の表の下で数える
週の空き(30分)、60分を始められる と
B27(空き(30分))
=IF(B$1="","",SUMPRODUCT((LEN(B3:B26)=0)*(LEN($A3:$A26)>0)))
B28(60分を始められる)
=IF(B$1="","",SUMPRODUCT((LEN(B3:B25)=0)*(LEN(B4:B26)=0)*(LEN($A4:$A26)>0)))27行目は、
空き枠の
キャンセルと無断は、行を消さずに状態で残す
キャンセルと
取消の
N列には、
月の数字のシート
月の
B2(来院)
=COUNTIFS('予約'!$B:$B,">="&$A2,'予約'!$B:$B,"<"&EDATE($A2,1),'予約'!$I:$I,"来院")
C2(無断)
=COUNTIFS('予約'!$B:$B,">="&$A2,'予約'!$B:$B,"<"&EDATE($A2,1),'予約'!$I:$I,"無断")
D2(取消)
=COUNTIFS('予約'!$B:$B,">="&$A2,'予約'!$B:$B,"<"&EDATE($A2,1),'予約'!$I:$I,"取消")
E2(うち直前の取消)
=COUNTIFS('予約'!$B:$B,">="&$A2,'予約'!$B:$B,"<"&EDATE($A2,1),'予約'!$O:$O,1)
F2(まだの予約)
=COUNTIFS('予約'!$B:$B,">="&$A2,'予約'!$B:$B,"<"&EDATE($A2,1),'予約'!$I:$I,"予約")
G2(無断の割合)
=IF(B2+C2=0,"",C2/(B2+C2))G列の
回数券の残りへつなぐ
回数券で
F2(使った回数)
=IF(A2="","",COUNTIFS('予約'!$K:$K,A2,'予約'!$I:$I,"来院"))
G2(予約中)
=IF(A2="","",COUNTIFS('予約'!$K:$K,A2,'予約'!$I:$I,"予約"))
H2(残り)
=IF(A2="","",D2-F2)
I2(予約を除く残り)
=IF(A2="","",H2-G2)
J2(確認)
=IF(A2="","",IF(I2<0,"予約が残りを超える",IF(COUNTIFS('予約'!$K:$K,A2,'予約'!$F:$F,"<>"&B2)>0,"持ち主の違う予約","")))H列の=IF(A2="","",COUNTIFS('予約'!$K:$K,A2,'予約'!$I:$I,"来院")+COUNTIFS('予約'!$K:$K,A2,'予約'!$I:$I,"無断")) にします。
回数の
整体院の顧客台帳とつなぐとき
整体院の来院! を '予約'! に
| 中身 | 台帳の |
この |
|---|---|---|
| 日付 | A列 | B列 |
| 顧客ID | B列 | F列 |
| 状態 | F列 | I列 |
| 回数券ID | G列 | K列 |
| 次回予約日 | H列 | なし。 |
たとえば=IF($A2="","",COUNTIFS('予約'!$F:$F,$A2,'予約'!$I:$I,"来院")) に=IF($A2="","",IF(COUNTIFS('予約'!$F:$F,$A2,'予約'!$I:$I,"予約",'予約'!$B:$B,">="&TODAY())=0,"",MINIFS('予約'!$B:$B,'予約'!$F:$F,$A2,'予約'!$I:$I,"予約",'予約'!$B:$B,">="&TODAY()))) で
作る手順は、6つ
作る
手順1. 店のアカウントでファイルを作り、シートを5枚作る
個人の
手順2. 設定のシートに値を入れる
前の0:30、10:00 の
手順3. 予約のシートに見出し、式、プルダウンを入れる
1行目に電話,店頭,LINE,Web を
手順4. 週のシートに式を入れる
A3、
手順5. 月の数字と回数券のシートに式を入れる
前の
手順6. 架空の予約で試してから使い始める
架空の10時 と
印刷して受付に置く使い方
週の
| 場面 | すること |
|---|---|
| 印刷する |
前日の |
| 印刷した |
紙の=NOW() を |
| 紙に |
その |
| 紙で |
線で |
| 置き場所 | お客様から |
週の
| Googleスプレッドシート | Excel | |
|---|---|---|
| 向き | 印刷の |
印刷の |
| 見出しの |
1行目と |
「ページ レイアウト」$1:$2 |
| 一部だけ印刷 | 範囲を |
範囲を |
担当が
動かして確かめた結果
この2026/11/9、時刻は 10:00 のように、
本文の例のデータ
本文の
| 時刻 | 11/9 A | 11/9 B | 11/10 A |
|---|---|---|---|
| 10:00 | 甲・パーソナル | シフト外 | |
| 10:30 | 〃 | 重複 | |
| 11:00 | 乙・カウンセリング | 重複 | |
| 11:30 | 重複 | ||
| 12:00 | 〃 | ||
| 13:00 | 休憩 | 〃 | |
| 13:30 | 〃 | 〃 | |
| 18:00 | 丁・パーソナル | ||
| 18:30 | 〃 | ||
| 19:00 | 乙・パーソナル | ||
| 19:30 | 重複 | ||
| 20:00 | 〃 | ||
| 空き |
19 | 16 | 19 |
| 60分を |
17 | 15 | 17 |
Bの
確認の10時 は
月の
乱数の架空データとの比べ合わせ
次に、
| データ | 予約の行 | 比べたセル | 不一致 |
|---|---|---|---|
| 3組 | 各400行 | 10,818 | 0 |
| 1組 | 2,000行 | 8,406 | 0 |
比べたのは、
この
1分ずらさない書き方との違い
週の"<="&$A3 と ">"&$A3 で
原因は10:00 に 0:30 の
ずれやすい所
動かす中で
| 起きること | 結果 | この |
|---|---|---|
時刻を 10時 と |
週の |
確認の |
開始が 10:15 |
10時の |
確認の |
| 休憩を |
その |
休憩と |
| 取り消した |
空いた |
状態が |
| 過ぎた |
回数券の |
確認の |
| 状態や |
ライブラリでは |
空か |
| SUMPRODUCT の |
ライブラリでは#VALUE! |
設定を |
確かめていないこと
Excelと
- 時刻の
小数の 比べ方。 1分ずらしたのは、 この 違いを 避ける ためです 10時や全角の 10:00のような入力が、 時刻に なるか 文字の ままか。 アプリや 設定で 違うことが あるので、 半角の 10:00にそろえます - 空の
セルを 条件に した ときの COUNTIF の 動き。 Excelの COUNTIFSの ヘルプには、 空の セルを 条件に すると 0と 見なすと あります。 この 記事の 式は、 空か どうかを 先に 見てから 数えています - SUMPRODUCT の
中の 範囲の 比べ方。 Excelの SUMPRODUCTの ヘルプには、 範囲の 比べ方を 中に 書く 例が あります。 Googleの ヘルプには、 その 例は ありません - 予約が
2,000行の とき、 ライブラリでは 4週分の 週の 表の 計算に 約10秒かかりました。 実物での 速さは 測っていません
プルダウン、
会社サイトの
ExcelとGoogleスプレッドシートで詰まる所
予約表は
| 詰まる所 | Googleスプレッドシート | Excel |
|---|---|---|
| MINIFS | そのまま |
ヘルプの |
| 複数の |
共有した |
Microsoft 365 で、 |
| 時刻の |
半角の 10:00 |
半角の 10:00。 |
| 週の |
WEEKDAY(…,3) は |
同じ |
| 印刷の |
行を |
「印刷タイトル」の |
| ファイルの |
店の |
1か所に |
Excelで
やってはいけないこと
予約表で、
ポイント1. 週の表のマスに直接書き込む
式が
ポイント2. 取り消した予約の行を消す
直前の
ポイント3. 休憩やシフトの外を入れずに使う
空いて
ポイント4. 紙だけに予約を書いて終える
一覧を
ポイント5. 店の担当ごとに別のファイルを作る
担当を
表で足りなくなる線と、Web予約・LINEへ移る判断
予約表から
| 起きている |
表で |
移る先 |
|---|---|---|
| 施術や |
予約表は、 |
お客様が |
| 営業時間の |
翌朝まで |
空きの |
| 2人以上が |
式は |
枠を |
| 前日の |
表は |
予約から |
| 回数券の |
状態の |
予約と |
| 担当が |
週の |
担当と |
まだ
LINEで
移る
使い始める前のチェックリスト
予約表を
- ファイルの
オーナーが 店の アカウントで、 共有は 必要な 人だけに 絞っている - 5枚の
シートを、 名前の とおりに 作った - 設定の
シートの 担当、 最初と 最後の 枠、 枠の 長さを 店の 形に した - 予約の
シートの 式を、 予約の 見込みより 多めに 下へ コピーした - 担当と
状態の 列に、 プルダウンを 付けた - 時刻は
半角の 10:00で入れると、 書く 全員が 知っている - 休憩と
シフトの 外を、 枠止めの 行で 入れた - 取り消しは
行を 消さず、 状態と 連絡日を 入れると 決めた - 過ぎた
予約を 「来院」か 「無断」に 変える 人と 時刻を 決めた - 確認の
列と 週の 表の 「重複」に 色が 付く - 印刷する
時刻と、 紙に 書き足した 分を 一覧へ 戻す人を 決めた - 架空の
予約で、 週の 表、 確認の 列、 空き枠の 数を 確かめた
お客様の
自社でやる場合と、任せる場合
自社で
任せる
出典(一次情報)
Excelと
- COUNTIFS の
構文と、 Excelで 空の セルを 条件に すると 0と 見なすこと → Microsoft サポート 「COUNTIFS 関数」、 Google ドキュメント エディタ ヘルプ「COUNTIFS」 - COUNTIF の
構文 → Microsoft サポート 「Microsoft Excel で COUNTIF 関数を 」、使用する Google ドキュメント エディタ ヘルプ「COUNTIF」 - MINIFS の
構文、 Excelの 対応する 版、 条件に 合う ものが ない とき0を 返す こと → Microsoft サポート 「MINIFS 関数」、 Google ドキュメント エディタ ヘルプ「MINIFS」 - INDEX の
構文 → Microsoft サポート 「INDEX 関数」、 Google ドキュメント エディタ ヘルプ「INDEX」 - SUMPRODUCT の
構文と、 Excelの ヘルプの SUMPRODUCTの 中で 範囲を 比べる 例 → Microsoft サポート 「SUMPRODUCT 関数」、 Google ドキュメント エディタ ヘルプ「SUMPRODUCT」 - WEEKDAY の
種類3が 月曜日を 0と する こと → Microsoft サポート 「WEEKDAY 関数」、 Google ドキュメント エディタ ヘルプ「WEEKDAY」 - EDATE の
構文 → Microsoft サポート 「EDATE 関数」、 Google ドキュメント エディタ ヘルプ「EDATE」 - プルダウンの
作り方 → Google ドキュメント エディタ ヘルプ「セル内に プルダウン リストを 」作成する - 条件付き書式の
カスタム数式 → Google ドキュメント エディタ ヘルプ「Google スプレッドシートで 条件付き書式ルールを 」使用する - 印刷の
設定 (用紙サイズ、 ページの 向き、 固定行を 繰り返す、 印刷対象) → Google ドキュメント エディタ ヘルプ「Google スプレッドシートから 印刷する 」 - 各ページに
行を くり返して 印刷する 手順 → Microsoft サポート 「印刷される 各ページで 」特定の 行または 列を 繰り返す - 共同編集に
Microsoft 365 と、 OneDrive・OneDrive for Business・SharePoint Online への 保存が 要る こと → Microsoft サポート 「Excel ブックの 共同編集を 」使用して 同時に 共同作業を 行う - 閲覧者などの
権限と、 「リンクを 知っている 全員」の 共有 → Google ドライブ ヘルプ「Google ドライブの ファイルや 」フォルダの 共有と アクセス権の 管理に ついて - スプレッドシートの
上限が 2,000万セルである こと → Google ドライブ ヘルプ「Google ドライブに 保管可能な 」ファイル
2枚に
よくある質問
予約表のテンプレートは、何から作ればよいですか?
「設定」
予約表はExcelとGoogleスプレッドシートのどちらで作ればよいですか?
受付と
二重予約は、予約表でどうやって見つけますか?
予約の
キャンセルした予約は、予約表から消してよいですか?
消さずに、
予約表を紙に印刷して使ってもよいですか?
使えます。
予約表からWeb予約やLINEの予約に移るのは、どの時点ですか?
件数より、
