フィットネス・健康

整体院の顧客管理台帳の項目とスプレッドシートの作り方

整体院の顧客管理を、そのまま使える台帳の項目表とスプレッドシートの関数でまとめます。重複の防ぎ方、次回予約・回数券・来院間隔の持ち方、来院が空いた人の見つけ方、カルテの分け方、システムへ移す手順まで。

この記事の結論:整体院の顧客管理は、スプレッドシートに「顧客(1人1行)」「来院(1回1行)」「回数券(1枚1行)」の3枚を作り、顧客IDでつなぐ形から始めます。来院回数・最終来院日・来院間隔・回数券の残りは手で書かず、来院の行から関数で数えます。来院が空いた人は、全員一律の日数ではなく、その人の平均の間隔と比べて見つけます。カルテは見てよい人が違うので、台帳とは別に持ちます。予約表との二重入力、2店舗目、見られる範囲の分け方、自動の連絡が必要になったら、システムへ移す時期です。

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

この記事は、1〜3店舗の整体院の経営者の方に向けて、顧客台帳の項目と作り方を書きます。予約の仕組みそのものの選び方は整体院の予約システムの選び方の記事に、問診票の項目と健康にかかわる回答の扱いは予約と問診票のWeb化の記事に分けています。ここで扱うのは、予約の後に残るお客様の記録を、どう持ち、どう経営に使うかです。集客全体の順番は整体院の集客をWebで進める順番の記事、関連する記事の一覧は整体院・サロンの業種別ガイドにあります。特定の製品の紹介や比較は扱いません。

整体院の顧客管理は、顧客・来院・回数券の3枚で持つ

整体院の顧客管理は、3枚のシートに分けると、数え間違いが減ります。1枚の表に「1回目の日付、2回目の日付」と横へ列を足していく形にすると、通う回数が増えるほど列が足りなくなり、関数でも数えにくくなるからです。

シート 1行の単位 手で入れるもの 関数で出すもの
顧客 お客様1人 名前、連絡先、案内してよいか、知ったきっかけ 来院回数、初回と最終の来院日、間隔、回数券の残り、判定
来院 来院1回 日付、顧客ID、メニュー、施術者、状態、使った回数券、次回予約日 名前の表示、入力の確認
回数券 回数券1枚 券のID、顧客ID、購入日、回数、有効期限 使った回数、残り、確認

つなぐ鍵は、顧客IDです。電話番号を鍵にすると、ご家族で同じ番号を使う方を分けられません。名前を鍵にすると、同姓同名の方が混ざります。C0001 のような番号を台帳の側で振り、紙のカルテがある院は、カルテの番号と同じにしておくと探しやすくなります。

そのまま使える、整体院の顧客台帳の項目表

顧客シートの項目は、A列からK列までが手で入れる欄、L列からV列までが関数の欄です。同じ順に1行目へ貼れば、この記事の式がそのまま使えます。列の名前はあとで変えてもかまいません。

列 項目 入れ方 何に使うか
A 顧客ID C0001 の形で手で振る 3枚をつなぐ鍵
B 名前 漢字 呼びかけ、確認
C かな 全角カタカナ、空白なし 同じ人の照合、並べ替え
D 電話 ハイフン付きで入れる 連絡、同じ人の照合
E メール そのまま 連絡
F 連絡手段 プルダウン(LINE・メール・電話・なし) 本人が選んだ手段で連絡する
G 案内 プルダウン(可・停止) 案内を送ってよいか
H きっかけ プルダウン(検索・マップ・紹介・看板など) 入口ごとに数える
I 状態 プルダウン(通常・終了・統合済み)。空欄だと判定が出ないので、まず「通常」を入れる 通院を終えた人を一覧から外す
J 統合先ID 重複をまとめたときだけ どの行にまとめたかを残す
K 最後に案内した日 案内を送ったら入れる 同じ人へ続けて送らない
L 電話照合 関数 表記をそろえて比べる
M 重複確認 関数 同じ人の候補を知らせる
N 来院回数 関数 通った回数
O 初回来院 関数 月ごとの新規を数える
P 最終来院 関数 経過日数を出す
Q 2回目まで 関数 初回から2回目までの日数
R 平均間隔 関数 その人の通う間隔
S 経過日数 関数 最後の来院から何日か
T 次回予約 関数 次の予定があるか
U 回数券残り 関数 有効な券の残りの合計
V 判定 関数 来院が空いた人に印を付ける

