表から特定のデータを取り出したい場合に便利なのがINDEX関数です。データ検索によく使われる関数としてはVLOOKUPが有名ですが、こちらも合わせて覚えておけば、対応方法が増えて便利ですよ。
この記事では、INDEX関数の基本の使い方と応用術を紹介します。
目次
行・列の番号を指定し値を抽出できるINDEX関数
INDEX関数は、行と列の番号を指定し、該当するセル番地の値を取り出す関数です。記述の方法は以下の二種類があります。
①配列形式
=INDEX(配列, 行番号, [列番号])
②参照形式
=INDEX(参照, 行番号, [列番号], [領域番号])
配列形式は、単体の表からデータを取り出したい場合に、参照形式は、複数の表からデータを検索したい場合に使用します。
参照形式が適しているのは、たとえば以下のように複数の表からデータを抽出する場合です。
出番は配列形式のほうが多いため、今回はそちらをおもに解説します。
配列形式のINDEX関数では、配列(データを検索する範囲または行・列)と、行番号(範囲のなかの何行目か)・列番号(範囲のなかの何列目か)を指定してデータを抽出します。
簡単な例を見てみましょう。
この記述では、B3からD7までの範囲で、その中の行番号4と、列番号3に対応する値を取り出します。
▼実行結果
このように、範囲内の行番号4、列番号3にあたるセルB3の内容が表示されました。
これだけでは、何に利用できるか少々分かりにくいかもしれませんね。INDEX関数が活躍するのは、行・列の番号が場合によって異なる場合で、他の関数と組み合わせてデータを自動検索できます。次で例を見てみましょう。
条件を指定して行・列番号を抽出しデータを検索した例
INDEXとの組み合わせでよく利用される関数がMATCH関数です。MATCHは、特定の数値や文字列を指定し、それが範囲内の何番目にあるかを返す関数です。記述方法は以下のとおりです。
=MATCH(検査値, 検査範囲, [照合の型])
「照合の型」には「1または省略(検査値以下)」「0(完全一致)」「-1(検査値以上の最上値)」を指定します。特定の文字列や数値の場所を知りたい場合は、通常「0」で問題ありません。
MATCHをINDEXに組み込むことで、数値ではなく「特定の文字列・数値」で行・列を指定できるようになります。例を見てみましょう。
とある小売店の売上高データの表です。ここに、支店名と月を指定し、売上高を自動表示できるようにします。
INDEXでは、行と列の番号をそれぞれ指定しなければ対応セルの値を取ることができません。そこで、MATCHを2回使用し、入力された支店名と月が何番目にあるのかピックアップし、その番号で行と列を指定します。
この場合、関数の記述は以下のようになります。
=INDEX(C3:H6,MATCH(C9,B3:B6,0),MATCH(C10,C2:H2,0))
各部の役割は以下のとおりです。
実行すると、結果は以下のようになります。
このように、INDEXは単体で使用するより、他の関数と組み合わせることで高い効果を発揮します。応用しだいで業務効率化に大きく貢献してくれますので、ぜひ試してみてください。
表からのデータ検索はINDEX関数にお任せ
大量のデータをエクセルで扱うとき、目当てのデータを即座に探せる検索系の関数は非常に便利。表からのデータ抽出が得意な関数はほかにもありますが、こちらもぜひツールのひとつとして使ってみてください。
インターネットを最大限楽しむには「ビッグローブ光」の光回線がオススメ!
「インターネット回線が遅い」
「インターネット料金が高い」
などのお悩みはありませんか?
安定した速度とリーズナブルな光回線なら、
IPv6接続(IPoE方式)*1で最大10Gbps*2の「ビッグローブ光」がオススメです。
「ビッグローブ光」なら他社の光回線(フレッツ光・コラボ光)をお使いでもお乗り換えはかんたんです。工事費実質無料、おトクな特典もご用意しています。
*1 IPv6に対応していないサービス/サイトはIPv4接続となります。
*2 最大通信速度は光回線タイプによって異なります。最大通信速度はお客さまのご利用機器、宅内配線、回線の混雑状況などにより低下します。