- ベストアンサー
Excelのランク付け方法とマクロについて
- Excel2007のランク付けには、範囲を指定する方法と条件を指定する方法があります。
- Z社は、A社、B社、C社と取引をしており、それぞれの会社から製造品を仕入れています。黄色のセルは月間の仕入額を、赤色のセルは2月から前月までの合算金額を表示しています。
- 区分が1つの場合は黄色のセルを、2つ以上の場合は合計額の黄色のセルを参照してランク付けを行いたいと思っています。仕入先は約100社あり、区分は1つか2つになります。マクロを使用して実現したいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! 質問の意味を取り違えている可能性がありますが・・・ 金額はA列に社名が入っている行(空白でない行) の各社の最下行が一番大きい額と判断しています。 画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面がでますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i As Long Columns(4).ClearContents Columns("A:B").Insert For i = 2 To Cells(Rows.Count, 5).End(xlUp).Row If WorksheetFunction.CountIf(Range(Cells(2, 3), Cells(i, 3)), Cells(i, 3)) = _ WorksheetFunction.CountIf(Columns(3), Cells(i, 3)) Then Cells(i, 1) = Cells(i, 3) If Cells(i, 1) <> "" Then Cells(i, 2) = Cells(i, 5) End If End If Next i For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row If Cells(i, 2) <> "" Then If WorksheetFunction.Rank(Cells(i, 2), Columns(2)) <= 10 Then Cells(i, 6) = WorksheetFunction.Rank(Cells(i, 2), Columns(2)) & "位" End If End If Next i Columns("A:B").Delete End Sub 'この行まで ※ 一発でご希望の方法!とはいかないと思いますので、たたき台としての回答です。m(_ _)m