【スプレッドシート】MATCHをVlOOKUPにする方法 |「位置」でなく「検索値」を答えに



今回は、MATCHの答えを「位置」ではなく、「検索値」で返す方法の紹介です。

検索値があれば、その検索値で返すというのは、VLOOKUPと似ていますね。
通常、MATCHで検索値があれば、その位置を答えとして返します。しかし、VLOOKUPに改造すると、2点のメリットが得られます。
  1. 検索キーの左右にかかわらず、VlOOKUPが可能
  2. MATCHでワイルドカード検索をしたときに、検索値を返してもらえると、手間が省ける

  3. ワイルドカード検索ってなんだっけ?
    曖昧検索のことよ。

    例えば、「山」が入るのは確かでも、苗字を忘れてリストから調べたいときなんかに便利なのよ。以下の例題を使って、今回の意図をつかみましょう。



     例題

    「山」が含まれる名前を、C列中から探したいとき、どうする?

    サンプルファイル

     答え

    G2 = MATCH(“*山*”,C1:C,0))

    1. G2を選択し、=MATCH()を入力。
    2. 検索値は、*山*(山が含まれる)を指定
    3. 検索範囲は、C1:C(C1以下のC列全て)を指定。
    4. 検索方法は、条件に完全一致するセルの位置を求めるので、0


    MATCH (検索値, 検索範囲, 検索方法)
     今回の例では、「*山*」が検索値。C1:Cが検索範囲です。

     さらに詳しく知りたい方はこちらの記事をどうぞ 。


    へぇ。C列中で「山」が入る名前の列番号を答えにするのか。
    そう!その列番を教えくれるっていうのが不便ところで、だって、知りたいのってその名前自体じゃない?
    まぁ、名前忘れたなら早く知りたいもんね…
    ということで、MATCHの答えを「位置」ではなくて、「検索値」で返す方法をみていきましょう。


    ワイルドカード(*)MATCHに関しては以下を参考にしてくださいね!

    意味方法備考
    「山」を含む*山*山,山口,三鷹山山が含まればなんでもOK
    「山」で始まる山*山,山口,山形県民山から始まるのだけ!
    「山」で終わる*山山,大山,富士山山で終わるのだけ!


    【スプレッドシート】MATCH|検索値があれば、その位置(行・列で何番目か)を知らせる

    2020.02.18


    Step # 1:MATCHの答え方を位置ではなく、名前にする方法


    式のつくりかた


    以下の式を、G2セルに入力します。
    =INDIRECT(“C”&MATCH(“*山*”,C1:C,0))
    「INDIRECT(“C”&」を式の頭につけることで、MATCHの答え方が、位置から名前に変わりましたね。


    式の解説


    まず後半の部分に関してですが、
    =INDIRECT(“C”&MATCH(“*山*”,C1:C,0))
    はじめの例題と一緒ですね。山を含む名前がある列の番号を返します。





    次に前半の部分に関してですが、
    =INDIRECT(“C”&MATCH(“*山*”,C1:C,0))

    INDIRECTは、続くカッコ内のセル番号を参照します。今回であれば CとMATCH関数の答えを合わせたセル番号を参照します。一方、「“_”」の有無によって、取得方法が変わる点に要注意です。


    MATCH(“*山*”,C1:C,0)は「“_”」なしよね。これは効力有り参照を意味するの。つまり、式は動作した後に参照されるから、答えの列番号が参照されるの。でも、”C”みたいに「“_”」があると、ただの文字としてそれを参照するわ。
    じゃあ結論「C&列番号」ってこと?
    そう!

    INDIRECT(“C”&MATCH(“*山*”,C1:C,0)) = C3(= 山口 百香)よ。


    これで、MATCHの答え方を位置ではなく、名前にする方法の完成です。


    また、この方法によって、MATCHをVLOOKUPのように使うことが可能です!今回は「C」とMATCHをくっつけて参照していますが、これをBやDにすることで、別の列の情報を参照することができますね。




    INDIRECT, VLOOKUPに関しては、以下の記事をどうぞ!

    【スプレッドシート】INDIRECT|取得したセル上のセル番号を介して、別のセルを参照(#動的参照)

    2020.01.23

    【スプレッドシート】VLOOKUP|いっぺんに複数の列指定をする方法

    2020.01.05

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA