フィットネス・健康

予約表のテンプレートエクセルとスプレッドシートの作り方

小さなジム・ピラティススタジオ・整体院の予約表を、ExcelとGoogleスプレッドシートで作る手順です。1週間の予約表と予約の一覧を分け、一覧から週の表へ並べる式、二重予約の検出、空き枠の数、キャンセルと無断、回数券、印刷の使い方、Web予約へ移る線まで。

この記事の結論:小さなジムや整体院の予約表は、ExcelかGoogleスプレッドシートに「予約の一覧(1行1予約)」と「1週間の予約表(縦に時間、横に日付と担当)」の2枚を分けて作ります。手で書くのは一覧だけで、週の表は一覧から式で並べます。こうすると、同じ日・同じ担当で時間が重なる行を「重複」と出せて、空き枠の数も、取消と無断の数も、回数券の残りも同じ一覧から数えられます。休憩とシフトの外の時間は「枠止め」の行として入れます。印刷した週の表は受付で見るためのもので、書き足した分はその日のうちに一覧へ戻します。電話の取りこぼし、営業時間の外の連絡、同時の書き込み、前日の連絡の手間が毎週出るなら、Web予約やLINEの予約へ移る時期です。列と式はこの記事にすべて載せました。式は計算のライブラリで動かして確かめたもので、ExcelとGoogleスプレッドシートの実物では未実行です。

この記事の内容のご相談は株式会社bundlyzeへbundlyzeのHP・LP制作について見てみる

この記事は、小さなパーソナルジム・ピラティススタジオ・整体院の経営者と受付の方に向けて、紙やノートの予約表を表計算の予約表に移す作り方を書きます。お客様の記録を台帳として持つ話は整体院の顧客管理の記事に、Googleカレンダーやフォームで予約を受ける話はGoogleカレンダーとフォームで予約を受ける記事に分けています。キャンセルの決まりそのものはキャンセルの決まりの記事にあります。ここで扱うのは、受付で毎日書いて、毎日見る予約表の形です。関連する記事の一覧はジム・スタジオの業種別ガイドと整体院・サロンの業種別ガイドにあります。

予約表は、週の表と予約の一覧の2枚に分ける

予約表を表計算で作るときは、見る表と書く表を分けます。紙の予約表をそのまま写して、週の表のマスに名前を書き込む形にすると、見た目は分かりやすいのですが、数えることができません。同じ時間に2人を入れても気づけず、取り消した予約を消すと記録も消え、月に何件の無断があったかも数えられないからです。

シート 1行の単位 手で入れるもの 式で出すもの
設定 (値を入れるだけ) 週の初日、枠の長さ、担当の名前、最初と最後の枠、取消の締め切り なし
予約 予約1件 日付、開始と終了、担当、お客様、メニュー、状態、取消の連絡日 確認、無断の回数、直前の取消、表示
週 30分の枠1つ なし 週の表、空き枠の数
月の数字 1か月 月の初日 来院、無断、取消の件数
回数券 回数券1枚 券の番号、持ち主、回数 使った回数、予約中、残り

毎日触るのは予約のシートだけです。週の表は、予約の行を足したり状態を変えたりすると、式で埋まり直します。

「担当」は、パーソナルジムならトレーナー、整体院なら施術者かベッドです。整体院で施術者が1人でベッドが2台なら、担当を「ベッド1」「ベッド2」にすると、ベッドの取り合いが見えます。施術者が2人でベッドも2台なら、施術者で分けます。担当の数だけ横に列が並ぶので、この記事の形では3つまでを扱います。

そのまま使える、予約の一覧の列

予約のシートは、A列からL列までが手で入れる欄、M列からQ列までが式の欄です。同じ順に1行目へ入れれば、この記事の式がそのまま使えます。

列 項目 入れ方
A 予約ID Y0001 の形で振る。電話やLINEで変更の連絡を受けたときに探すため
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 表示 式。週の表に出す文字

最初から12列すべてを埋めなくてもかまいません。週の表と重複の確認を先に使い始めるなら、手で入れるのは次の列です。

  • A(予約ID)、B(日付)、C(開始)、D(終了)、E(担当)、G(名前)、H(メニュー)、I(状態)
  • L(取消の連絡日)は、状態を「取消」にした行だけ

F(顧客ID)、J(経路)、K(回数券ID)は空でも週の表は動きます。F列は無断の回数を、K列は回数券を数えるときに埋めます。列を消すと式が指す列の文字がずれるので、使わない列も見出しを残して空けておきます。

状態の5つの言葉は、次の意味で使います。

状態 入れるとき 週の表
予約 予約を受けたとき 名前とメニューが出る
来院 来て、受けたとき 名前とメニューが出る
取消 前もって取り消しの連絡があったとき 出ない(枠が空く)
無断 連絡なく来なかったとき 名前に「(無断)」が付いて出る
枠止め 休憩、シフトの外、研修、掃除など、予約を入れない時間 メニューの欄の言葉が出る

日時を変える予約は、同じ行の日付と時刻を書き換えます。変更も取り消しとして数える決まりの店は、元の行を「取消」にして、新しい行を足します。どちらにするかは店で決め、全員で同じにします。

設定のシート

設定のシートには、表の形を決める値を入れます。セルの位置を式が指しているので、この位置のまま入れます。

セル 入れる値 例
A1、B1 週の初日、表に出す週の月曜日 2026/11/9
A2、B2 枠の長さ、1マスの時間 0:30
A3、B3 担当の数、1〜3 2
A5、B5 最初の枠、1日の最初の枠の開始 10:00
A6、B6 最後の枠、1日の最後の枠の開始 21:30
A7、B7 取消の締め切り(日前)、何日前からを直前の取消と数えるか 1
D1、D2〜D9 担当、担当の名前を上から トレーナーA、トレーナーB
F1、F2〜F6 状態、予約、来院、取消、無断、枠止め この5つの字のまま

B1に今週の月曜日を自動で入れたいときは、=TODAY()-WEEKDAY(TODAY(),3) と入れます。WEEKDAY の種類3は、月曜日を0、日曜日を6として数えます。来週の表を印刷したいときは、この式の後ろに +7 を足すか、日付を手で入れます。

B7の日数は、計算を確かめるための例です。直前の取消を何日前からとするかは、店の決まりに合わせます。

1週間の予約表は、一覧から式で並べる

週のシートは、A列に時刻、1行目に日付、2行目に担当を並べ、3行目から26行目に30分ずつ24の枠を作ります。担当が2人なら、1日に2列ずつ、月曜日から日曜日までB列からO列の14列になります。3人ならB列からV列の21列です。

B C D E …
1 11/9 11/9 11/10 11/10 …
2 トレーナーA トレーナーB トレーナーA トレーナーB …
3(10:00) 甲・パーソナル シフト外 …
4(10:30) 〃 重複 …

1つのマスには、その時間にかかる予約が1件ならその表示、2件以上なら「重複」が出ます。60分の予約は2つの枠にかかるので、2つ目の枠には「〃」が出ます。

A列の時刻

A3に次の式を入れ、A26までコピーします。最後の枠より後の行は空欄になります。

A3(時刻)
=IF('設定'!$B$5+(ROW()-3)*'設定'!$B$2>'設定'!$B$6+1/1440,"",'設定'!$B$5+(ROW()-3)*'設定'!$B$2)

1行目と2行目の日付と担当

B1とB2に次の式を入れ、V列までコピーします。担当の数を超えた列と、7日を超えた列は空欄になります。

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に次の式を入れ、B26までコピーしてから、B3からB26をV列までコピーします。長い式ですが、同じ条件が4回くり返されているだけです。

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)))))))

くり返される条件は、次の5つです。

条件 意味
'予約'!$B:$B,B$1 その列の日付の予約
'予約'!$E:$E,B$2 その列の担当の予約
'予約'!$I:$I,"<>取消" 取り消した予約は除く
'予約'!$C:$C,"<"&($A3+1/1440) 枠の開始より前に始まっている
'予約'!$D:$D,">"&($A3+1/1440) 枠の開始より後に終わる

1/1440 は1分です。枠の開始ちょうどではなく、開始の1分後の時点で予約がかかっているかを見ています。表計算の時刻は1日を1とした小数で持たれるので、10:00 と、10:00 に30分を足していった値が、目に見えない桁でずれることがあるからです。1分ずらして比べると、このずれの影響を受けません。後の「動かして確かめた結果」に、ずらさない書き方との違いを書きました。

1件だけかかっている枠では、MINIFS でその行の番号を探し、INDEX でQ列の表示を引きます。その予約が1つ前の枠にもかかっていれば「〃」にします。

予約のシートの式

予約のシートのN列からQ列の2行目に、次の式を入れます。M列の確認の式は次の節に載せます。M2からQ2を、予約が入る見込みより多めに下へコピーしておきます。

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列は、週の表の式が行を探すための番号です。見る必要はないので、列ごと非表示にしてかまいません。

顧客台帳があってG列の名前を手で打ちたくないときは、G2を =IF(F2="","",IFERROR(INDEX('顧客'!$B:$B,MATCH(F2,'顧客'!$A:$A,0)),"IDなし")) にします。顧客シートのA列が顧客ID、B列が名前の形です。

二重予約は、一覧の確認の列で見つける

二重予約は、予約のシートのM列で見つけます。週の表の「重複」は見て気づくための印で、どの行が重なっているかは、一覧の確認の列で分かります。M2に次の式を入れ、下へコピーします。

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()),"来院か無断に","")))))))))))))))

重複の判定は、同じ日、同じ担当、取消でない行のうち、相手の開始が自分の終了より前で、相手の終了が自分の開始より後の行を数えます。自分の行も数に入るので、2以上なら重なりがあります。終わりと始まりがちょうど同じ時刻の予約(10時〜11時と11時〜12時)は、重なりに数えません。

M列に出る言葉と直し方は、次のとおりです。上にあるものほど先に出ます。

表示 意味 直し方
IDを入れる 行に内容があるのに予約IDが空 IDを振る
IDが重複 同じ予約IDが2行ある 1つの予約に1つのID
日付を確認 日付が文字で入っている 日付で入れ直す
時刻を確認 開始か終了が文字で入っている(10時 など) 半角の 10:00 で入れ直す
終わりが前 終了が開始と同じか前 時刻を直す
担当を確認 担当が空か、設定のシートにない名前 プルダウンから選ぶ
状態を確認 状態が空か、5つの言葉にない プルダウンから選ぶ
時間外 最初の枠より前に始まるか、最後の枠の後まで続く 時刻か設定を直す
刻みと違う 開始か終了が30分の刻みにない(10:15 など) 刻みに合わせるか、枠の長さを短くする
重複 同じ担当で時間が重なる行がある どちらかを動かすか、取り消す
取消日を入れる 取消なのに取り消しの連絡日が空 連絡を受けた日を入れる
来院か無断に 過ぎた日の予約が「予約」のまま 「来院」か「無断」に変える

「刻みと違う」は、週の表がずれて見える予約です。10時15分から始まる予約は、週の表では10時30分の枠から出て、10時の枠は空きに見えます。開始を刻みに合わせられない店は、設定の枠の長さを 0:15 にして、週の表の行を増やします。

「枠止め」の行も、重複の判定に入ります。シフトの外の時間に予約を入れると、両方の行に「重複」が出ます。電話を受けた人がシフトを覚えていなくても、入れた直後に気づけます。

確認の列には、「表示形式」の「条件付き書式」で、空でないときに色を付けます。範囲をM2からM列の下までにして、カスタム数式を =$M2<>"" にします。週の表のB3からV26にも、=B3="重複" で色を付けると、印刷しても目に入ります。

会社サイトの関連ページ予約管理システムの選び方

空き枠の数は、週の表の下で数える

週のシートの27行目と28行目に、担当ごと・日ごとの空き枠の数を出します。A27に 空き(30分)、A28に 60分を始められる と入れ、B27とB28に次の式を入れて、V列までコピーします。

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行目は、空いている30分の枠の数です。28行目は、空いた枠が2つ続いている所の数、つまり60分の予約を始められる時刻の数です。30分の空きが2つあっても、離れていれば60分の予約は入らないので、60分のメニューが中心の店は28行目を見ます。続いた空きが3つあれば、10時と10時30分のどちらからでも始められるので、2と数えます。

空き枠の数を正しくするには、休憩とシフトの外を、必ず枠止めの行として入れます。入れないと、その時間も空きに数えられます。トレーナーのシフトから空き枠を出す考え方は、シフトと予約枠の連動の記事に書きました。

キャンセルと無断は、行を消さずに状態で残す

キャンセルと無断は、予約の行を消さずに、状態を変えて残します。行を消すと週の表からは消えますが、後から「直前の取消が月に何件あったか」「この人は何回無断があったか」を数えられなくなるからです。

取消の行には、L列に取り消しの連絡を受けた日を入れます。O列は、予約の日の何日前までに連絡があったかを見て、設定のB7の日数より後の連絡なら1、前なら0を出します。B7が1なら、前日と当日の取消が1になります。

N列には、同じ顧客IDの無断の回数が出ます。予約を受けるときにこの数字が目に入るので、次の予約で確かめることを決めている店は、受付で見落としません。無断の数え方や、続いたときにどうするかは店の決まりで、決め方はキャンセルの決まりの記事にまとめています。