来院シートと回数券シートは、次の列にします。

シート 列 項目 入れ方
来院 A 来院日 日付
来院 B 顧客ID プルダウン(顧客シートのA列を範囲に指定)
来院 C 名前 関数
来院 D メニュー プルダウン
来院 E 施術者 プルダウン
来院 F 状態 プルダウン(来院・取消・無断)
来院 G 回数券ID 回数券で受けたときだけ
来院 H 次回予約日 会計で次を決めたら入れる
来院 I 確認 関数
回数券 A 回数券ID T001 の形で手で振る
回数券 B 顧客ID プルダウン
回数券 C 購入日 日付
回数券 D 回数 数字
回数券 E 有効期限 日付(期限のない券は遠い日付を入れる)
回数券 F 使った回数 関数
回数券 G 残り 関数
回数券 H 確認 関数

逆に、顧客シートに置かないものも決めておきます。自由に書けるメモの列は置きません。受付が見る場所に、体の状態の話が書き込まれやすいからです。既往歴や服薬も、顧客シートには入れません。住所や生年月日は、郵送や誕生月の案内のように使い道を書けるときだけ足します。

カルテは顧客台帳と分け、見てよい人を絞る

整体院のカルテは、顧客台帳とは別の場所に持ちます。受付も見る連絡先の台帳と、体の状態を書く施術の記録では、見てよい人が違うからです。同じファイルの別のシートを保護したり隠したりする形では、分けたことになりません。Googleのヘルプは、シートの保護について「セキュリティ対策ではありません」と説明し、他のユーザーは保護されたスプレッドシートのコピーを印刷や書き出しできること、閲覧者は非表示のシートの内容にもアクセスできることを挙げています。

持ち方 向いている院 決めておくこと
紙のカルテのまま、台帳だけデータにする まず台帳を整えたい院 カルテの番号と顧客IDを同じにする。保管する棚の鍵
カルテ専用のスプレッドシートを別に作る 院長1人か、施術者が少ない院 共有は施術者だけ。名前を書かず顧客IDで持つ
カルテの機能があるシステムを使う 施術者が複数で、見られる範囲を分けたい院 誰がいつ開いたかが残るか

カルテに書く項目は、日付、顧客ID、担当の施術者、お客様の言葉で聞いた気になる所、行った施術、次回に確かめること、の6つあれば始められます。カルテの保管の期間やお客様の情報の扱いは専門家に確かめてください。

スプレッドシートでの作り方は、7つの手順

Googleスプレッドシートでの作り方は、共有を絞ったファイルを作り、列を並べ、式を入れ、架空の人で試してから本物を移す順番です。先に本物のお客様を入れると、式の誤りを直す間も実データを触り続けることになります。

手順1. 院のアカウントでファイルを作り、共有を絞る

院長個人ではなく、院で持つGoogleアカウントでファイルを作ります。共有は「制限付き」のまま、必要な人のアカウントだけを指定します。共有の設定を「リンクを知っている全員」にすると、Googleアカウントへのログインなしで、リンクを知っている人なら誰でも開けます。お客様の連絡先が入るファイルでは使いません。

手順2. シートを4枚作り、1行目に項目を入れる

「顧客」「来院」「回数券」「設定」の4枚を作り、前の節の項目を1行目に入れます。設定シートは、B1に初回の基準の日数(まず 30)、B2に倍率(まず 2)を入れておきます。顧客シートのD列は、表示形式を「書式なしテキスト」にします。数字だけで入れた電話番号の先頭の0が消えるのを防ぐためです。

手順3. プルダウンを付ける

連絡手段、案内、きっかけ、状態、メニュー、施術者の列にプルダウンを付けます。来院シートのB列は、顧客シートのA列を範囲に指定します。Googleのヘルプのとおり、初期の設定ではリストにない値の入力は拒否されるので、IDの打ち間違いや、「キャンセル」と「取消」の表記の揺れを入口で止められます。

手順4. 顧客シートの関数を2行目に入れ、下へ伸ばす

顧客シートのL列からV列の2行目に、次の式を入れます。A列が空の行は空欄を返すので、お客様の見込みの人数より多めに下へ伸ばしておきます。O列・P列・T列に日付ではなく数字が出たときは、その列の表示形式を日付にします。反対に、S列に 1900/01/29 のような日付が出たときは、その列の表示形式を数字にします。実物のスプレッドシートでも、貼り付けただけだとこの形で出ました。

