• 公開日:

ExcelのVLOOKUPとMAX関数を組み合わせて最大値を出す

この記事では、ExcelのVLOOKUPとMAX関数を組み合わせて最大値を出す方法をご紹介します。

VLOOKUP関数は指定した検索値に紐づく値を抽出する関数ですが、検索値で最大値を指定したい場合はMAX関数と組み合わせることで、取得した最大値を検索値として指定することができます。

以下では、最大値が複数ある場合にすべての値を抽出する数式も合わせてご紹介します。

ExcelのVLOOKUPとMAX関数を組み合わせて最大値を出す方法

データを用意する

上記の画像のようなデータを用意します。

例ではA列に入力された「点数」の最高点獲得者の氏名を、VLOOKUP関数とMAX関数を組み合わせてD3セルに抽出していきます。

以下では、その手順をご紹介します。

検索値にMAX関数をネストする

D3セルに「=VLOOKUP(MAX(A3:A12),A3:B12,2,FALSE)」を入力してEnterを押します。

MAX関数は引数に指定した数値またはセル範囲の最大値を求めます。書式は「=MAX(数値1,[数値2],・・・)」です。

MAX関数の使い方などの詳細は、以下の記事でご紹介しています。

エクセルのMAX関数の使い方|最大値を求める

結果が表示された

A3セルからA12セル内の最大値は「93」なので、最大値に紐づく「加藤」がD3セルに表示されました。

VLOOKUP関数で最大値を検索する場合は、検索値にMAX関数を指定することで最大値に紐づく値を簡単に抽出することができます。

ただし、VLOOKUP関数は検索値に指定した最大値が複数ある場合、1番上の値しか返せないので重複している可能性がある場合は注意が必要です。

VLOOKUPとMAX関数を組み合わせて重複したすべての最大値を出す方法

データを用意する

検索列に指定するA列に重複した値が複数存在している、上記の画像のようなデータを用意します。

VLOOKUP関数は重複した値がある場合に、1番上の値しか返せませんが数式を工夫することで複数の値を抽出することができます。

以下で、手順をご紹介します。

数式を入力する

C3セルに=IF(A3=MAX($A$3:$A$12),VLOOKUP(A3,$A3:$B$12,2,FALSE),"")」を入力して、Enterを押します。

上記の数式は、もしA3セルの値がA3セルからA12セルの範囲で最大値であれば、VLOOKUP関数の結果で2列目の「氏名」を返して、最大値でなければ「空白」を返します。

VLOOKUP関数の範囲で最終行だけを固定することで、数式をコピーする際に「$A4:$B$12」「$A5:$B$12」と範囲が可変するように指定することができます。

範囲を可変させることで、検索値が重複していても「点数」が最大値の場合に、同じ行に「最高得点獲得者」の氏名を返すことができます。

IF関数は指定した論理式が「真」か「偽」かを判定します。書式は「=IF(論理式,値が真の場合,[値が偽の場合])」です。

IF関数の使い方などの詳細は、以下の記事でご紹介しています。

ExcelのIF関数の使い方|論理式の条件(IF文)によって処理を分岐

オートフィルする

A3セルの値(例:93)は、A3セルからA12セルの範囲で最大値なので、「点数」に紐づく「蒼井」がC3セルに表示されました。

結果が表示された

すべての表に結果が表示されました。

「点数」が最大値に該当する場合は、同じ行に氏名が表示されています。