Claude Media
ClaudeでABC分析 — 売れ筋と死に筋をPOSのCSVからExcelで出す手順

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〜2B区分商品3〜4C区分商品5〜10
区切りを超える商品まで含めるA区分商品1〜3B区分商品4〜5C区分商品6〜10

商品3は、前者ではB区分、後者ではA区分です。商品5は、前者でC区分、後者でB区分になります。どちらのルールが間違いということはありません。大事なのは、片方に決めてプロンプトに書くことです。決めずに任せると、Claudeがどちらかを選び、その選択が表に書かれないことがあります。

区分表をExcelで出させるプロンプト

ルールを決めたら、集計とExcel出力を一度に頼みます。累積構成比を数式で入れさせるのがコツです。

プロンプト例(ABC分析の依頼)
読み込みの確認どおりで進めてください。
商品コードごとに、取消・返品を差し引いた売上を合計し、
売上の大きい順に並べてABC分析をしてください。
 
ルール:
- 累積構成比が70%以下の商品をA、70%超〜90%以下をB、それ以外をC
- 売上が同額の商品は商品コードの昇順
- 期間中の販売日数が14日未満の商品は、区分に入れず別シートに分ける
 
Excelファイルで出してください。
- シート1: 順位・商品コード・商品名・売上・構成比・累積構成比・区分
- 構成比と累積構成比は、値ではなく数式で入れる
- シート2: 区分ごとの商品数・売上合計・売上構成比
- シート3: 別シートに分けた商品の一覧と、分けた理由
- 使ったルールをシート2の下に書く

販売日数の少ない商品を分けるのは、新商品や終売品が、売上の少なさだけでC区分に入るのを避けるためです。この閾値は一例で、店の商品の回転に合わせて変えます。

Claudeが書くコードの形

Claudeはこの依頼で、pandasで商品別に集計し、累積構成比を計算するコードを書いて実行します。API版のコード実行ツールの仕様には、pandas・numpyのほか、Excelを扱うopenpyxlやxlsxwriterが事前に入っているライブラリとして挙げられています。

次は、区分の付け方がどういう形になるかを示した例です。実際に返ってくるコードの出力ではありません。

ABC区分の付け方(例)
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. 1

    合計をPOSの帳票と照らす

    売上の合計が、同じ期間のPOSの集計帳票と合うかを見ます。ずれたら、返品・取消・税の扱いを疑います。

  2. 2

    累積構成比の最終行が100%か確かめる

    シート1の最終行の累積構成比が100%でなければ、集計の途中で行が落ちています。

  3. 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分析と組み合わせると、誰が何を買っているかまで見えてきます。

この記事を共有:XはてブLinkedIn