L2(電話照合)
=IF(D2="","","T"&REGEXREPLACE(ASC(D2&""),"[^0-9]",""))

M2(重複確認)
=IF(OR(L2="",I2="統合済み"),"",IF(MID(L2,2,1)<>"0","電話を確認",IF(COUNTIFS($L:$L,L2,$I:$I,"<>統合済み")>1,IF(COUNTIFS($L:$L,L2,$C:$C,C2,$I:$I,"<>統合済み")>1,"同じ人の候補","電話が同じ"),"")))

N2(来院回数)
=IF($A2="","",COUNTIFS(来院!$B:$B,$A2,来院!$F:$F,"来院"))

O2(初回来院)
=IF(OR($A2="",N2=0),"",MINIFS(来院!$A:$A,来院!$B:$B,$A2,来院!$F:$F,"来院"))

P2(最終来院)
=IF(OR($A2="",N2=0),"",MAXIFS(来院!$A:$A,来院!$B:$B,$A2,来院!$F:$F,"来院"))

Q2(2回目まで)
=IF(OR($A2="",N2<2),"",MINIFS(来院!$A:$A,来院!$B:$B,$A2,来院!$F:$F,"来院",来院!$A:$A,">"&O2)-O2)

R2(平均間隔)
=IF(OR($A2="",N2<2),"",ROUND((P2-O2)/(N2-1),0))

S2(経過日数)
=IF(OR($A2="",N2=0),"",TODAY()-P2)

T2(次回予約)
=IF($A2="","",IF(COUNTIFS(来院!$B:$B,$A2,来院!$H:$H,">="&TODAY())=0,"",MINIFS(来院!$H:$H,来院!$B:$B,$A2,来院!$H:$H,">="&TODAY())))

U2(回数券残り)
=IF($A2="","",SUMIFS(回数券!$G:$G,回数券!$B:$B,$A2,回数券!$E:$E,">="&TODAY()))

V2(判定)
=IF(OR($A2="",I2<>"通常",N2=0,T2<>"",AND(ISNUMBER(K2),K2>P2)),"",IF(N2=1,IF(S2>=設定!$B$1,"初回後",""),IF(S2>=R2*設定!$B$2,"空いた","")))

手順5. 来院シートと回数券シートの関数を入れる

来院シートはC列とI列、回数券シートはF列からH列が関数です。I列とH列の「確認」は、入力の間違いを見つけるための列です。

来院 C2(名前)
=IF(B2="","",IFERROR(XLOOKUP(B2,顧客!$A:$A,顧客!$B:$B),"IDなし"))

来院 I2(確認)
=IF(B2="","",IF(NOT(ISNUMBER(A2)),"日付を確認",IF(COUNTIF(顧客!$A:$A,B2)=0,"IDなし",IF(COUNTIFS($A:$A,A2,$B:$B,B2,$F:$F,"来院")>1,"同じ日に2行",IF(AND(G2<>"",IFERROR(XLOOKUP(G2,回数券!$A:$A,回数券!$B:$B),"")<>B2),"券の持ち主が違う","")))))

回数券 F2(使った回数)
=IF(A2="","",COUNTIFS(来院!$G:$G,A2,来院!$F:$F,"来院"))

回数券 G2(残り)
=IF(A2="","",D2-F2)

回数券 H2(確認)
=IF(A2="","",IF(G2<0,"使いすぎ",IF(AND(E2<TODAY(),G2>0),"期限切れで残あり",IF(AND(G2>0,E2-TODAY()<=30),"期限が近い",""))))

無断の来院でも回数券を1回使う決まりの院は、F2を =IF(A2="","",COUNTIFS(来院!$G:$G,A2,来院!$F:$F,"来院")+COUNTIFS(来院!$G:$G,A2,来院!$F:$F,"無断")) にして、無断の行にも回数券IDを入れます。

手順6. 関数の列を保護し、確認の列に色を付ける

関数の列は「データ」の「シートと範囲を保護」で、編集時に警告を出す設定にしておきます。これは式をうっかり消さないための設定で、見る人を絞るものではありません。確認の列には条件付き書式のカスタム数式 =$M2<>""(来院シートなら =$I2<>""、回数券シートなら =$H2<>"")を付けて、何か出たら色で分かるようにします。

手順7. 架空の10人で試してから、本物を移す

