ClaudeでABC分析 — 売れ筋と死に筋をPOSのCSVからExcelで出す手順
POSの売上CSVをClaudeに渡し、商品ごとの累積構成比からA・B・C区分の表をExcelで出す手順です。境界の商品を人が検算する方法と、C区分を死に筋と決めつけない見方も扱います。
ABC分析をClaudeに任せると何が手に入るか
ABC分析は、商品を売上の大きい順に並べ、累積構成比でA・B・Cの3区分に分ける手法です。Aが売れ筋、Cが死に筋の候補になります。POSの売上CSVをClaudeに添付すれば、商品別の集計から区分表のExcelファイルまで、チャットで頼むだけで出せます。
Claudeは専用の実行環境でPythonを書いて動かし、.xlsxファイルを作ります。計算そのものは速くて正確です。人が見るべき箇所は、区分の境目にいる商品です。ここは区分のルールの置き方ひとつで結果が変わるため、本記事では境界の検算までを手順に含めます。
週次の売上メモを作る流れはPOS売上CSVをClaudeで分析して店長の週次メモにする手順が扱っています。こちらは時間帯別とカテゴリ別の集計が中心で、商品ごとの区分表は出しません。
使える環境と、渡せるCSVの条件
CSVの分析とExcelの作成は、Claudeの「コード実行とファイル作成」機能が担います。Free・Pro・Max・Team・Enterpriseのすべてで使えます。Free・Pro・Maxでは初期状態で有効です。TeamとEnterpriseでも既定は有効ですが、組織の管理者が設定で止められます。動かないときは、まず管理者に設定を確かめてもらいます。
ファイルについては、次の点が公式のヘルプに書かれています。
- 作れるのはExcel(.xlsx)・PowerPoint(.pptx)・Word(.docx)・PDF
- CSVやTSVをアップロードして分析できる
- アップロードもダウンロードも、1ファイル30MBまで
- ファイル作成は、通常のチャットより利用上限を多く消費する
商品数が数千、期間が1年といったPOSの明細は、30MBに収まらないことがあります。その場合は、期間を分けるか、手元で商品別に集計してから渡します。次の節の手順は、この対処にもなります。
CSVの扱い全般はClaude CSV分析の使い方に書かれています。ExcelをClaudeに触らせる方法はClaude CoworkのExcel・スプレッドシート分析が詳しいです。
商品単位にそろえてから渡す
POSのCSVは、1行が1回の販売(明細)です。ABC分析は商品単位で見るので、Claudeに「商品ごとに合計して」と頼む前に、次の3点を確かめます。
渡す前に決める3点
商品を何で識別するか
商品名は表記ゆれが出ます。JANコードや商品コードの列があれば、それをキーにします。コードが無いPOSでは、名前の揺れを先に報告させます。
期間をそろえる
3か月や12か月など、季節の影響が出にくい長さにします。新商品や終売品が混ざる場合は、販売開始日も列に持たせます。
返品・取消の行の扱い
マイナス金額の行か、取消フラグの列かは、POSによって違います。売上から差し引いた値で順位を付けるのか、差し引く前かを決めておきます。
読み込みが正しいかを見るために、集計の前にいったん止めます。
添付したCSVは、POSの売上明細(2026年7月〜9月)です。
集計の前に、次を報告してください。
- 行数と、期間の最初と最後の日時
- 列名の一覧と、欠損のある列
- 商品コードと商品名の対応で、1コードに複数の名前がある商品
- マイナス金額の行、または取消を示す列の件数
集計はまだ始めないでください。区分のルールは、依頼する前に決めておく
ABC分析の区切りは、累積構成比が70%と90%、あるいは80%と95%といった組み合わせがよく使われます。決まった標準があるわけではないので、店や部門の事情で選びます。
もうひとつ、数字の区切りより結果を左右するのが「境界をまたぐ商品をどちらに入れるか」です。次の10商品の例で比べます。売上の合計は120万円で、区切りは70%と90%です。
| 商品 | 売上(円) | 累積構成比 |
|---|---|---|
| 商品1 | 売上(円)480,000 | 累積構成比40.00% |
| 商品2 | 売上(円)310,000 | 累積構成比65.83% |
| 商品3 | 売上(円)150,000 | 累積構成比78.33% |
| 商品4 | 売上(円)95,000 | 累積構成比86.25% |
| 商品5 | 売上(円)62,000 | 累積構成比91.42% |
| 商品6 | 売上(円)41,000 | 累積構成比94.83% |
| 商品7 | 売上(円)27,000 | 累積構成比97.08% |
| 商品8 | 売上(円)18,000 | 累積構成比98.58% |
| 商品9 | 売上(円)11,000 | 累積構成比99.50% |
| 商品10 | 売上(円)6,000 | 累積構成比100.00% |
数字は説明用に置いた仮の値です。この表に2通りのルールを当てると、区分が変わる商品が出ます。
| ルール | A区分 | B区分 | C区分 |
|---|---|---|---|
| 累積構成比が区切り以下の商品まで | A区分商品1〜2 | B区分商品3〜4 | C区分商品5〜10 |
| 区切りを超える商品まで含める | A区分商品1〜3 | B区分商品4〜5 | C区分商品6〜10 |
商品3は、前者ではB区分、後者ではA区分です。商品5は、前者でC区分、後者でB区分になります。どちらのルールが間違いということはありません。大事なのは、片方に決めてプロンプトに書くことです。決めずに任せると、Claudeがどちらかを選び、その選択が表に書かれないことがあります。
区分表をExcelで出させるプロンプト
ルールを決めたら、集計とExcel出力を一度に頼みます。累積構成比を数式で入れさせるのがコツです。
読み込みの確認どおりで進めてください。
商品コードごとに、取消・返品を差し引いた売上を合計し、
売上の大きい順に並べてABC分析をしてください。
ルール:
- 累積構成比が70%以下の商品をA、70%超〜90%以下をB、それ以外をC
- 売上が同額の商品は商品コードの昇順
- 期間中の販売日数が14日未満の商品は、区分に入れず別シートに分ける
Excelファイルで出してください。
- シート1: 順位・商品コード・商品名・売上・構成比・累積構成比・区分
- 構成比と累積構成比は、値ではなく数式で入れる
- シート2: 区分ごとの商品数・売上合計・売上構成比
- シート3: 別シートに分けた商品の一覧と、分けた理由
- 使ったルールをシート2の下に書く販売日数の少ない商品を分けるのは、新商品や終売品が、売上の少なさだけでC区分に入るのを避けるためです。この閾値は一例で、店の商品の回転に合わせて変えます。
Claudeが書くコードの形
Claudeはこの依頼で、pandasで商品別に集計し、累積構成比を計算するコードを書いて実行します。API版のコード実行ツールの仕様には、pandas・numpyのほか、Excelを扱うopenpyxlやxlsxwriterが事前に入っているライブラリとして挙げられています。
次は、区分の付け方がどういう形になるかを示した例です。実際に返ってくるコードの出力ではありません。
import pandas as pd
df = pd.read_csv("pos_sales.csv", encoding="cp932")
sales = (
df.groupby(["商品コード", "商品名"], as_index=False)["金額"].sum()
.sort_values(["金額", "商品コード"], ascending=[False, True])
.reset_index(drop=True)
)
total = sales["金額"].sum()
sales["累積構成比"] = sales["金額"].cumsum() / total
def rank(x):
if x <= 0.70:
return "A"
if x <= 0.90:
return "B"
return "C"
sales["区分"] = sales["累積構成比"].map(rank)
print(sales.head(12))列名は自店のPOSに読み替えます。rank が「以下」で判定している点が、前節の1つめのルールにあたります。2つめのルールにしたいときは、直前の行の累積構成比で判定する形に変わります。
累積構成比を検算する
Claudeの計算は正確でも、元データの扱いと区分のルールは人が確かめる必要があります。検算は、次の3段に絞ると短く済みます。
区分表の検算手順
- 1
合計をPOSの帳票と照らす
売上の合計が、同じ期間のPOSの集計帳票と合うかを見ます。ずれたら、返品・取消・税の扱いを疑います。
- 2
累積構成比の最終行が100%か確かめる
シート1の最終行の累積構成比が100%でなければ、集計の途中で行が落ちています。
- 3
区切りの前後3商品を手で見る
70%と90%の前後にいる商品だけ、売上・累積構成比・区分を目で追います。
3つめの確認は、次のように依頼すると、Excelを開かずに済みます。
区分の境目にいる商品を確認したいです。
累積構成比が70%と90%それぞれの前後3商品について、
売上・構成比・累積構成比・区分を表にしてください。
あわせて、境界をまたぐ商品を別の区分に入れた場合に、
区分ごとの商品数と売上構成比がどう変わるかも示してください。後半の依頼は、ルールの違いが結果に与える幅を見るためのものです。前節の例のように、1商品の移動でA区分の商品数が2から3に変わることがあります。店舗で発注を絞る判断に使うなら、境界の商品は機械的に切り捨てず、粗利や在庫の状況を見て人が決めます。
Excelの数式も見ておきます。構成比と累積構成比が数式で入っていれば、売上の値を直したときに区分の根拠が自動で更新されます。公式のヘルプには、Claudeが数式の入ったExcelを作れると書かれています。ただし、数式がどのセルを参照しているかは、ファイルごとに開いて確かめます。
C区分は死に筋とは限らない
ABC分析のC区分は、売上への寄与が小さい商品の集まりです。死に筋の候補を絞る入口にはなっても、そのまま廃番の判断には使えません。次のような商品が混ざっているためです。
- 粗利率が高く、利益への寄与は大きい商品
- 欠品が続いて売れなかった商品。売上が低い理由が需要ではなく在庫にある
- 季節商品。対象期間が季節外れだと、C区分に落ちる
- 他の商品とセットで買われる商品。単体の売上は小さくても、客単価を支えている
そこで、C区分の商品に対して、売上以外の観点を重ねて見ます。
C区分の商品について、次の列を足した表を出してください。
- 期間中に売れた日数と、最後に売れた日
- 売上の月別推移(増加・横ばい・減少の別)
- 同じ伝票に一緒に入っていた商品の上位3つ
粗利と在庫の列はCSVにないので、推測せず空欄にしてください。粗利や在庫はPOSの売上CSVに入っていないことが多く、Claudeには分かりません。空欄にさせておくと、推測で埋められるのを防げます。粗利を足せるときは、別のCSVを添付して商品コードで結びつけます。
よくあるつまずき
落とし穴
同じ商品が別の行に分かれて、順位がずれる
商品名の表記ゆれ(全角・半角、容量の違いの書き方)があると、同じ商品が複数行に分かれます。集計の前に、コードと名前の対応を報告させます。コードの列が無いなら、名前の正規化の方針を決めてから集計を頼みます。
落とし穴
期間が短く、C区分が入れ替わりすぎる
1週間だけで区分すると、特売や天候の影響でA・Cが大きく動きます。区分を発注の判断に使うなら、3か月以上の期間で出し、月別の区分の動きも見ます。
落とし穴
Excelの区分と、チャットで読んだ区分が食い違う
Claudeがチャットで要約した数字と、Excelファイルの数字を別々に作ることがあります。確認はExcelファイルのシートで行い、チャットの説明は参考にとどめます。
まとめ
ABC分析をClaudeに頼むときの仕事は、人とClaudeで分かれます。商品別の集計、累積構成比の計算、区分表のExcel出力はClaudeが担います。区分のルール、境界の商品の判断、C区分を死に筋と呼んでよいかは、人が決めます。
依頼の前にルールを書き、出力後は合計と最終行の100%を確かめ、区切りの前後だけを手で見る。この3点で、検算は数分で済みます。売上の大きい順という見方は、粗利や在庫を足すと結論が変わりうるため、廃番や発注停止の判断には、売上以外の列を重ねてから使います。
顧客のほうを購買履歴で切る方法はClaudeでRFM分析する手順にあります。商品を切るABC分析と組み合わせると、誰が何を買っているかまで見えてきます。