月の数字のシート

月の数字のシートの1行目に、月、来院、無断、取消、うち直前の取消、まだの予約、無断の割合、と入れます。A2に月の初日の日付を入れ、次の式を2行目に入れて、見たい月の分だけ下へコピーします。

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列の表示形式はパーセントにします。無断の割合は、来る予定だった予約(来院と無断)のうち、来なかった割合です。過ぎた月のF列は0になるはずで、0でなければ、状態を「来院」か「無断」に変え忘れた行があります。予約のシートのM列に「来院か無断に」と出ている行です。

回数券の残りへつなぐ

回数券で受ける予約は、K列に回数券IDを入れます。回数券のシートを作ると、使った回数と残りが予約の一覧から数えられます。回数券のシートの1行目に、回数券ID、顧客ID、購入日、回数、有効期限、使った回数、予約中、残り、予約を除く残り、確認、と入れ、F2からJ2に次の式を入れて下へコピーします。

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列の残りは、来院した分だけを引いた数です。I列は、まだ来ていない予約の分も引いた数で、次の予約を受けるときに見る数字です。I列が0の人から次の予約を受けると、J列に「予約が残りを超える」と出ます。取消の行は使った回数にも予約中にも入らないので、取り消すと残りは自然に戻ります。無断でも1回使う決まりの店は、F2を =IF(A2="","",COUNTIFS('予約'!$K:$K,A2,'予約'!$I:$I,"来院")+COUNTIFS('予約'!$K:$K,A2,'予約'!$I:$I,"無断")) にします。

回数の付与と消化を分けて持つ考え方は回数券の記録の持ち方の記事に書きました。ここでは、予約の一覧をそのまま消化の記録として使っています。

整体院の顧客台帳とつなぐとき

整体院の顧客管理の記事の台帳を使っている院は、台帳の「来院」のシートの代わりに、この予約のシートを使えます。どちらも1回1行で、状態の「来院」「取消」「無断」の言葉が同じだからです。台帳の式の 来院! を '予約'! に置き換え、列の文字を次のように読み替えます。

中身 台帳の来院のシート この記事の予約のシート
日付 A列 B列
顧客ID B列 F列
状態 F列 I列
回数券ID G列 K列
次回予約日 H列 なし。先の日付の「予約」の行で見る

たとえば台帳の顧客シートの来院回数(N2)は、=IF($A2="","",COUNTIFS('予約'!$F:$F,$A2,'予約'!$I:$I,"来院")) になります。次回予約(T2)は、先の日付の予約の行から =IF($A2="","",IF(COUNTIFS('予約'!$F:$F,$A2,'予約'!$I:$I,"予約",'予約'!$B:$B,">="&TODAY())=0,"",MINIFS('予約'!$B:$B,'予約'!$F:$F,$A2,'予約'!$I:$I,"予約",'予約'!$B:$B,">="&TODAY()))) で出します。こうすると、予約表と台帳に同じ予約を2度書かずに済みます。

作る手順は、6つ

作る順番は、シートを名前だけ先に作り、設定、予約、週、月の数字、回数券の順に式を入れます。式が別のシートの名前を指すので、シートがそろっていれば途中でエラーになりません。

手順1. 店のアカウントでファイルを作り、シートを5枚作る

個人のアカウントではなく、店で持つアカウントでファイルを作ります。シートの名前は左から「設定」「予約」「週」「月の数字」「回数券」です。1文字でも違うと式がエラーになります。共有は、予約表を見る人のアカウントだけにします。お客様の名前と予定が入るファイルなので、リンクを知っている全員が開ける共有にはしません。

手順2. 設定のシートに値を入れる

前の節の表のとおりに入れます。B2の枠の長さは 0:30、B5とB6の時刻は半角の 10:00 の形です。

手順3. 予約のシートに見出し、式、プルダウンを入れる

1行目に17列の見出しを入れ、M2からQ2に式を入れて下へコピーします。B列の表示形式は日付、C列とD列は時刻、L列は日付にします。「データ」の「データの入力規則」で、E列は設定のシートのD2からD9、I列はF2からF6の範囲をプルダウンにします。J列は 電話,店頭,LINE,Web を並べます。

手順4. 週のシートに式を入れる

A3、B1、B2、B3、B27、B28の式を入れ、前の節のとおりにコピーします。A列の表示形式は時刻、1行目は日付にします。B3からV26の列の幅をそろえ、文字が長いときは折り返す設定にします。

