【ExcelVBA公開模試】グループ別の最大値・最小値を求める
文法を無視して、とりあえず動けばいいという邪道ExcelVBA講座こと「速読VBA単語」に準拠した問題を出題します。
問題
A1:A100に文字列、B1:B100に数値が入っていて、空白等は無い(図1)。
ExcelVBAを用いて、A1:A100のグループ別に、B列の数値の最大値と最小値を求めてD~F列に表示しなさい(図2)。ただし、D~F列の並び順は任意とする。
<図1>
<図2:完成イメージ>
わえなび式 正解例
(このページの下にあります)
目標回答時間
プロ3分以内、アマチュア10分以内に処理ができたら合格
この問題の出題範囲
「速読VBA単語」Program3-6-2まで
ご案内
ExcelVBAをなんとなく理解できればいいという初心者のための「速読VBA単語」を受講希望の方はカリキュラムをご覧ください。
参考(グループ別合計)
正解例
Sub moshi()
Dim groupname(100)
Dim groupmax(100)
Dim groupmin(100)
cnt = 1
groupname(1) = Cells(1, 1)
groupmax(1) = Cells(1, 2)
groupmin(1) = Cells(1, 2)
For i = 2 To 100
gn = Cells(i, 1)
gp = Cells(i, 2)
For j = 1 To cnt
If groupname(j) = gn Then
If groupmax(j) < gp Then
groupmax(j) = gp
ElseIf groupmin(j) > gp Then
groupmin(j) = gp
End If
Exit For
ElseIf j = cnt Then
cnt = cnt + 1
groupname(cnt) = gn
groupmin(cnt) = gp
Exit For
End If
Next
Next
For i = 1 To cnt
Cells(i, 4) = groupname(i)
Cells(i, 5) = groupmax(i)
Cells(i, 6) = groupmin(i)
Next
End Sub
バックナンバー
この記事が気に入ったらサポートをしてみませんか?