Excel スタンダード 問題 5 – 8
次の図の状態で、マクロ「Test1」を実行した結果、「50」と表示された。【 1 】【 2 】に入る適切な内容を答えなさい。
Sub Test1()
Dim A As Long
Dim B As Long
Dim C As Long
With WorksheetFunction
A = .【 1 】("高橋", Range("A1:A4"), 0)
B = .【 1 】("数学", Range("A1:C1"), 0)
C = .【 2 】(Range("A1:C4"), A, B)
End With
MsgBox C
End Sub
正解を見る
正解
解答【1】 Match
解答【2】 Index
解説
MATCH関数は、指定した範囲で、探したいデータが上から何番目にあるか、もしくは、左から何番目にあるかを取得する関数です。
「.Match("高橋", Range("A1:A4"), 0)」は「4」、「.Match ("数学", Range("A1:C1"), 0)」は「3」の値を返します。
MATCH関数の詳しい解説は、「Microsoft Support」の「MATCH関数」をご確認ください。
MATCH 関数 - Microsoft Support
INDEX関数は、指定した範囲で上から指定した順番にある値、または、左から指定した順番にある値を取り出す関数です。
「.Index(Range("A1:C4"), A, B)」で変数に値を代入すると「.Index(Range("A1:C4"), 4, 3)」となり、「A1:C4」の範囲で上から4番目、左から3番目の値「50」を返します。
INDEX関数の詳しい解説は、「Microsoft Support」の「INDEX関数」をご確認ください。
INDEX 関数 - Microsoft Support
このように、MATCH関数とINDEX関数を組み合わせることで、交差する値を取り出すことができます。