手順5. 月の数字と回数券のシートに式を入れる

前の節の式を入れます。回数券を扱わない店は、回数券のシートを作らなくてもかまいません。

手順6. 架空の予約で試してから使い始める

架空の予約を10件ほど入れて、次の場面を作ります。60分と30分の予約、同じ担当で30分重なる予約、休憩の枠止めとそこへの予約、取消の行、無断の行、10時 と文字で入れた時刻。週の表の表示、M列の確認、空き枠の数が意図どおりかを見ます。お客様の本物の名前は使わず、確かめたら架空の行を消します。

印刷して受付に置く使い方

週の表は、印刷して受付に置くと、パソコンを開かずに予定が見られます。ただし、予約の元は一覧です。紙に書き足した予約は、書いた時点では一覧にないので、別の人がパソコンから同じ枠に入れると重なります。

場面 すること
印刷する時刻 前日の閉店前と、当日の朝。決まった時刻にする
印刷した時刻 紙の上に手で書くか、週のシートの空いたセルに =NOW() を入れて時刻の表示形式にする
紙に書き足した その日のうちに一覧へ入れ、入れた予約に紙の上で印を付ける
紙で取り消しを受けた 線で消して、一覧の状態を「取消」にし、連絡日を入れる
置き場所 お客様から見えない側に置く。終わった紙はまとめて処分する

週の表は、横向きで印刷すると、2人分の14列が1枚に収まりやすくなります。1行目と2行目を各ページに出す設定は、次の場所にあります。

Googleスプレッドシート Excel
向き 印刷の設定の「ページの向き」で「横向き」 印刷の画面で横向きを選ぶ
見出しの行をくり返す 1行目と2行目を固定してから、印刷の設定の「ヘッダーとフッター」にある「固定行を繰り返す」 「ページ レイアウト」タブの「印刷タイトル」で、「上部で繰り返す行」に $1:$2
一部だけ印刷 範囲を選び、印刷対象を「選択中のセル」 範囲を選び、印刷の画面で選択した部分を印刷する

担当が3人で21列になると、文字が小さくなります。その場合は、1日を1枚にする、月〜水曜と木〜日曜の2枚に分ける、のように印刷する範囲を分けます。

動かして確かめた結果

この記事の式は、2026年11月3日に、Node.js 24.22.1 の上で HyperFormula 3.5.0 を使って計算しました。HyperFormula は表計算の関数を計算するライブラリで、ExcelやGoogleスプレッドシートそのものではありません。日付は 2026/11/9、時刻は 10:00 のように、人が打つのと同じ文字で入れ、ライブラリに日付と時刻として読ませました。式を下や横へコピーした形は、プログラムで参照をずらして作りました。

本文の例のデータ

本文の例は、2026年11月9日の週、トレーナーAとBの2人、架空の予約28行で動かしました。週の表の一部は次のとおりです。

時刻 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 〃
空き(30分) 19 16 19
60分を始められる 17 15 17

Bの10時30分〜11時30分は、10時〜14時のシフト外の枠止めに、10時30分〜12時の体験を入れてしまった例です。11月10日のAは、18時の甲の予約を取り消した後に丁の予約を入れた枠で、取消の行は表に出ず、重なりにも数えませんでした。19時30分は、19時〜20時の乙と19時30分〜20時30分の戊が重なっています。

確認の列には、用意した場面のとおりに出ました。文字の 10時 は「時刻を確認」、15時〜14時は「終わりが前」、名前のない担当は「担当を確認」、21時30分〜22時30分は「時間外」、10時15分の開始は「刻みと違う」、状態が空の行は「状態を確認」、取消日のない取消は「取消日を入れる」、2026年10月31日のまま「予約」の行は「来院か無断に」です。

月の数字は、2026年10月の架空の行で、来院2、無断2、取消2、うち直前の取消1、まだの予約1、無断の割合50%でした。当日に連絡のあった取消が1、5日前に連絡のあった取消が0と数えられています。回数券は、4回券で来院2回、予約中2件の券の予約を除く残りが0、別のお客様の予約に同じ券の番号を入れた所に「持ち主の違う予約」、2回券に予約を3件入れた所に「予約が残りを超える」と出ました。

乱数の架空データとの比べ合わせ

次に、乱数で架空の予約を作り、式の結果を、式を使わずにプログラムで別に書いた計算と比べました。担当3人、2026年11月9日から4週分と、過ぎた日の10月分です。予約の4分の1ほどに、文字の時刻、刻みと違う時刻、名前のない担当、空の状態、同じ予約ID、取消日のない取消のような入力の誤りを混ぜました。

