目次
RFM分析は、最終購入からの経過日数(R)、購入回数(F)、購入金額(M)から顧客の購入傾向を整理する方法です。Excelでは、注文データを1注文1行に整え、同じ期間で顧客別に集計してから分類します。
この記事では架空の6注文を使い、関数で作った結果と元データを照合し、無料ツールへ渡す4列まで作ります。CRMやECから取り出した商品別の明細を、そのまま貼り付けて購入回数を誤るケースを防ぐ手順です。
最初に決めるのはスコアより集計ルール
IBMのRFM集計の説明でも、顧客IDで取引をまとめ、最新の取引日・取引回数・合計金額を顧客ごとの1行にします。計算前に、次の条件を固定します。
| 決める項目 | この記事の計算例 | 実データでの確認点 |
|---|---|---|
| 対象期間 | 2026年1月1日〜9月25日、両端を含む | 全顧客で同じ期間か |
| 購入日 | 日付のみ。時刻は含めない | 注文日・決済日・出荷日を混在させない |
| 1回の購入 | 有効な注文IDを1件として数える | 1注文が商品別の複数行になっていないか |
| 購入金額 | 値引き・返品を反映した対象注文の金額 | 税・送料・返品の扱いを統一しているか |
| 対象顧客 | 期間内に有効な注文が1件以上ある顧客 | 未購入者は別の一覧で扱う |
返品の処理方法も記録します。たとえば「キャンセル・全返品の注文を除外し、一部返品は注文金額から差し引く」と決めたら、回数・日付・金額すべてにその条件を適用します。これは本記事の集計方針の例で、すべての業務に共通する会計ルールではありません。返品を返品日の別行で管理しているデータは、注文IDとの対応を整理してから使います。
商品明細を注文IDだけで重複削除すると、金額まで消してしまいます。商品ごとの金額なら注文単位で合計し、各商品行に注文総額が繰り返されているなら総額を1回だけ採用します。どちらの形式かを出力元で確認してください。
架空の6注文をExcelに置く
以下は実在の顧客を含まない説明用データです。「注文」シートのA1:D7に入力します。日付はExcelの日付値、金額は通貨記号や「円」を付けない数値にします。顧客ID・注文IDは文字列として扱います。
| 購入日(A列) | 顧客ID(B列) | 注文ID(C列) | 購入金額(D列・円) |
|---|---|---|---|
| 2026/01/10 | C001 | O001 | 12000 |
| 2026/03/01 | C002 | O002 | 8000 |
| 2026/06/15 | C001 | O003 | 18000 |
| 2026/08/20 | C003 | O004 | 45000 |
| 2026/09/05 | C002 | O005 | 7000 |
| 2026/09/20 | C001 | O006 | 20000 |
この時点で6行=6注文、購入金額の合計は110,000円です。注文IDの重複、顧客IDの空欄、文字列のままの日付、金額列の空欄があれば、先に修正します。
別の「集計」シートでH1に「開始日」、I1に「基準日」と書き、H2に 2026/01/01、I2に 2026/09/25 を日付値として入力します。A1:E1は次の見出しにします。
| A列 | B列 | C列 | D列 | E列 |
|---|---|---|---|---|
| 顧客ID | 最終購入日 | 購入回数 | 購入金額 | R日数 |
A2:A4にC001、C002、C003を入力します。実データでは顧客ID列のコピーから重複を除きます。元の注文データ自体を顧客IDで重複削除しないでください。
顧客別のR・F・Mを計算する関数は?
以下はExcel 2019以降またはMicrosoft 365を想定します。例では6注文なので参照範囲を2〜7行にしています。実データでは全式の終端行を同じ行まで伸ばしてください。顧客IDは例のような英数字とし、条件式で特別な意味を持つ *・?・~ を含めません。
- 購入回数を数える。集計シートのC2に次の式を入れます。
=COUNTIFS(注文!$B$2:$B$7,A2,注文!$A$2:$A$7,">="&$H$2,注文!$A$2:$A$7,"<="&$I$2)
顧客ID・開始日・基準日の3条件をすべて満たす注文を数えます。COUNTIFSの公式説明では、各条件範囲の行数・列数を揃える必要があります。1注文1行なので、この件数がFになります。
- 最終購入日を求める。B2に次の式を入れ、表示形式を日付にします。
=IF(C2=0,"",MAXIFS(注文!$A$2:$A$7,注文!$B$2:$B$7,A2,注文!$A$2:$A$7,">="&$H$2,注文!$A$2:$A$7,"<="&$I$2))
MAXIFSは条件を満たす値の最大値を返します。日付の最大値が最新の購入日です。期間内の注文が0件なら空欄にし、日付として扱わないようにします。
- 購入金額を合計する。D2に次の式を入れます。
=SUMIFS(注文!$D$2:$D$7,注文!$B$2:$B$7,A2,注文!$A$2:$A$7,">="&$H$2,注文!$A$2:$A$7,"<="&$I$2)
SUMIFSで同じ3条件の金額を合計します。これがMです。Fだけ直近1年、Mだけ生涯累計といった混在を避けます。
- Rの日数を計算する。E2に
=IF(C2=0,"",$I$2-B2)と入力し、表示形式を数値・小数点以下0桁にします。B2:E2を4行目までコピーします。
この例は日付のみのデータを前提にしています。購入日時が入っている場合は、購入日の列を別に作って =INT(元の日時セル) で日付に揃えてから使います。文字列の日時は、先にExcelの日付値へ変換します。
集計結果が正しいか、どこを照合する?
計算結果は次のとおりです。Rは2026年9月25日から最終購入日を引いた日数で、小さいほど最近購入しています。
| 顧客ID | 最終購入日 | F・購入回数 | M・購入金額 | R・経過日数 |
|---|---|---|---|---|
| C001 | 2026/09/20 | 3 | 50,000円 | 5日 |
| C002 | 2026/09/05 | 2 | 15,000円 | 20日 |
| C003 | 2026/08/20 | 1 | 45,000円 | 36日 |
| 合計 | — | 6 | 110,000円 | — |
確認する順序は、①購入回数の合計が対象注文数と一致する、②購入金額の合計が対象注文の合計金額と一致する、③顧客を1人選び、最新日と回数・金額を元の注文で確認する、です。この例のC001なら12,000+18,000+20,000=50,000円、3回です。
期間外の注文を含む実データでは、元データ全体ではなく同じ期間・除外条件の注文と照合します。合計が合っていても、別顧客への付け替えは見つからないため、顧客単位の確認も必要です。
4列を無料ツールへ渡して分類する
集計が合ったら、Rの日数列ではなく、顧客ID・最終購入日・購入回数・購入金額の4列を使います。最終購入日の表示形式を yyyy-mm-dd、金額を通貨記号・桁区切りなしにし、A1:D4をコピーします。合計行や購入回数0件の顧客は含めません。
下のデータはタブ区切りです。そのままRFM分析ツールの入力欄に貼り付けても、同じ例を試せます。
顧客ID 最終購入日 購入回数 購入金額
C001 2026-09-20 3 50000
C002 2026-09-05 2 15000
C003 2026-08-20 1 45000
- ツールの集計開始日を
2026-01-01、基準日を2026-09-25にする。 - 上記の4列を貼り付け、初期の分類基準で実行する。
- C001はR5・F2・M2、C002はR5・F2・M1、C003はR4・F1・M2となることを確認する。
- 分布と顧客一覧を見て、必要な対象をCSVで保存する。
初期設定では、Rは30日以内が5、90日以内が4。Fは2回以上5回未満が2、1回が1。Mは30,000円以上100,000円未満が2、それ未満が1です。これはツールの仮の開始値であり、自社の優良顧客を保証する基準ではありません。購入周期・単価が異なる商品群を一緒に扱うかも確認します。
顧客別の最終購入日・回数・金額を貼り付けると、購入傾向の分布と顧客一覧を確認し、CSVで保存できます。
注文の生データを集計する機能ではありません。この記事の手順で1顧客1行に整えて使います。
よくある失敗と、分類後に確認すること
| 失敗 | 起きること | 修正する箇所 |
|---|---|---|
| 商品別の3行を3回の購入とする | Fを過大に評価する | 注文ID単位に集計する |
| Excelの参照範囲が途中で終わる | 新しく追加した注文が漏れる | すべての関数の終端行を更新する |
| ツールの期間だけ変える | 表示期間とF・Mの中身がずれる | Excelから同じ期間で再集計する |
| 期間内1回購入を新規顧客と断定する | 期間以前に買っていた顧客を誤分類する | 全期間の初回購入日を別に確認する |
| 高額購入だけで優良と断定する | 返品や利益、継続状況を見落とす | 注文内容や顧客との接点を確認する |
RFMで分かるのは、定めた期間の購入傾向です。LTVの将来予測や、チャーンレートによる解約の実績集計とは分けて使います。Rが大きくても、購入周期が長い商品では自然な場合があります。
分類後は対象顧客を数件見て、何を案内すると役立つかを決めます。カスタマーサクセスの接点記録や問い合わせ内容も合わせれば、単に購入回数が少ない顧客と、利用に困っている顧客を区別して検討できます。毎月更新するなら、対象期間・除外条件・分類の境界を同じ記録に残し、基準を変えた月を明示してください。
よくある質問
RFM分析はExcelのどの関数で計算できますか?
顧客別の最終購入日はMAXIFS、購入回数はCOUNTIFS、購入金額はSUMIFSで集計できます。この記事はExcel 2019以降またはMicrosoft 365を想定し、1注文1行に整えたデータを使います。商品明細の行数を購入回数として数えないことが重要です。
RFM分析の集計期間は何か月にすればよいですか?
一律の正解はありません。通常の購入周期と施策の目的に合わせ、まず全顧客に同じ期間を適用します。期間を変えると購入回数と購入金額も変わるため、基準日だけを変えず元データから集計し直します。
RFMのスコアは5段階でなければいけませんか?
5段階は必須ではありません。分布や用途に応じて段階数と境界を決めます。本記事の無料ツールではR・Fを5段階、Mを3段階に分けますが、その初期値は業界標準ではなく変更可能な仮の開始値です。