添付のようなエクセル一覧で店舗単位で商品毎の数量ランキングをE列に表示したいと考えています。
サンプルは3店舗ですが実際は100店舗以上あるためエクセルVBAでサクッと処理出来たらありがたいです。店舗毎に商品数が異なるのでrank対象の範囲が変わるイメージと思うのですが表記がわかりません。
よろしくお願いいたします。
こんな感じのことでしょうか。
Option Explicit Sub AutoRank() Dim shopName As String shopName = Range("A2").Value Dim startRow As Long startRow = 2 Dim rr As Range Dim r As Long For r = 2 To Cells(Rows.Count, "A").End(xlUp).Row + 1 If Cells(r, "A").Value <> shopName Then With Cells(startRow, "D").Resize(r - startRow) .FormulaR1C1 = "=RANK(RC[-1],R" & startRow & "C3:R" & r - 1 & "C3,0)" '// 昇順は最後の 0 を 1 に .Value = .Value '// 数式を値に変更 End With shopName = Cells(r, "A").Value startRow = r End If Next End Sub
早速回答いただけましてありがとうございます。
2015/09/20 12:14:01バッチリでした。
自分でも書けるようになりたいので理解して使わせていただきます。
ありがとうございました!