こんにちは。シバマメです。
沢山商品があったりすると、どの商品に注目したら良いかわからなくなってしまいます。
よく言われるパレートの法則(80:20の法則)を使いましょう!
80:20の法則は何かというと、
例えば、商品の売上に例えると、
全体の20%の商品が売上の80%を占めているということです。
商品が多すぎて何を見たら良いのかわからないなあ
商品データを売上順に並べ替えて、右列に累計売上と上位何%を占めているかを計算するマクロを作成してみました。
↓のように、メロン5までの3アイテムで上位80%の売上ということがわかりますね。

使い方
1
- 下記のコードを個人用マクロブックに保存しましょう。
個人用マクロブック作成方法
2
- 対象のエクセル表を開いた状態でマクロを実行します。
F5 or ▶ボタンで実行
3
- 実行すると、何列目の数字に対して実行するか聞かれますので、
列数を数字で入力してください。
売上数字を売上良い順に並べ替えて、
その右に、累計売上額と上位何%かの列を追加します。 ※注意
対象の列が最終列でない場合は、
その右の列は累計売上額と上位何%の列に
上書きされてしまいます。
※条件
A1列~開始されている表であること。
Sub Top80percent()
' 入力
Dim iKey As Long
iKey = InputBox("降順にする列を選択")
' 最終行列取得
Dim maxRow As Long
Dim maxCol As Long
maxRow = Cells(Rows.Count, 1).End(xlUp).Row
maxCol = Cells(1, Columns.Count).End(xlToLeft).Column
' 並べ替え
Range("A1").Sort _
Key1:=Cells(1, iKey), _
Order1:=xlDescending, _
Header:=xlYes
' 累計列を追加
Cells(1, maxCol + 1).Value = "累計"
Dim i As Long
For i = 3 To maxRow
Cells(i, maxCol + 1).Value = _
Application.WorksheetFunction.Sum(Range(Cells(3, iKey), Cells(i, iKey)))
Next i
' 占有率を追加
Cells(1, maxCol + 2).Value = "占有率"
For i = 3 To maxRow
Cells(i, maxCol + 2).Value = Cells(i, maxCol + 1) / Cells(2, iKey)
Cells(i, maxCol + 2).NumberFormatLocal = "0%"
Next i
End Sub

↓よろしければクリックお願いします🌼
にほんブログ村


コメント