今回は、Excel(エクセル)のINDEX関数を使って、指定した条件に合うデータを抽出する方法を確認します。MATCH関数と組み合わせることでさらに有効に使えるので、基本的な使い方を覚えておきましょう。
本連載では、「よく使うけど忘れやすいMicrosoft Officeの操作」をキーワードに、Officeアプリケーションの使い方を解説していきます。記事の制作には、執筆時点で最新の状態にアップデートしたMicrosoft Office 2016を使用しています
INDEX関数と他の関数を組み合わせる
Excelには膨大な関数が用意されていますが、その中には複数の関数と組み合わせることで真価を発揮する関数も数多く存在します。今回紹介するINDEX関数もその一つですが、他の関数とセットで使う前に、まずは基本的な使い方を確認していきましょう。
INDEX関数の基本数式は、=INDEX(配列, 行番号,列番号)
まずは数式を入力したいセル(画面の例ではA9)をクリックして、数式バーに「=INDEX(」と入力します(図1)。続けて、マウスをドラッグしてセル範囲(配列)を指定して数式に反映させたら(図2)、「,」(カンマ)で区切って行番号と列番号を入力します。
今回の例では「=INDEX(A2:B7,3,1)」という数式にしていますが(図3)、これはA2~B7までのセル範囲の上から3行目、左から1列目のセルを指定していることになります。[Enter]キーを押して確定させると、A4セルの値が参照されて表示されます(図4)。
たとえば、この数式を「=INDEX(A2:B7,5,2)」に変更すると、上から5行目、左から2列目となるB6セルの値が表示されます(図6)。これがINDEX関数の基本形です。
MATCH関数と組み合わせて使ってみる
では本題、INDEX関数とMATCH関数を組み合わせた活用例を紹介しましょう。今回は、表に記載した順位を参照して名前を抽出してみます。
手順は、数式を入力するセル(B9)を選択して数式バーに「=INDEX(」と入力(図7)、続けてA2~A7までの名前を入力したセル範囲を絶対参照で指定します(図8)。「,」(カンマ)で区切ったら「MATCH(」と入力し(図8)、「1位」と入力したA9セルをクリックして数式に反映します(図9)。さらにカンマで区切って、順位が書かれたC2~C7セルを絶対参照で指定し(図11)、「=INDEX($A$2:$A$7,MATCH(A9,$C$2:$C$7,0),1)」という数式を完成させます(図12)。
この数式では、MATCH関数で「C2~C7のセル範囲でA9セルに書かれた値と合致するセルの行番号」を求めています。したがって、INDEX関数で指定したA2~A7のセル範囲で3行目、1列目にあるA3セルの値「佐々木」が抽出されます(図13)。
今回の数式では、セル範囲を絶対参照($を付ける)で指定しているので、数式を入力したB9セル右下のフィルハンドルを下にドラッグすれば、数式をコピーすることが可能です(図14)。これで、1位、2位、3位……と、順位に合わせて名前を並べ替えることができます(図15)。このように、INDEX関数はMATCH関数などと組み合わせることで応用範囲が広がります。