RFM分析とは?来店履歴から顧客を分ける方法とExcelでの計算例

RFM分析とは、お客様を「最後にいつ来たか(R)」「何回来たか(F)」「いくら使ったか(M)」の3つの数で点数にし、グループに分ける方法です。美容室・ネイル・整体などの予約制の店では、会計の記録から3つの数を出せるので、Excelだけで始められます。この記事では、予約制の店に合わせたR・F・Mの決め方、期間と基準日、同点の扱い、点数の線、Excelの数式、グループごとの施策、結果の確かめ方を、10人分の計算例で説明します。

RFM分析の3つの指標と、予約制の店での意味
RFMは、Recency(最近)・Frequency(頻度)・Monetary(金額)の頭文字です。一般の解説では通販や小売の購買データを例にすることが多いのですが、予約制の店では「購入」を「会計を済ませた来店」に置き換えると、そのまま使えます。
| 指標 | 一般の意味 | 予約制の店での数え方 | 数えないもの |
|---|---|---|---|
| R(Recency) | 最後に買った日からの日数 | 基準日から、最後に会計した来店日までの日数 | これから先の予約、取り消し・無断キャンセルの予約 |
| F(Frequency) | 期間内に買った回数 | 期間内に会計した来店の回数 | 返品・返金の行、同じ日の追加会計を別の来店として数えること |
| M(Monetary) | 期間内に使った金額 | 期間内の支払い額(税抜・値引き後)。返品・返金は差し引く | 税込と税抜の混在 |
3つのうち、店の打ち手にとくに役立つのはRです。来なくなりかけている人を、離れきる前に見つけられるからです。Fは、その人が店にどれだけなじんでいるかを表します。Mは、同じグループの中で誰を先に手当てするかを決める手がかりになります。
予約制の店では、メニューの単価が大きく変わらないため、MはFとほぼ同じ動きになりがちです。そのため、まずRとFで分け、Mは補助として使うやり方をおすすめします。
売上分析・休眠客の分析との違い
RFM分析は、お客様1人ずつに点数をつける方法です。売上全体を期間・スタッフ・メニューなどの切り口で分ける方法は、サロンの売上分析のやり方で説明しています。しばらく来ていない人に絞って連絡の順番や文面を決めるときは、休眠客の掘り起こしが向いています。RFM分析は、その手前で「どの人が、どのグループにいるか」を全員について出す役目です。
集計の前に決めること:基準日・期間・データの形
RFMの点数は、同じ人でも基準日と期間が変わると変わります。毎月同じ決まりで出さないと、先月と比べられません。始める前に、次の4つを決めておきます。
| 決めること | おすすめ | 理由 |
|---|---|---|
| 基準日 | 毎月の末日 | 月ごとに同じ日で出し直せる |
| 期間 | 基準日までの12か月 | 季節で来る人(成人式・夏の脱毛など)も1年あれば入る |
| 1行の単位 | 会計1回を1行 | メニューごとの行だと、来店回数を多く数えてしまう |
| 金額 | 税抜・値引き後の支払い額 | 税込と税抜が混ざると、Mの線が合わなくなる |
期間はメニューの周期で決める
期間を短くしすぎると、周期の長い人が「1回だけの人」に見えてしまいます。カットやカラーのように1〜3か月で来るメニューが中心なら、12か月で足ります。まつげ・ネイルのように3〜4週間で来るメニューが中心なら、6か月にしてもかまいません。ただし、期間を変えたらFの線も変えます。期間より前に最後に来た人は、この分析の対象から外れるため、休眠・失客の一覧として別に扱ってください。
1行を「会計1回」にそろえる
予約管理の画面から書き出すと、1回の来店がメニューごとに何行にも分かれていることがあります。そのまま数えると、カットとカラーを受けた人の来店回数が2回になります。顧客IDと来店日が同じ行は、金額を足して1行にまとめてから集計してください。同じ方が2つのIDで登録されている場合も、先に1人にまとめます。家族で同じ電話番号を使っている場合は、名前と生年月日などで分けてください。
ExcelでRFM分析をする手順
ここからは、Excelで計算する手順です。シートは「来店」「設定」「集計」の3つを使います。
この記事の表をそのまま使える Excel のテンプレート:leporto-rfm-analysis.xlsx(無料・登録不要)。「設定」「来店」「集計」に下の数式を入れ、6つのグループの人数と90日後の確かめの表を「グループ」のシートにまとめています。R の線は、設定のシートに来店周期を入れると、周期の倍率から出ます。サンプルは下の10人分の計算例と同じ結果になります。

