人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

1442716814
●拡大する

●質問者: kiwii
●カテゴリ:科学・統計資料
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●100ポイント ベストアンサー

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

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

kiwiiさんのコメント
早速回答いただけましてありがとうございます。 バッチリでした。 自分でも書けるようになりたいので理解して使わせていただきます。 ありがとうございました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