データ 予約の行 比べたセル 不一致
3組 各400行 10,818 0
1組 2,000行 8,406 0

比べたのは、予約のシートのM列からO列、4週分の週の表のマスと空き枠の数、3か月分の月の数字、30枚の回数券です。本文の途中に1行で載せた式(顧客台帳から名前を引くG2、無断も数える回数券のF2、台帳の来院回数と次回予約)は、数行の架空のデータで手で数えた値と合うことだけを見ました。

この後、別の作業として、本文の式をそのまま取り出し、HyperFormula を使わずに自作した計算の仕組みでも動かしました。境目の例(端がちょうど接する予約、最後の枠ちょうどに終わる予約、取消の後に同じ枠へ入れた予約、続いた空きが3つの所など)と乱数の架空データで、確認の列、週の表、空き枠の数、月の数字、回数券の結果は、式を使わない計算と食い違いませんでした。

1分ずらさない書き方との違い

週の表の条件を、1分ずらさずに "<="&$A3 と ">"&$A3 で書いた形とも比べました。HyperFormula の初期の設定では、ずらさない書き方でも不一致は0でした。HyperFormula は、とても近い2つの数を同じと見なす設定が初期で入っているからです。この設定を切ると、ずらさない書き方は3組で347か所が不一致になり、1分ずらした書き方は0のままでした。

原因は時刻の小数です。10:00 に 0:30 の倍数を足して作った24の枠の時刻のうち、11の枠で、同じ時刻を手で打った値と1京分の1ほどの差が出ました。ExcelとGoogleスプレッドシートが、この差をどう比べるかは確かめていません。どちらで動かしても同じ結果になるように、1分ずらした書き方にしています。

ずれやすい所

動かす中で分かった、ずれやすい所は次のとおりです。

起きること 結果 この記事の式での手当て
時刻を 10時 と文字で入れた 週の表に出ず、その枠は空きに見えた 確認の列に「時刻を確認」
開始が 10:15 10時の枠が空きに見え、10時30分から出た 確認の列に「刻みと違う」
休憩を枠止めにしていない その時間も空きに数えた 休憩とシフトの外は枠止めの行で入れる
取り消した行を数える 空いた枠に入れた次の予約が「重複」になる 状態が「取消」の行は数えない
過ぎた予約を「予約」のまま残す 回数券の予約中に残り、使った回数に入らない 確認の列に「来院か無断に」
状態や担当が空の行を、条件の値にする ライブラリでは COUNTIF が条件の誤りのエラーを出した 空かどうかを先に見てから数える
SUMPRODUCT の中で範囲を比べる ライブラリでは配列の計算の設定を入れないと #VALUE! 設定を入れて動かした

確かめていないこと

ExcelとGoogleスプレッドシートの実物では、どの式も動かしていません。特に次の点は、実物で違うことがあります。

  • 時刻の小数の比べ方。1分ずらしたのは、この違いを避けるためです
  • 10時 や全角の 10:00 のような入力が、時刻になるか文字のままか。アプリや設定で違うことがあるので、半角の 10:00 にそろえます
  • 空のセルを条件にしたときの COUNTIF の動き。ExcelのCOUNTIFSのヘルプには、空のセルを条件にすると0と見なすとあります。この記事の式は、空かどうかを先に見てから数えています
  • SUMPRODUCT の中の範囲の比べ方。ExcelのSUMPRODUCTのヘルプには、範囲の比べ方を中に書く例があります。Googleのヘルプには、その例はありません
  • 予約が2,000行のとき、ライブラリでは4週分の週の表の計算に約10秒かかりました。実物での速さは測っていません

プルダウン、条件付き書式、印刷の設定、共有の設定、複数の人の同時の書き込みも試しておらず、手順はヘルプによるものです。予約と日付はすべて架空です。使う前に、手順6のとおり架空の予約で確かめてください。

会社サイトの関連ページパーソナルジムのWeb集客と予約の仕組み

ExcelとGoogleスプレッドシートで詰まる所

予約表はどちらでも同じ形で作れます。違いが出るのは、版、同時の書き込み、印刷の設定の場所です。