架空の人を10人ほど入れ、初回だけの人、取消だけの人、回数券を使い切った人、期限が切れた人を作ります。関数の結果を手で数えた値と比べ、合っていたら架空の行を消して、本物のお客様を移します。お客様の電話番号を試しに使わず、実在しない番号を入れます。

実際に動かして確かめた結果

この記事の式は、2026年10月31日に、Node.js 24.22.1 の上で HyperFormula 3.5.0 を使って動かしました。HyperFormula は表計算の関数を計算するライブラリで、Googleスプレッドシートそのものではありません。架空の300人・来院2,715行・回数券103枚のデータを含む2組で、来院回数から判定までの9列を、別に書いた集計の処理と全件比べました。不一致は0でした。行の順番を入れ替えても、同じく不一致は0です。月次の式も、来院・新規・再来・2回目の数を4か月分比べて一致しました。

同じ日に、Googleスプレッドシートの実物でも、架空の3人と来院5行でL〜S列とW列の式を試しました。全角とハイフン、空白で入れた同じ電話番号は同じ値にそろい、M列に「同じ人の候補」と出ました。来院回数は「無断」の行を数えず、2回目までの日数、平均の間隔、W列も手で計算した値と合いました。シート名に引用符を付けなくても、$A$2:$A の範囲でも動きました。

動かせなかった所もあります。Excelの実物では、どの式もまだ動かしていません。スプレッドシートの実物でも、T〜V列、回数券、月次の式は試していません。これらは HyperFormula での結果です。プルダウン、保護、フィルタ表示などの画面の操作も試していません。本番の前に、手順7のとおりお使いのスプレッドシートで確かめてください。

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

起きること 結果 この記事の式での手当て
来院の行がない人に MAXIFS を使う 0を返し、経過日数が46,326日になった 来院回数が0なら空欄を返す
来院日が文字で入っている(2026/10/20 が文字のまま) 来院回数には入るのに、最終来院は前の日付のまま 確認の列に「日付を確認」と出す
顧客IDを打ち間違えた どの人の回数にも入らず、合計が合わない 確認の列に「IDなし」と出す。プルダウンで防ぐ
取消や無断の行まで数える 回数と回数券の残りがずれる 状態が「来院」の行だけを数える
「最後に案内した日」に空白などの文字が入る 文字は数より大きいと判定され、その人が一覧から消えた 数字(日付)のときだけ比べる
空でない行を "<>" で数える 空文字のセルまで数えた 日付の列は ">0" で数える

重複は、電話の値をそろえて見つけ、人が決めてまとめる

同じお客様の2行目を防ぐには、新しく入れる前に名前を検索することと、電話番号の表記をそろえた値で比べることを、両方行います。電話の書き方は、ハイフンの有無や全角と半角で変わるので、そのままでは同じ番号と分かりません。

L列は、電話番号を半角にして数字以外を消し、頭に T を付けた値です。ASC は全角の ASCII 文字(数字や英字、記号)とカタカナを半角にする関数です。REGEXREPLACE は文字にしか使えないので、D2&"" で文字にしています。頭の T は、数字だけの値を COUNTIF が数として扱うと照合がずれるおそれがあるので、文字に固定するためのものです。

入力 照合の数字
090-0000-0001 09000000001
090-0000-0001 09000000001
090 (0000) 0001 09000000001
9000000001(先頭の0が消えた値) 9000000001(「電話を確認」と出す)

M列は、何が一致したかで出す言葉を変えています。整体院ではご家族で同じ番号を使う方がいるので、電話が同じだけでは自動でまとめません。

一致したもの M列の表示 扱い
電話とかな 同じ人の候補 本人に確かめてからまとめる
電話だけ 電話が同じ ご家族かもしれないので、別の人のまま残すことが多い
かなだけ 出ない 同姓同名もあるので、入れる前の検索で見つける

かなの表記が揃っていないと、同じ人でも「電話が同じ」にとどまります。出ないより少し弱い知らせになるだけなので、M列に何か出たら必ず目で見ます。

まとめる手順は、次の3つです。架空の2行で試すと、来院2回と2回が4回になり、初回と最終の日付、回数券の残り3回も引き継がれました。

  1. 残す行を1つ決める(来院の記録が多いほう)
  2. 来院シートと回数券シートで、消える側の顧客IDを残す行のIDに置き換える
  3. 消える側の行は消さず、状態を「統合済み」、統合先IDに残す行のIDを入れる

