MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/25 おすすめ情報に 『 【案件】Azure AD関連の認証設計/azureの基本設計 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


【Excel】Vlookupに似たINDEX関数,MATCH関数を使ってみよう
profile-img
投稿者: ksasaさん
投稿日:2020/05/25 16:24
更新日:2020/05/26 11:59
like-img
分類
技術
テクノロジー
全般
キャリア
運用・保守
投稿内容

今回は、大量のデータがある表の中から、特定のデータを抽出する方法を紹介します。

VLOOKUP関数ではなく、INDEX関数とMATCH関数を組み合わせたやり方を紹介します。

 

VLOOKUP関数を使用する場合、検索値は左端の列の値しか設定できませんが、INDEX関数とMATCH関数を組み合わせたやり方だと、検索値はどの列でも可能です。

 

以下の表を使用して説明します。氏名(検索値)から、出身を抽出します。

 

G2セルには、探したい人の氏名を入れます。今回の場合は、「小石倉 洋」が入っています。G3セルには、以下の関数式が入ります。

★    =INDEX(A1:D23,MATCH(G2,B1:B23,0),4)

まずは、MATCH関数について、説明します。

MATCH関数は、指定したセルの範囲で指定した項目を検索し、その範囲内の項目の相対的な位置を返します。MATCH(検索値,検索範囲,照合の種類)が書式となります。

★の式を見ると、「G2」が検索値、「B1:B23」が検索範囲、「0」が照合の種類となります。照合の種類には、「-1,0,1」が入り、順番に、「以下,完全一致,以上」となります。今回の場合は一致する文字列を探しているため、「0」が入りますが、数値を検索する場合で、特定の基準を設けて、それ以上か、それ以下を探したい場合は、-1」、「1」を使用してください。

MATCH(G2,B1:B23,0)で返ってくる値は「16」となります。

次にINDEX関数について、説明します。

INDEX関数は、テーブルまたはセル範囲にある値、あるいはその値のセル参照を返します。

INDEX(セル範囲(配列),行番号,列番号)が書式となります。

★の式を見ると、「A1:D23」がセル範囲、「MATCH(G2,B1:B23,0)」が行番号(16)、「4」が列番号となります。行番号をMATCH関数で指定することで検索値のデータ行を取得し、出身のデータを抽出するために、4番目を指定しています。その結果、「新潟県」が表示されます。言うまでもないと思いますが、列番号を「3」に設定すれば、所属である「SI」が表示されます。

 

式が長くなり複雑そうに見えますが、一つ一つみるとそこまで難しくはないはずです。

今回は、絶対参照の設定をしていませんが、場合によっては必要となってきますので設定を忘れずに・・・

 

コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3