名称未設

【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

バックナンバー


この記事が気に入ったらサポートをしてみませんか?