1442716814 VBA初心者です。

添付のようなエクセル一覧で店舗単位で商品毎の数量ランキングをE列に表示したいと考えています。
サンプルは3店舗ですが実際は100店舗以上あるためエクセルVBAでサクッと処理出来たらありがたいです。店舗毎に商品数が異なるのでrank対象の範囲が変わるイメージと思うのですが表記がわかりません。

よろしくお願いいたします。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/09/20 12:14:34
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Mook No.1

回答回数1314ベストアンサー獲得回数393

ポイント100pt

こんな感じのことでしょうか。

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
id:kiwii

早速回答いただけましてありがとうございます。
バッチリでした。
自分でも書けるようになりたいので理解して使わせていただきます。
ありがとうございました!

2015/09/20 12:14:01

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません