【ExcelVBA公開模試】RANK関数を使わずに順位を求める
文法を無視して、とりあえず動けばいいという邪道ExcelVBA講座こと「速読VBA単語」に準拠した問題を出題します。
問題
セル範囲A1:A300に数値が入力されており、空白は無いものとする(図1)。この昇順の順位をB列に求めなさい(図2)。ただし、RANK関数を使ってはならない。
<図1>
<図2:完成イメージ>
わえなび式 正解例
(このページの下にあります)
目標回答時間
プロ3分以内、アマチュア10分以内に処理ができたら合格
この問題の出題範囲
「速読VBA単語」Program3-7まで
ご案内
ExcelVBAをなんとなく理解できればいいという初心者のための「速読VBA単語」を受講希望の方はカリキュラムをご覧ください。
正解例
全員の順位を「1」にして、総当たりで比較して小さいほうの順位を増やします。
Sub moshi()
a = Range("A1:A300")
ReDim rnk(1 To 300, 1 To 1)
For i = 1 To 300
rnk(i, 1) = 1
Next
For i = 1 To 299
For j = i To 300
If a(i, 1) < a(j, 1) Then
rnk(i, 1) = rnk(i, 1) + 1
ElseIf a(i, 1) > a(j, 1) Then
rnk(j, 1) = rnk(j, 1) + 1
End If
Next
Next
Range("B1").Resize(300, 1) = rnk
End Sub
バックナンバー
この記事が気に入ったらサポートをしてみませんか?