統合済みの行は、M列では数えません。行を消さないのは、間違えたときに戻すためです。スプレッドシートの変更履歴でも以前の版に戻せますが、版を復元すると、復元前のセル単位の編集履歴は消えます。

次回予約・回数券・来院間隔は、来院の行から数える

次回予約・回数券の残り・来院間隔は、数字を書き換える欄を作らず、来院の行から数えます。残りの欄を手で減らす形にすると、取り消しや振替のときに直し忘れ、なぜその数字なのかも追えなくなるからです。

ポイント1. 次回予約は、会計のときに来院の行へ入れる

次回予約は、会計で次の日を決めたら、その日の来院の行のH列へ入れます。顧客シートのT列は、今日以降の日付のうち最も近いものを出します。来院の行に残るので、来院のうち何件で次回を決められたかも数えられます。

ただし、予約の正本は予約表か予約システムのままです。台帳の次回予約日は「次を決めたか」の記録で、予定を変えた日に直し忘れることがあります。週に一度、予約表と見比べる曜日を決めます。電話とWebの予約を1つの記録にする方法は、予約システムの選び方の記事に書いています。

ポイント2. 回数券の残りは、券の回数から使った行を引く

回数券の残りは、券の回数から、来院シートでその券IDが付いた「来院」の行数を引いて出します。動かした見本では、10回券を8回使った人の残りは2回でした。5回券を3回使い、期限が切れた人は、顧客シートの残りには入らず、回数券シートに「期限切れで残あり」と出ました。

取消の行は使った回数に入らないので、予約を取り消しても残りは自然に戻ります。紙の回数カードから移すときは、切り替えの日の残りを回数にして1枚として入れます。購入と消化を1件ずつ持つ考え方は、回数券の記録の持ち方の記事でも扱っています。

ポイント3. 来院間隔は、平均と直近の2つで見る

R列の平均間隔は、最初と最後の来院の間を、回数から1を引いた数で割った値です。長く休んだ時期があると、この平均は実際の通い方より長く出ます。7日おきに通い、途中で長く空いた架空の人では、平均は21日、直近3回の間隔は7日でした。

直近の通い方を見たいときは、W列に次の式を足します。来院が4回に満たない人は空欄になるので、判定の式はR列のままにして、W列は目で見る欄として使います。

W2(直近3回の間隔)
=IFERROR(ROUND((P2-LARGE(FILTER(来院!$A$2:$A,来院!$B$2:$B=$A2,来院!$F$2:$F="来院"),4))/3,0),"")

来院が空いた人は、その人の間隔と比べて見つける

来院が空いた人を探すときは、全員を同じ日数で切らず、その人の平均間隔と比べます。週に1回通う人の14日と、月に1回通う人の14日では、意味が違うからです。V列は、最後の来院からの日数が平均間隔の2倍以上になり、次回予約がない人に「空いた」と出します。初回だけの人には間隔がないので、設定シートの日数(まず30日)に達したら「初回後」と出します。

2026年10月31日を基準に、架空の8人で動かした結果です。比べるために、一律に「60日空いた人」で探した場合も並べました。

架空の人 回数 最終来院 平均間隔 経過日数 判定 60日で探すと
週1回の人 8 10月17日 7日 14日 空いた 出ない
月1回の人 6 10月5日 30日 26日 (空欄) 出ない
初回だけの人 1 9月20日 ― 41日 初回後 出ない
11月5日に次回予約がある人 6 9月15日 14日 46日 (空欄) 出ない
取消だけの人 0 ― ― ― (空欄) 出ない
途中で長く休んだ人 13 8月12日 21日 80日 空いた 出る
案内を止めた人 4 7月13日 14日 110日 空いた 出る
通院を終えた人 4 7月13日 14日 110日 (空欄) 出る

一律の60日では、週1回の人と初回だけの人を見落とし、通院を終えた人を拾います。V列の判定なら、見落としていた2人が出て、終えた人は外れます。

案内を止めた人にもV列は出るので、一覧を見るときはG列も合わせて絞ります。「データ」の「フィルタビューを作成」で、V列に値がある人、G列が「可」の人に絞り、S列で並べ替えます。普通のフィルタは同じ表を見ている全員の画面が変わりますが、フィルタ表示は他の人の表示を変えません。この見本では、週1回の人、初回だけの人、途中で長く休んだ人の3人が残りました。

