エクセル初心者
エクセルのクロス抽出が便利!って聞いたけど、どんなのかな?縦のセルと横のセルが交わるセルの値を表示したい!って先輩に相談したら教えてくれたんだけど…
そうだね!クロス抽出はとても便利だよ!関数を組み合わせて求めるクロス抽出について、わかりやすく解説するね!
Dr.オフィス
今回はクロス抽出について解説します。
抽出する関数は『VLOOKUP関数』であったり『HLOOKUP関数』であったり、さまざまで多くあります。
今回のクロス抽出は、INDEX関数とMATCH関数で解説していきますので、ぜひ、クロス抽出をマスターしてください。
- クロス抽出にはINDEX関数を使う
- 行番号・列番号を調べるためにMATCH関数を使う
- INDEX関数とMATCH関数を組み合わせて使う
INDEX関数やMATCH関数は『エクセル関数のレベルアップ』におすすめです。
そして本記事は下記の動画でも解説しているので、ぜひ合わせてご覧ください。
ほかにも脱初心者が知っとくべき関数を43個紹介した記事があるので、ぜひチェックしてみてください。
※本記事は『OS:Windows10』画像は『Excelのバージョン:Office365』を使用しています。
目次
エクセル『クロス抽出』とは?
クロス抽出とは、行と列が重なるセルを表示することです。
例えば、フルーツ売上表を見てみましょう。
9月のぶどうの売上金額は、6,000円だね!
Dr.オフィス
このようにクロスした『6,000円』のセルを求めます。
そして、このクロス抽出に使用する関数が『INDEX関数』と『MATCH関数』になります。
クロス抽出できる関数はさまざまありますが、今回は『INDEX関数とMATCH関数』を解説していきます。
クロス抽出に使う【INDEX関数】とは
まずはINDEX(インデックス)関数について解説していきます。
INDEX(インデックス)関数とは
=INDEX(参照, 行番号, 列番号)
意味:参照範囲から、指定した行番号と列番号が重なるセルを返します。
ではフルーツ売上表からINDEX関数を使って、結果を返してみましょう。
- STEP
INDEX関数を使う
H2セルに『=INDEX(B3:F14,4,2)』を入力します。
すると、B3:F14の範囲から、4行目と2列目の重なるセルが表示されます。
- STEP
指定した行番号と列番号が重なるセルが返る
『4月(行)とパイナップル(列)の金額』の【2790】が表示されました。
いっけん、INDEX関数だけでクロス抽出ができそうな気がしますが、残念ながらそうはいきません。
INDEX関数は、行番号と列番号を指定してあげないといけないので、自分で求めたいセルを探して入力しなくてはいけません。
そこでINDEX関数とMATCH(マッチ)関数と組み合わせます。
自分で探したら意味がないもんね。自動で抽出できるといいよね!
Dr.オフィス
クロス抽出に使う【MATCH関数】とは
MATCH(マッチ)関数は、検索したい値が何番目のセルか表示することができるので、INDEX(インデックス)関数の引数『行番号と列番号』に使うことができます。
MATCH(マッチ)関数とは
=MATCH(検査値, 検査範囲, 照合の種類)
意味:検索範囲の中から、検索値が何番目のセルか数えて表示します。
『照合の種類』は、下記になります。
1 | 検査値以下の最大値を検索します。 ※検査範囲のデータは昇順に並び替えが必要 |
---|---|
0 | 検査値と完全に一致する値だけを検索します。 |
-1 | 検査値以上の最小値を検索します。 ※検査範囲のデータは降順に並び替えが必要 |
省略 | 省略すると『1』と同じ |
フルーツ売上表を使ってみましょう。
まずはH7セルに、『6月が何行目か?』をMATCH関数を使い表示します。
- STEP
MATCH関数を使う
H7セルに、『=MATCH(H3,A3:A14,0)』を入力しましょう。
検索値はH3をセル参照します。
検索範囲は、A列の『月』になります。
照合の種類は『0』で、検査値と完全に一致する値だけを検索しました。
- STEP
検索値が何番目のセルか返る(行)
『6月』は、『6』と表示されました。
同じように、フルーツ名も何列目かをMATCH関数を使って表示してみましょう。
H9セルに『=MATCH(I3,B2:F2,0)』を入力します。
I3セルの『マンゴー』をセル参照します。
- STEP
検索値が何番目のセルか返る(列)
マンゴーは『5』と表示されました。
このようにMATCH関数を使うことで『行番号と列番号』が分かります。
次に、このMATCH関数とINDEX関数を組み合わせてみましょう。
クロス抽出するINDEX関数とMATCH関数の組み合わせ
では、H3セルの『月』とI3セルの『フルーツ名』が重なるセルの値をJ3セルに表示させます。
- STEP
INDEX関数の引数にMATCH関数を使う
J3セルに
『=INDEX(B3:F14,MATCH(H3,A3:A14,0),MATCH(I3,B2:F2,0))』
を入力しましょう。
INDEX関数の引数『行番号と列番号』にMATCH関数を使っています。
- STEP
クロス抽出の完成
『10月のぶどうの売上金額』は、『6,320円』となりました。
- STEP
ドロップダウンリストを追加してさらに便利に
『月』や『フルーツ名』を変更すると、売上金額が表示されます。
手入力は手間がかかるのでドロップダウンリストを設定してみました。
ドロップダウンリストの設定方法についてはこちら≫エクセルで便利な【ドロップダウンリスト】を参考にしてみてください。
エクセルのクロス抽出に関するQ&A
Q
エクセルで行を検索して抽出する方法ってある?
A
MATCH関数なら、検索したい値が何番目のセルかを表示することができます。なので行番号を調べることができます!ほかにも『HLOOLUP関数』もあるので、ぜひ参考にしてみてください!
Q
VLOOKUP関数とXLOOKUP関数の違いって何?
A
VLOOKUP関数とXLOOKUP関数は似ていますが、XLOOKUP関数は1つのセルに関数を入力するだけで複数のセルにデータを抽出できるというのが大きな特徴です。Microsoft365の新しい関数『XLOOKUP関数』については、こちら≫XLOOKUP関数を参考にみてください。
クロス抽出は関数の組み合わせで簡単に求めれる!
今回は、INDEX関数とMATCH関数を組み合わせてクロス抽出をすることができました。
実は他にも【VLOOKUP関数とMATCH関数】だったり、【HLOOKUP関数とMATCH関数】など、関数をうまく組み合わせることで求めることができます。
では、クロス抽出のポイントをおさらいしましょう。
- クロス抽出にはINDEX関数を使う
- 行番号・列番号を調べるためにMATCH関数を使う
- INDEX関数とMATCH関数を組み合わせて使う
新しい関数のXLOOKUP関数を使う方法もおすすめです。
いろんな方法で、クロス抽出を求めることができるので、ぜひ試してみてください。