膨大なデータ表から「行と列の交差する値」を一発で取得出来たら...
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/11/ezgif-3-7a2a68b5f2.gif)
作業スピードの大幅UPに繋がりますよね(^^)
![あひる](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/ahirun01.png)
今回は以下2つの関数である
- INDEX関数
- MATCH関数
この2つを組み合わせ、行と列の交差値を一瞬で取得する方法についてご紹介させていただきます。
![OYAKUN](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/oyakun.png)
INDEX・MATCH関数を組み合わせた使い方
以前「INDEX関数の使い方」と「MATCH関数の使い方」についてご紹介させていただきました。
関連記事:スプレッドシートINDEX関数の使い方・行列指定で値を取得!
関連記事:スプレッドシートMATCH関数の使い方・検索値の位置を取得できる!
-
-
スプレッドシートmatch関数の使い方|検索した位置を返せるよ!
連続したデータの位置を一発で取得出来たら... 直ぐデータの詳細を確認することが出来ますよね(^^) 今回は検索した位置 ...
続きを見る
それぞれの関数の用途を簡単に説明すると
- INDEX関数は指定した行・列の値を取得することができる
- MATCH関数は検索値のセル位置を取得することができる
というもの。
INDEX関数とMATCH関数の定義をもう一度おさらい↓
INDEX関数の定義
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/10/4643970579a51aa0b06b26716a76b3f7.png)
または
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/10/44555f4c5b39e8917e50cb12f2649bb2.png)
参考:INDEX|行と列のオフセットで指定したセルのコンテンツを返します。
MATCH関数の定義
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/10/33006891c49eabf84ed4b048fa020949.png)
参考:MATCH|指定した値と一致する範囲内のアイテムの相対的な位置を返します。
では行列の交差値を取得したい場合、INDEX・MATCH関数の組み合わせではどのように組み合わせていけば良いのでしょうか?
INDEXとMATCH関数の組み合わせで行・列の交差値を取得する
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/11/3ee33621e75a7e93242088b30af15178.png)
INDEX関数とMATCH関数を組み合わせて「行・列の交差値」を取得するには、INDEX関数の中にMATCH関数を挿入して使います。
INDEX × MATCH関数の例
以下のようにINDEXとMATCH関数を組み合わせた場合は、
=INDEX(A1:D4、MATCH(A1、2、0)、MATCH(B2、2、0))
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/11/51e57133ad3158f61a01539252b569d0.png)
以下のような書式になります。
=INDEX(配列、MATCH(検索値、行番号、検索の種類)、MATCH(検索値、列番号、検索の種類))
意味としてはINDEX関数の行番号・列番号をMATCH関数で指定するわけですね(^^)
以下例題にて、式の作り方を解説していきます。
INDEX・MATCH関数で行列の交差値を取得する例
テーブルの行列が交差する値(値段)を、INDEXとMATCH関数で求めます。
ここで扱うテーブルとは「表」のことです。
上のテーブルから交差値を求める場合、例えば
- セットが「セット1」
- サイズが「S」
だとしたら、値段は「¥300」となります↓
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/11/d2be458778109d67915014f3f294cdc4.png)
![あひる](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/ahirun01.png)
今回はE1セルに「INDEX+MATCH」関数の式を作っていきます。
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/11/f9ab0fbdba45b923dabdf3509fd11136.png)
INDEX + MATCH関数で行範囲を指定する
まずINDEX関数とMATCH関数を組み合わせて、検索対象となる行範囲を指定します。
1. INDEX関数で検索範囲を指定する
初めにINDEX関数を挿入して検索したい配列(範囲)を設定します。
=INDEX(B4:D6,
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/11/148d93ba4f277077517ff3368d36656b.png)
2. MATCH関数を挿入して行・列番号を取得する
次にINDEX関数の行番号を取得するために、MATCH関数を挿入します。
「MATCH(B1、」と入力して行番号の「検索値」を指定します。
=INDEX(B4:D6,MATCH(B1,
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/11/69145865529a167d116be0f0ac904d1f.png)
3. MATCH関数の行番号を探す「行範囲」を指定する。
項目は、セット1〜セット3から任意のセルを選択するので「A4:A6」と入力して行の範囲を指定します。
=INDEX(B4:D6,MATCH(B1,A4:A6,
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/11/7da79904bfa7aaa95783580e0ca5b2e3.png)
4. MATCH関数の「検索の種類」を指定します。
完全一致の時の行番号を取得したいので「0」と入力して、カッコを閉じます。
=INDEX(B4:D6,MATCH(B1,A4:A6,0),
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/11/2b5f4b19d30df19e9fc4e92b1f3fa9e8.png)
ここまででINDEX関数の「=INDEX(配列、行、列」までを指定する式を作成しました。
MATCH関数で列範囲を指定する
次に「列番号」を取得するために、もう一度MATCH関数を挿入します。
1. 列番号を取得するため再度MATCH関数を挿入する
INDEX関数の列番号を取得するために、再度MATCH関数を挿入し「列番号の検索値」を指定します。(例として「B2」を選択します)
=INDEX(B4:D6,MATCH(B1,A4:A6,0),MATCH(B2,
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/11/821d5ae46fe4f5d216d11ca94ac22e5a.png)
2. MATCH関数の列番号を探す「列範囲」を指定する。
再度挿入したMATCH関数の列番号を探す範囲に「B3:D3」と入力します。
=INDEX(B4:D6,MATCH(B1,A4:A6,0),MATCH(B2,B3:D3),
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/11/dbb7bc9787ffd07b6da65d263dd5b0e4.png)
3. MATCH関数の「検索の種類」を完全一致で指定する
MATCH関数の「検索の種類」を完全一致(0)で指定して、カッコを閉じます。
=INDEX(B4:D6,MATCH(B1,A4:A6,0),MATCH(B2,B3:D3),0))
![](https://xn--t8j3bz04sl3w.xyz/wp/wp-content/uploads/2017/11/29fcbfdcca28984ae31a0fe72f7fefb3.png)
INDEX関数も終わりなので、カッコ閉じ2つ➜
” )) ”
でINDEX+MATCH式を閉じましょう。
ここまでおつかれさまでした!次は実際に使ってみます(^^)