案内を送ったら、K列に日付を入れます。K列の日付が最終来院より新しい間は、V列は空欄になります。また来院すれば、条件を満たしたときに再び出ます。架空の3人で試すと、案内前の人は「空いた」、案内後の人は空欄、案内の後に再び来た人は「空いた」と出ました。同じ人に同じ案内が続けて届かない作りです。

案内は、F列の手段で、本人が受け取ると選んだ人にだけ送ります。文面は、受付時間や予約の入口のお知らせにとどめ、体の状態には触れません。受け取る人の不安をあおる言い方もしません。

台帳が整うと、経営の数字が毎月見える

顧客台帳の使い道は、名簿より経営の数字です。整体院は、初回に来た人が2回目も来るかで毎月の来院数が変わります。次の表を「月次」シートに作り、A列に月の初日を入れると、月の終わりに同じ形で数字を並べられます。

列 見る数字 2行目の式
B 新規 =COUNTIFS(顧客!$O:$O,">="&A2,顧客!$O:$O,"<"&EDATE(A2,1))
C 来院数 =COUNTIFS(来院!$A:$A,">="&A2,来院!$A:$A,"<"&EDATE(A2,1),来院!$F:$F,"来院")
D 再来 =C2-B2
E 30日以内に2回目 =COUNTIFS(顧客!$O:$O,">="&A2,顧客!$O:$O,"<"&EDATE(A2,1),顧客!$Q:$Q,"<=30")
F 2回目の割合 =IF(B2=0,"",E2/B2)
G 次回を決めた来院 =COUNTIFS(来院!$A:$A,">="&A2,来院!$A:$A,"<"&EDATE(A2,1),来院!$F:$F,"来院",来院!$H:$H,">0")

E列は、初回から30日たたないと確定しません。今月と先月の割合は低く出るので、30日たった月だけを比べます。

数字ごとの使い方は次のとおりです。

数字の動き 見るところ 次にすること
新規はあるのに、2回目の割合が低い 初回の説明と、会計のときの次回の案内 初回の終わりの流れを見直す
次回を決めた来院が少ない 施術者ごとの声のかけ方 会計のときの案内をそろえる
「空いた」の人が増えている 回数券の残りがある人が多いか 残りがある人から連絡する
回数券の「期限が近い」が多い 券の期限と通う間隔が合っているか 期限の前に案内する。券の決まりを見直す
きっかけごとに2回目の割合が違う H列で分けた新規と2回目 2回目まで来る入口に手間をかける

きっかけごとの数字は、=COUNTIFS(顧客!$H:$H,"検索",顧客!$N:$N,">=1") と、同じ式の ">=2" で出せます。Googleマップからの予約の数え方は、整体院のGoogleマップ対策の記事に書いています。

Excelで作るときに変える所

整体院の顧客管理はExcelでも同じ形で作れます。院のパソコン1台で、1人が入力するならExcelで足ります。受付と施術者が別の場所から同じ台帳を見るなら、Googleスプレッドシートのほうが1つのファイルを保ちやすくなります。ファイルをメールやUSBメモリで回す形は、どちらが新しいか分からなくなるので避けます。

変える所 Googleスプレッドシート Excel
MAXIFS・MINIFS そのまま Excel 2019以降。2016以前では使えない
XLOOKUP そのまま Microsoft 365とExcel 2021以降。古い版はVLOOKUPに置き換える
FILTER(W列) そのまま Excel 2021以降。$A$2:$A の形は書けないので $A$2:$A$5000 のように下端まで書く。古い版ではW列を使わない
電話照合 ASC+REGEXREPLACE 下の式に置き換える

Excelの電話照合は、ハイフンと空白を消す次の式にします。全角の数字はそろわないので、入力の決まりとして半角で入れます。この式は HyperFormula で3通りの書き方を試し、同じ値になりました。Excelの実物では動かしていません。

=IF(D2="","","T"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(D2,"-","")," ","")," ",""))

スプレッドシートでは足りなくなる線

スプレッドシートからシステムへ移す線は、行数ではなく、手間と事故で決めます。Googleスプレッドシートの上限は2,000万セルです。1日20件、月25日の院が5年続けても、来院シートは3万行、9列なら27万セルで、上限よりずっと手前です。先に来るのは、次の6つです。