1. 来店のシートを用意する
「来店」のシートに、会計1回を1行として、次の4列を並べます。返品や返金は、マイナスの金額の行として足し、種別を「返品」にします。
| 列 | 中身 | 例 |
|---|---|---|
| A | 顧客ID | A01 |
| B | 来店日 | 2026/9/20 |
| C | 金額(税抜・値引き後) | 9,000 |
| D | 種別 | 会計/返品 |
「設定」のシートには、B1に基準日(例:2026/9/30)、B2に期間の初日を置きます。B2は =EDATE(B1,-12)+1 とすると、12か月前の翌日(2025/10/1)になります。
2. 顧客ごとに3つの数を集計する
「集計」のシートのA列に、顧客IDを1人1行で並べます。来店のシートのA列をコピーし、「データ」タブの「重複の削除」を使うと早くできます。2行目に次の数式を入れ、下の行へコピーします。
| 列 | 項目 | 数式(2行目) |
|---|---|---|
| B | 最終来店日 | =MAXIFS(来店!$B:$B,来店!$A:$A,$A2,来店!$D:$D,"会計",来店!$B:$B,">="&設定!$B$2,来店!$B:$B,"<="&設定!$B$1) |
| C | 経過日数 | =IF(D2=0,"",設定!$B$1-B2) |
| D | 来店回数 | =COUNTIFS(来店!$A:$A,$A2,来店!$D:$D,"会計",来店!$B:$B,">="&設定!$B$2,来店!$B:$B,"<="&設定!$B$1) |
| E | 金額 | =SUMIFS(来店!$C:$C,来店!$A:$A,$A2,来店!$B:$B,">="&設定!$B$2,来店!$B:$B,"<="&設定!$B$1) |
どの数式も、基準日より後の日付を数えません。書き出したデータにこれから先の予約が混ざっていても、点数がずれないようにするためです。B列は日付の表示形式にしてください。MAXIFS はExcel 2019以降とMicrosoft 365で使える関数です。それより前のバージョンでは、ピボットテーブルで顧客IDごとの来店日の最大値を出して代わりにします。
3. 線を決めて1〜5点にする
点数のつけ方には、「決めた線で分ける」方法と「人数で5等分する」方法があります。予約制の店では、R・Fは決めた線で分けるほうが向いています。来店回数は1回・2回の人が多く、同じ値が並ぶため、人数で5等分すると同じ回数の人が別の点数に割れてしまうからです。
R の線は、自店の来店周期をもとに引きます。周期の出し方は休眠客の掘り起こしの「来店周期の計算」で説明しています。次の表は、周期が60日の店の例です。
| 点数 | R(経過日数) | F(12か月の来店回数) | M(12か月の金額) |
|---|---|---|---|
| 5 | 60日以内(周期の1倍まで) | 8回以上 | 80,000円以上 |
| 4 | 61〜90日(1.5倍まで) | 5〜7回 | 50,000〜79,999円 |
| 3 | 91〜120日(2倍まで) | 3〜4回 | 25,000〜49,999円 |
| 2 | 121〜180日(3倍まで) | 2回 | 10,000〜24,999円 |
| 1 | 181日以上 | 1回 | 10,000円未満 |
FとMの線は、自店の分布を見て、各点数に極端に人が偏らないように決めます。数字は表の例のままにせず、自店の客数と単価で置き換えてください。この表を数式にすると、次のとおりです。
| 列 | 項目 | 数式(2行目) |
|---|---|---|
| F | R の点数 | =IF(D2=0,"",IF(C2<=60,5,IF(C2<=90,4,IF(C2<=120,3,IF(C2<=180,2,1))))) |
| G | F の点数 | =IF(D2=0,"",IF(D2>=8,5,IF(D2>=5,4,IF(D2>=3,3,IF(D2=2,2,1))))) |
| H | M の点数 | =IF(D2=0,"",IF(E2>=80000,5,IF(E2>=50000,4,IF(E2>=25000,3,IF(E2>=10000,2,1))))) |
| I | RFM の組み合わせ | =IF(D2=0,"",F2&G2&H2) |
期間内の来店が0回の人は、どの列も空欄になります。点数1の人と混ざらないように、対象外として扱うためです。
同点の人をどう扱うか
決めた線で分ける場合、同じ値の人は必ず同じ点数になります。境目の値をどちらに入れるかは、「60日以内」のように「以内」「以上」で決めておき、数式の <= と >= をその決まりにそろえます。人数で5等分する場合は、並べ替えた順番で切ると、同じ金額の人が別の点数に分かれることがあります。RANK.EQ 関数で順位を出すと、同じ値の人に同じ順位がつくので、この割れを防げます。金額(E列)を人数で5等分するときの数式は次のとおりです。
=IF(D2=0,"",6-ROUNDUP(RANK.EQ(E2,$E$2:$E$11,0)/COUNT($E$2:$E$11)*5,0))
範囲の $E$2:$E$11 は、計算例の10人分です。自店の人数に合わせて広げてください。Rを人数で分けるときは、日数が少ないほど点数を高くするため、RANK.EQ の3つ目の値を 1(小さい順)にします。
10人分の計算例
架空の店(周期60日、基準日2026年9月30日、期間2025年10月1日〜2026年9月30日)の10人で計算した結果です。名前の代わりに顧客IDを使っています。
| 顧客ID | 最終来店日 | 経過日数 | 来店回数 | 金額 | R | F | M | 組み合わせ |
|---|---|---|---|---|---|---|---|---|
| A01 | 2026/9/20 | 10 | 9 | 81,000 | 5 | 5 | 5 | 555 |
| A02 | 2026/9/5 | 25 | 6 | 52,800 | 5 | 4 | 4 | 544 |
| A03 | 2026/7/10 | 82 | 7 | 63,000 | 4 | 4 | 4 | 444 |
| A04 | 2026/9/26 | 4 | 1 | 8,800 | 5 | 1 | 1 | 511 |
| A05 | 2026/4/18 | 165 | 5 | 47,500 | 2 | 4 | 3 | 243 |
| A06 | 2025/12/1 | 303 | 2 | 15,400 | 1 | 2 | 2 | 122 |
| A07 | 2026/8/30 | 31 | 2 | 96,000 | 5 | 2 | 5 | 525 |
| A08 | 2026/6/15 | 107 | 3 | 26,400 | 3 | 3 | 3 | 333 |
| A09 | 2026/9/12 | 18 | 3 | 26,400 | 5 | 3 | 3 | 533 |
| A10 | 2025/11/20 | 314 | 1 | 6,600 | 1 | 1 | 1 | 111 |
A08とA09は金額が同じ26,400円なので、決めた線で分けても、RANK.EQ で人数を5等分しても、2人ともMは3点になります。並べ替えた順番で2人ずつ切ると、片方が2点に落ちます。A05は来店回数が5回あるのに、Rが2点です。よく来ていた人が離れかけている、最初に手を打ちたい人です。A07は2回の来店でMが5点です。回数券をまとめて買った人だと考えられるので、金額だけを見て常連と判断しないようにします(後の「間違えやすい点」で説明します)。
数式が正しいかを確かめるテスト
自店のデータで計算する前に、答えの分かっている行を何行か入れて、数式を確かめます。
| 確かめること | 入れるデータ | 正しい結果 |
|---|---|---|
| 境目の日 | 最終来店日がちょうど60日前(2026/8/1) | R は5点。61日前(2026/7/31)なら4点 |
| 返品 | 会計9,000円と、返品−3,000円の2行 | 来店回数は1回、金額は6,000円 |
| これから先の予約 | 基準日より後の日付の行 | 来店回数にも最終来店日にも入らない |
| 来店0回 | 期間内に会計がない顧客ID | R・F・M がすべて空欄(対象外) |
| 同点 | 同じ金額の2人 | 2人とも同じ M の点数 |
RFMのグループと、グループごとの施策
5×5×5で125通りの組み合わせができますが、小さな店ではグループが細かすぎて施策を分けられません。RとFの組み合わせで6つ程度にまとめると、扱いやすくなります。
| グループ | 条件(例) | 計算例の人 | まず打つ手 |
|---|---|---|---|
| 常連 | R 4〜5、F 4〜5 | A01・A02・A03 | 会計のときに次の予約を取る。割引より、担当の継続と予約の取りやすさで応える |
| 初回の人 | R 4〜5、F 1 | A04 | 2回目の来店につなぐ。来店後のお礼と、周期に合わせた次の案内を送る |
| 育ち中の人 | R 4〜5、F 2〜3 | A07・A09 | 周期を覚えてもらう。次の予約をすすめ、間隔が空きすぎないようにする |
| 離れかけの常連 | R 2〜3、F 4〜5 | A05 | 最優先。担当スタッフから1人ずつ近況をうかがう |
| 離れかけの人 | R 2〜3、F 1〜3 | A08 | 周期を過ぎた人向けの案内を、相手を絞った配信でまとめて送る |
| 休眠の人 | R 1 | A06・A10 | 案内は1回にし、反応がなければ配信の回数を減らす |
M は、同じグループの中で誰から手をつけるかを決めるのに使います。たとえば「離れかけの常連」が20人いて、全員に電話できないときは、Mの高い人から連絡します。初回の人を2回目につなぐ考え方は美容室のリピート率の計算方法と上げ方、休眠の人への連絡の順番と文面の考え方は休眠客の掘り起こしで詳しく説明しています。
RFM分析で間違えやすい点

