※本ページにはプロモーション(広告)が含まれています
指定範囲内の指定行・列の交点にあるセルの値を返すExcel関数。MATCH関数と組み合わせて柔軟な検索を実現する。
詳しい解説
INDEX関数は、Microsoft Excelで指定した範囲(配列)内から、指定した行番号・列番号の交点にあるセルの値を返す関数。基本構文は `=INDEX(範囲, 行番号, 列番号)` で、行番号のみを指定すれば1次元配列の値、行・列両方を指定すれば2次元範囲の値を取り出せる。単独でも使えるが、真価を発揮するのはMATCH関数(=MATCH(検索値, 検索範囲, 一致タイプ))と組み合わせた INDEX+MATCH の組み合わせで、VLOOKUP関数の制約(左端列でしか検索できない・列追加で番号がずれる)を回避できる柔軟な検索が可能。Microsoft 365で導入されたXLOOKUP関数や動的配列(スピル)系関数(FILTER・SORT・UNIQUE)は INDEX+MATCH をより簡潔に書ける後継機能だが、Excel 2019以前では未対応のため、互換性が必要な現場では今でも INDEX+MATCH が標準的な解になる。XLOOKUPがエラー(#NAME?)になる古いExcelでは、INDEX+MATCH または SUMPRODUCT を使った代替式に書き換えるのが定石。
社内に Excel 2019 環境のPCが残っていたため、Microsoft 365で書いた XLOOKUP 数式が #NAME? エラーになってしまい、`=INDEX(B:B, MATCH(検索値, A:A, 0))` の形に置き換えて配布したところ、すべての環境で同じ結果が得られるようになった。
別の呼び方
INDEX関数
INDEX/MATCH
INDEX+MATCH
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!