起きていること なぜ足りないか 次の手
予約表と台帳に同じ内容を2度入れている 写し忘れと日付のずれが毎週出る 予約の記録から来院の行を作る
2店舗目を出す 1つのファイルだと全店の全員が見え、分けると同じ人が2行になる 店舗をまたぐ1つの顧客の記録にする
見られる範囲をスタッフごとに分けたい シートの保護はセキュリティ対策ではない 役割ごとに見られる範囲を分ける
確認やリマインドを自動で送りたい 関数は計算するだけで、送れない 予約の状態から連絡を送る
回数券の残りの行き違いが続く 行の直し忘れを防げない 予約と回数の記録を同じ仕組みにする
確認の列に毎週いくつも出る 入力の決まりが守られにくくなっている 入れる項目を減らし、選ぶだけの画面にする

1つでも当てはまれば、すぐ全部を作り直す必要はありません。予約だけを既製のサービスにして台帳と書き出しでつなぐ、LINEの連絡だけを足す、のように足りない所から直します。手で作るか開発するかの分かれ目はノーコードと開発の分かれ目の記事に、LINEとのつなぎ方は公式LINEと予約・顧客管理をつなぐ順番の記事に書いています。

台帳をシステムへ移すときは、6つの手順で進める

システムへ移すときは、台帳を整えてから書き出し、移した後に数字を照らし合わせます。3枚に分けて顧客IDでつないだ台帳は、そのままシステムの記録の形に近いので、移す作業が軽くなります。

手順1. 台帳を整える

顧客シートのM列、来院シートと回数券シートの確認の列に出ている内容を、すべて見直します。ご家族で電話が同じ行のように、確かめたうえで残す行もあります。作業の前にファイルのコピーを取ります。

手順2. 移す範囲を決める

通っている人と、回数券の残りがある人を優先します。古い来院の行まで移すかは、新しいシステムで来院間隔を見たいかで決めます。移さない行は、読むだけのファイルとして残します。

手順3. 列の対応表を作る

台帳の列と、新しいシステムの項目を1行ずつ対応させます。関数の列は移さず、手で入れた列だけを移します。来院回数や残りは、新しいシステムの側で数えるものだからです。

手順4. シートを書き出す

「ファイル」の「ダウンロード」から形式を選んで、シートごとに書き出します。読み込む側では、電話番号の列を文字として扱います。架空の300人で、電話番号を数として読み込むと、人数300と来院の合計2,403はどちらも合ったのに、電話番号は300人すべてで先頭の0が消えました。文字として読むと300人すべて一致しました。合計が合っても、電話は別に確かめる必要があります。

手順5. 試しに数件を移し、次に全件を照らし合わせる

数件で画面の見え方を確かめてから全件を移します。移した後は、次の4つを移す前と比べます。

比べるもの 台帳の側 合わなかったときに疑うこと
人数 状態が「統合済み」以外の行数 重複、取り込みの失敗
来院の合計 N列の合計 日付の形、IDの対応
回数券の残りの合計 回数券シートのG列の合計 期限切れの扱い
電話番号の一致 L列と移した後の値 先頭の0、文字コード

手順6. 切り替えの日を決め、古い台帳は閲覧のみにする

切り替えの日から新しいシステムだけに書きます。古いスプレッドシートは、共有の権限を「閲覧者」に変えて残します。通っているお客様の回数券の残りは、次の来院のときに本人と一緒に確かめます。列の対応や照合をさらに詳しく進める方法は、Excelから業務システムへのデータ移行の記事にまとめています。

やってはいけないこと

整体院の顧客台帳で、あとから直すのに手間がかかる失敗です。どれも最初の作り方で防げます。

ポイント1. 1つのシートに、来院の日付を横へ足していく

列が足りなくなり、関数でも数えにくくなります。来院は1回1行で、別のシートに持ちます。

ポイント2. 来院回数や残りを手で書き換える

取り消しや振替でずれやすくなります。数字は来院の行から数えます。

ポイント3. 共有のリンクを「リンクを知っている全員」にする

ログインなしで誰でも開けるので、リンクが転送されただけでお客様の連絡先が見えます。必要な人のアカウントだけに共有します。

ポイント4. カルテを同じファイルの別シートに隠す

シートの保護も非表示も、見る人を絞る仕組みではありません。カルテは別に持ちます。

ポイント5. 電話が同じ人を自動でまとめる

ご家族の記録が混ざり、別の方の回数券や来院の記録が見えてしまうおそれがあります。重複が残るよりも重い事故なので、人が確かめてからまとめます。

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