客数が少ない店で人数を5等分する
客数が数十人の店で人数を5等分すると、1つの点数に数人しか入らず、1人の来店で点数が大きく動きます。100人に満たないうちは、決めた線で分け、グループも上の表のように6つ程度にとどめてください。
回数券や前払いでMが大きく見える
回数券をまとめて買った月は、来店1回でも金額が大きくなります。計算例のA07のように、Mだけが高い人は、回数券の購入かどうかを確かめてください。回数券が多い店では、Mを「購入した金額」ではなく「消化した回数分の金額」で数えるか、回数券の購入の行をMから外して別に見ると、ほかの人と比べやすくなります。どちらにするかを決めたら、毎月同じ数え方を続けます。
季節で来る人を「離れた」と判断する
成人式の着付け、夏前の脱毛、年末だけのヘッドスパのように、年に1〜2回決まった時期に来る人は、Rが低くても離れたわけではありません。期間を12か月にすると、こうした人も来店回数に入ります。最初の来店メニューや来店月で、季節の人を見分けておくと、誤って休眠の案内を送らずにすみます。
取り消しや無断キャンセルを来店に数える
予約の一覧から書き出すと、取り消した予約や無断キャンセルの行が混ざることがあります。会計していない行を数えると、来ていない人のRが良く見えます。来店のシートには、会計した行だけを入れてください。
RFM分析の結果を確かめる
点数をつけただけでは、その分け方が店の役に立っているかは分かりません。次の3つで確かめます。
点数が高いほど、次に来ているか
基準日から90日後に、グループごとに「その90日の間に1回以上来た人の割合」を出します。常連・育ち中の人・離れかけの人・休眠の人の順に割合が下がっていれば、分け方は来店をよく表しています。順番が逆転しているときは、Rの線(周期の倍率)か期間を見直します。
| グループ | 基準日の人数 | 90日以内に来た人数 | 来た割合 |
|---|---|---|---|
| 常連 | ( )人 | ( )人 | ( )% |
| 初回の人 | ( )人 | ( )人 | ( )% |
| 育ち中の人 | ( )人 | ( )人 | ( )% |
| 離れかけの常連 | ( )人 | ( )人 | ( )% |
| 離れかけの人 | ( )人 | ( )人 | ( )% |
| 休眠の人 | ( )人 | ( )人 | ( )% |
来た割合は、来た人数 ÷ 基準日の人数 × 100 で出します。
施策は、送らなかった人と比べる
離れかけの人に案内を送ったら、同じグループのうち送らなかった人(たとえば、顧客IDの末尾が奇数の人)と、90日以内に来た割合を比べます。送った人だけを見ると、もともと来る予定だった人まで施策の効果に数えてしまうからです。
売上だけでなく、粗利も見る
M は売上の金額です。値引きの大きいメニューや、仕入れの高い店販品が多い人は、Mが高くても店に残るお金は多くありません。施策に割引をつけたときは、戻った人の売上から割引と材料費を引いた額でも比べてください。
毎月出し直して、グループの動きを見る
毎月末に同じ決まりで出し直し、先月と今月のグループを並べます。「常連から離れかけの常連へ」移った人は、移ったその月に気づければ、担当から声をかけられます。
Leporto で、RFMの考え方を配信と分析に使うには
Leporto は、予約・顧客・カルテ・売上と集客の分析をまとめて管理できる、予約制の店向けの予約管理システムです。来店の記録が予約と会計から自動でたまるので、Excelに書き出して1行を会計1回にそろえる手間が減ります。
Excelで決めたRとFの線は、配信の相手を絞る条件にそのまま置き換えられます。管理画面のセグメントで、「来店回数」と「最終来店日」の条件を組み合わせて、たとえば「来店回数が2回以上」で「最終来店日が60日前」の人のように絞れます(表示はデモデータ)。利用金額や、期間を決めた来店回数も条件にできるので、R・F・Mの3つで決めたグループをそのまま配信の相手にできます。

