LARGE関数の説明から始めます

以下の表に名前と点数が入力されています。

LARGE関数によって、この表から点数の1位、2位、3位、を抜き出して表示させたいと思います。

 

large関数の説明画像

 

D列に数値で1、2、3、を入力して、
E1に関数=LARGE(B:B,D1)を入力して、E2セル、E3セルにもオートフィルで計算式を反映させる。

 

large関数の説明画像

 

E列に点数の高い順で表示されました。

  • 1位・・・800点
  • 2位・・・580点
  • 3位・・・490点

 

=LARGE( 対象列, 順位)

 

LARGE関数は、第一引数で指定した列の数値を、第二引数で指定した順位で表示させることができます。

※点数の低い順で表示させる場合はSMALL関数を使います。

MATCH関数を説明します

先ほどLARGE関数によって抜き出したE列の点数が、
表B列において、上から数えて何番目にあるのかを表示させます。

 

F1セルに関数=MATCH(E1,B:B,0)を入力。
オートフィルを使ってF2セル、F3セルにも計算式を反映させます。

 

 

match関数の説明画像

 

F列に、E列の点数が表の上から数えて何番目にあるのかが表示されました。

 

match関数の説明画像

 

=MATCH(  検索値,  検索範囲,  照合の型)

 

[検索値]・・・検索する値
[検索範囲]・・・検索するセルの範囲
[照合の型]

  • 1または省略・・・最大の値を検索
  • 0・・・・・・・・等しい値を検索
  • -1・・・・・・・最小の値を検索

 

INDEX関数を説明します

INDEX関数を使って、点数1位~3位までの人の名前を抜き出します。
G1セルに関数=INDEX( A:A, F1)を入力し、オートフィルで計算式をG2セル、G3セルにも反映させます。

 

index関数の説明画像

 

G列に名前が取得できました。
これで点数1位~3位までの人の名前が取得できた事になります。

 

index関数の説明画像

 

A列の上から数えて何番目にあたるかは、
先ほどMATCH関数でF1セルに抜き出した数値を指定しています。
=INDEX( A:A, F1)

 

=INDEX( 検索範囲, 位置)

 

[検索範囲]・・・検索する範囲
[位置]・・・・・表の1列目から数えて何番目の列かを数値で指定

 

この様にINDEXとMATCHを組み合わせる事で、検索列の左側からも、離れた列からでも、値を取得する事が出来ます。

 

index関数とmatch関数の説明画像

 

INDEX関数+MATCH関数を1行で書く

関数を入れ子にして、次のように1行で記述することもできます。
=INDEX(A:A,MATCH(LARGE(B:B,D1),B:B,0))

 

index+match関数の説明画像

 

ですが、エラーが発生した際にどのセルで問題が起きているかを切り分けるために、
わざと1行で書かずに、INDEX、MATCH、LARGE、はセルを分けて書いた方が良いという考え方もあります。
その場合、見た目を整えるために、C列~F列は非表示にしておきましょう。
以上になります。

 

スポンサーリンク