整体院の顧客台帳を本番で使う前に、次の項目を確かめます。

  • ファイルのオーナーが院のアカウントで、共有は必要な人だけに絞っている
  • 顧客・来院・回数券の3枚に分け、顧客IDでつないでいる
  • 顧客シートに自由に書けるメモの列がない
  • カルテを台帳とは別の場所に持ち、見られる人を絞っている
  • プルダウンの列で、リストにない値が拒否される
  • 関数の列に、誤って消さないための保護をかけた
  • 架空の10人で、関数の結果と手で数えた値が合った
  • 取消と無断の行が、来院回数と回数券の残りに入っていない
  • 確認の列に何か出たら色で分かり、誰がいつ見るかを決めた
  • 案内を送ったら「最後に案内した日」を入れる決まりにした
  • 案内を止めた人と通院を終えた人が、連絡の一覧に出ない
  • 週に一度、次回予約を予約表と見比べる曜日を決めた
  • 月の終わりに月次の数字を見る担当を決めた

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

自社でやる場合は、この記事の表と式で形にできます。続けるのに要るのは、毎日の来院の行を入れる人、週に一度、確認の列と次回予約を見る人、月に一度、月次の数字を見る人です。1〜2人の院では院長が兼ねることが多いので、曜日を決めておきます。何を案内し、どの数字で何を変えるかは、任せる場合でも院の側でしか決められません。

任せる場合、株式会社bundlyzeは、Web・システムのことは何でも対応できます。台帳の項目の整理から、システムへの移行、予約やホームページとのつなぎ込みまで受け持ちます。公式LINEと予約・顧客管理をつなぐ仕組みも開発しています。予約や顧客管理の仕組みの相談はシステム開発の案内ページから、ホームページの相談はホームページ制作のご案内から受け付けています。

出典(一次情報)

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

3枚の分け方、項目表、手順、判定の倍率2と初回の30日、足りなくなる線の表、移す手順、チェックリストは、この記事で決めた進め方で、上の資料が示した手順ではありません。動かした結果は架空のデータによるもので、実際の院の数字ではありません。

よくある質問

整体院の顧客管理は、何から始めればよいですか?

スプレッドシートに「顧客」「来院」「回数券」の3枚のシートを作るところから始めます。顧客は1人1行、来院は1回1行、回数券は1枚1行にして、3枚を顧客IDでつなぎます。来院回数や最終来院日は手で書かず、来院の行から関数で数えます。まず架空の数人を入れて式を確かめ、それから紙の台帳やカードの内容を移します。

整体院の顧客管理は、スプレッドシートとExcelのどちらがよいですか?

受付と施術者など2人以上で同じ台帳を見るならGoogleスプレッドシートが扱いやすく、院のパソコン1台で管理するならExcelでもかまいません。MAXIFSやCOUNTIFSなどの式はどちらでも使えますが、ExcelのMAXIFSは2019以降、XLOOKUPはMicrosoft 365とExcel 2021以降です。どちらを選んでも、ファイルをコピーして別々に書き換える形は避けます。

カルテも顧客台帳と同じスプレッドシートに書いてよいですか?

分けます。受付も見る顧客台帳と、体の状態を書くカルテでは、見てよい人が違うからです。Googleのヘルプは、シートの保護はセキュリティ対策ではなく、閲覧者は非表示のシートの内容にもアクセスできると説明しています。カルテは別のファイルにして施術者だけに共有するか、紙のカルテのままにして、顧客IDをカルテの番号にそろえます。

来院が空いた人は、どうやって見つければよいですか?

全員を同じ日数で切らず、その人の平均の来院間隔と比べます。最後の来院からの経過日数が平均間隔の2倍以上になり、次回予約がない人を一覧に出します。初回だけの人には間隔がないので、初回から30日など院で決めた日数を使います。2倍や30日は最初の目安で、院の実情に合わせて変えます。案内を止めた人と通院を終えた人は一覧から外します。

スプレッドシートからシステムへ移すのは、どのタイミングですか?

人数や行数よりも、手間と事故で決めます。予約表と台帳に同じ内容を2度入れている、2店舗目を出す、スタッフごとに見られる範囲を分けたい、確認やリマインドを自動で送りたい、回数券の残りの行き違いが続く、のどれかが起きたら移す時期です。Googleスプレッドシートの上限は2,000万セルで、1〜3店舗の院が先にセル数の上限に届くことはまずありません。

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