条件はAND・ORで組み合わせられ、除外の条件も足せます。「離れかけの常連」や「よく来て金額も大きい人」のように、Excelで分けたグループを1つのセグメントにできます。次の予約がすでに入っている人や、案内の停止を希望した人は、配信の対象から外せます。作ったセグメントには、LINEとメールで、シナリオ配信や日時を決めた配信で案内を送れます。配信の機能はLINE配信・マーケティングの機能で紹介しています。
確かめる段階では、管理画面の「アナリティクス」で、実リピート率(30・60・90・120・180・365日)、失客数、LTV(お客様1人が店にもたらす売上の累計)の実績と予測を見られます。LTVは担当スタッフ・来店のきっかけ・初回来店時のメニューで絞り込めます(表示はデモデータ)。

分析の機能はスタンダードプランから使えます。分析の項目は分析の機能のページにまとめています。自店のデータでどう分けるとよいかの相談は、お問い合わせから受け付けています。
よくある質問
RFM分析は何人くらいのお客様から使えますか?
人数の決まりはありません。数十人の店でも、決めた線で分ける方法なら使えます。人数で5等分する方法は、1つの点数に入る人が少ないと点数が安定しないため、客数が増えてから使うのがおすすめです。
R・F・Mは何段階に分ければよいですか?
一般には5段階がよく使われますが、小さな店では3段階でもかまいません。段階の数は、グループごとに打つ手を変えられるかで決めます。手を分けられないほど細かく分けても、作業が増えるだけです。
期間は12か月と決めなければいけませんか?
決まりはありません。この記事では、季節で来る人も入るように12か月をすすめました。周期の短いメニューが中心なら6か月でもかまいません。期間を変えたらFの線も変え、毎月同じ期間で出し直してください。
RFM分析のテンプレートはありますか?
あります。この記事の「来店」「設定」「集計」の数式と6つのグループを入れた Excel のテンプレート leporto-rfm-analysis.xlsx を、無料・登録不要で配布しています。最終来店日の列は MAXIFS 関数を使うため、Excel 2019以降かMicrosoft 365が前提です。古いExcelで使える代わりの式は、ファイルの「使い方」シートに書いています。
店販だけ買いに来た日は、来店回数に数えますか?
店の決め方しだいです。施術の来店の周期を見たいなら、店販だけの会計は来店回数から外し、金額だけに入れます。外す場合は、来店のシートの種別に「店販のみ」を足し、来店回数の数式の条件を「会計」だけにします。
