売上高い順で並び替えて、上位80%を計算するマクロ

EXCEL

こんにちは。シバマメです。
沢山商品があったりすると、どの商品に注目したら良いかわからなくなってしまいます。
よく言われるパレートの法則(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


 

シバマメのラインスタンプ販売中です!

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






コメント

タイトルとURLをコピーしました