詰まる所 Googleスプレッドシート Excel
MINIFS そのまま使える ヘルプの対応する版は Excel 2019 以降と Microsoft 365。それより前の版では週の表の式が動かない
複数の人が同時に書く 共有した人どうしで書ける Microsoft 365 で、OneDrive か SharePoint に保存して共同編集する。ヘルプの共同編集の条件はこの保存場所で、受付のパソコンの中に置いたファイルは条件に入らない
時刻の入れ方 半角の 10:00 半角の 10:00。日本語の書き方が時刻になることもあるので、店の決まりとして半角にそろえる
週の初日の式 WEEKDAY(…,3) は月曜日が0 同じ
印刷の見出しの行 行を固定して「固定行を繰り返す」 「印刷タイトル」の「上部で繰り返す行」
ファイルの置き場 店のアカウントのドライブ 1か所に置き、メールやUSBメモリで回さない

Excelで受付のパソコン1台に置き、1人だけが書く形なら、同時の書き込みの問題は起きません。2人以上が書くなら、書く人を1人に決めるか、Googleスプレッドシートにするか、Microsoft 365 の共同編集にします。2つのファイルに別々に書いて後で合わせる形は、二重予約のもとになります。

やってはいけないこと

予約表で、後から直すのに手間がかかる失敗です。

ポイント1. 週の表のマスに直接書き込む

式が消え、一覧と表の2か所に予約がある形になります。書くのは一覧だけにします。

ポイント2. 取り消した予約の行を消す

直前の取消や、取り消しが多い時間帯を後から数えられません。状態を「取消」にして残します。

ポイント3. 休憩やシフトの外を入れずに使う

空いて見える時間に予約が入り、空き枠の数も多く出ます。枠止めの行で入れます。

ポイント4. 紙だけに予約を書いて終える

一覧を見た別の人が、同じ枠に予約を入れます。書き足した分は、その日のうちに一覧へ入れます。

ポイント5. 店の担当ごとに別のファイルを作る

担当をまたいだ空きが見えず、同じお客様の予約が2つのファイルに分かれます。ファイルは店に1つにします。

表で足りなくなる線と、Web予約・LINEへ移る判断

予約表からWeb予約やLINEの予約へ移る線は、行数より、手で埋めている作業で決めます。Googleスプレッドシートの上限は2,000万セルで、1日20件の予約を何年続けても、先にセルの上限に届くことはまずありません。先に来るのは次のことです。

起きていること 表で足りない理由 移る先
施術やセッションの最中の電話に出られず、折り返しで予約を取りこぼす 予約表は、お客様が自分で取る入口にならない お客様が空きを見て取れるWeb予約
営業時間の外に、LINEやメールで予約の連絡が多い 翌朝まで返事ができない 空きの確認と確定がその場で済む仕組み
2人以上が同時に一覧へ書き、確認の列に「重複」が毎週出る 式は重なりを見つけるだけで、止められない 枠を取った時点で他の人が取れなくなる仕組み
前日の連絡を毎日手で送っている 表は送れない 予約から確認やリマインドを送る形
回数券の残りの行き違いが続く 状態の変え忘れを防げない 予約と回数を同じ記録に持つ仕組み
担当が4人以上になる、2店舗目を出す 週の表の列が足りず、店をまたぐと記録が分かれる 担当と店舗を分けて持つ予約システム

まだGoogleの道具の範囲で済む店は、Googleカレンダーとフォームで予約を受ける記事の形が次の段です。専用の予約システムを比べる段階なら、ジム・スタジオの予約システムの選び方と整体院の予約システムの選び方に、業態ごとに要る機能を書いています。製品の一覧を見る前に自社の予約の型を書き出す考え方は、会社のコラム予約管理システムの選び方にまとめています。Excelやスプレッドシートの管理が限界に近いときの全体の見方は、Excelの業務管理が限界になったときのサインのコラムにあります。

LINEで予約を受けたい店は、公式LINEと予約・顧客管理をつなぐ順番の記事から読みます。自社で作ると決めた後の手順はLINE予約システムの作り方の記事に、同時の申込で予約が重ならない作り方は二重予約の防止の記事に書いています。

移るときも、予約の一覧は無駄になりません。1行1予約で、日付、担当、お客様、状態がそろっていれば、そのまま移す材料になります。列の対応や照合の進め方はExcelから業務システムへのデータ移行の記事にまとめています。

使い始める前のチェックリスト

予約表を本番で使う前に、次の項目を確かめます。

  • ファイルのオーナーが店のアカウントで、共有は必要な人だけに絞っている
  • 5枚のシートを、名前のとおりに作った
  • 設定のシートの担当、最初と最後の枠、枠の長さを店の形にした
  • 予約のシートの式を、予約の見込みより多めに下へコピーした
  • 担当と状態の列に、プルダウンを付けた
  • 時刻は半角の 10:00 で入れると、書く全員が知っている
  • 休憩とシフトの外を、枠止めの行で入れた
  • 取り消しは行を消さず、状態と連絡日を入れると決めた
  • 過ぎた予約を「来院」か「無断」に変える人と時刻を決めた
  • 確認の列と週の表の「重複」に色が付く
  • 印刷する時刻と、紙に書き足した分を一覧へ戻す人を決めた
  • 架空の予約で、週の表、確認の列、空き枠の数を確かめた

お客様の情報の扱いは専門家に確かめてください。

自社でやる場合と、任せる場合

自社でやる場合は、この記事の列と式で形にできます。続けるのに要るのは、予約を受けたその場で一覧に1行入れる決まりと、毎日の終わりに過ぎた予約の状態を変える人です。1〜2人の店では、施術やセッションの合間に入れることになるので、入れる時刻を決めておきます。どの時間を枠止めにし、何日前からを直前の取消とするかは、任せる場合でも店でしか決められません。

任せる場合、株式会社bundlyzeは、Web・システムのことは何でも対応できます。予約の型の整理から、既製の予約サービスの設定、ホームページへの組み込み、予約システムの開発まで受け持ちます。公式LINEと予約・顧客管理をつなぐ仕組みも開発しています。ジム・スタジオ・整体院の相談はフィットネス・健康業界向けのご案内から受け付けています。

出典(一次情報)

ExcelとGoogleスプレッドシートの機能についての説明は、次の公式の資料に基づいています。確認日はどれも2026年11月3日です。ヘルプは更新されることがあるので、作業の前に最新のものを確かめてください。

2枚に分ける形、列の項目、状態の5つの言葉、1分ずらして比べる書き方、確認の列の言葉、空き枠の数え方、印刷の使い方、足りなくなる線の表、チェックリストは、この記事で決めた進め方で、上の資料が示した手順ではありません。動かした結果は架空のデータによるもので、実際の店の予約や数字ではありません。

よくある質問

予約表のテンプレートは、何から作ればよいですか?

「設定」「予約」「週」の3枚のシートを作るところから始めます。予約のシートは1行に1件の予約を書く一覧で、手で書くのはここだけです。週のシートは、縦に時間、横に日付と担当を並べた表で、一覧から式で埋まります。週の表に直接書き込むと、二重予約の検出や件数の集計ができなくなるので、書く場所は一覧に1つにします。

予約表はExcelとGoogleスプレッドシートのどちらで作ればよいですか?

受付と担当が別の場所から同じ予約表を見るなら、Googleスプレッドシートのほうが1つのファイルを保ちやすくなります。受付のパソコン1台で1人が書くならExcelでも足ります。この記事の式は、ExcelではMINIFSが使えるExcel 2019以降を前提にしています。Excelで複数の人が同時に書くには、Microsoft 365とOneDriveかSharePointへの保存が必要です。

二重予約は、予約表でどうやって見つけますか?

予約の一覧に「確認」の列を作り、同じ日・同じ担当で時間が重なる行がほかにあれば「重複」と出します。週の表でも、同じ枠に2件以上あるマスに「重複」と出ます。取り消した行は数えません。休憩やシフトの外の時間は「枠止め」の行として入れておくと、そこへ入れた予約も重複として見つかります。

キャンセルした予約は、予約表から消してよいですか?

消さずに、状態を「取消」に変え、取り消しの連絡を受けた日を入れます。行を消すと、直前の取り消しや無断の回数を後から数えられなくなります。週の表は「取消」の行を表示しないので、空いた枠はそのまま空きとして見えます。

予約表を紙に印刷して使ってもよいですか?

使えます。週のシートを横向きで印刷し、1行目と2行目を各ページに繰り返す設定にします。ただし、紙は見るためのもので、予約の元は一覧です。紙に書き足した予約は、その日のうちに一覧へ入れ、入れたら紙に印を付けます。印刷した時刻を紙に書いておくと、どの時点の表かが分かります。

予約表からWeb予約やLINEの予約に移るのは、どの時点ですか?

件数より、手で埋めている作業で決めます。電話の折り返しで予約を取りこぼしている、営業時間の外に予約の連絡が多い、2人以上が同時に一覧へ書いて重なる、前日の連絡を毎日手で送っている、回数券の残りの行き違いが続く、のどれかが毎週起きるなら移る時期です。

この記事の書き方と確認の方針