こんにちは。ワラゴンです。
今日はちょっと趣向を変えて、業務に使えるエクセルの小技を紹介します。
全然大したことないですが、業務で使うエクセルの世界ではvlookupの方が多いみたいなので、ぜひぜひindex match法を覚えてドヤ顔になってもらいたいと思います。
vlookupの欠点
事務処理やSEのお仕事をしていると、二つの表を結合したい場面というのは結構頻繁にあると思います。
おそらく、少しエクセルができる人ならvlookupを使ってうまいことやっているのではないでしょうか?
まあ、少しややこしいですが、慣れてしまえば割と簡単に使える関数ですよね。
vlookup使えます(キリッ
って言うと、少しエクセルできる人みたいな見られ方をするかもしれません。
しかし、vlookupは相手の表(検索先の表)において、キーとなる列を一番左に持ってこなければならないという大きな欠点があります。
そこで、今回紹介する index関数とmatch関数を組み合わせた方法を紹介します。
ここではこの方法をindex match法と呼びます。
この方法なら、どんな表であっても結合することができる優れものです。
というか、私はここ10年くらいはvlookupを使ったことがありません、、、
例題
まずは、お題の説明です。
以下のような二つの表があり、左側は商品データ、右側は各商品の売り上げデータとでもしておきましょう。
ここから、商品コードをキーとして、左側の表に「売り上げ」を表示させたい、というお題にしましょう。
実際こんなシチュエーションないと思いますが、、、
しかも、右側の表については、商品コードが右側に来ているため、vlookupで照合させることはできません。
まずは完成形
まずは完成形を見てみましょう。
うまくできていますね。
しかし、まあ、数式がややこしすぎますね、、、
残念ながらこれはそういうものなので、仕方がないのですが、覚え方さえ押さえれば何とかなります。
数式が難しすぎて覚えられない
index match法は数式がややこしくて、いざ使おうと思った時に使えないという問題があります。
しかし、私はここ数年index match法の使い方をネットで探したことはありません。
使う頻度は多くないですが、必要と思った時に必ず何も見ずに思い出すことができています。
というわけで、ここでは、私独自の覚え方を説明したいと思います。
indexやmatch関数がどういう働きであるかを知る必要はありません
いや、まあ知っておいたら応用が利くかもしれないので、知っておいて損はないです。
でも、正直私の場合、index関数がどんな働きをしているのか知りません。
match関数の方は時々使うし、関数の名前と機能が一致しているので覚えていますが。
しかし、繰り返しになりますが、私はindex match法を使うときはこれらの関数の機能を意識していません。
それではどのように使っているかを解説します。
データに意味を持たせて識別する
vlookupを使っている人なら経験があると思いますが、二つの表を結合する時はどっちが参照先でどっちが参照元か分からなくなる時があります。
これは、index match方でも同じです。
ですので、私の場合以下のようにしてデータの集合に名前を付けています。
厳密には名前を付けて覚えているわけではなく、それぞれのデータの性質を頭の中で識別しているような感じです。
以下の画像では、黄色いセルに数式を入力するときに、私がデータをどのように識別しているかを示しています。
順番に見ていきましょう。
①持ってきたい値
これが最も重要です。
これだけは、私も名前を付けて覚えています。
この緑のデータ群は、数式を入れるセル(黄色セル)に表示させたい未知のデータ群となります。
この緑のデータ群の中から、目的の値を抽出したい、と考えて良いです。
ここが一番重要です。
これさえ覚えておけば、あとはカンでいけます。
②キー
キーと言っても、参照元にも参照先にもキーがあるのでややこしいですね。
PHPが分かる人ならneedleと言った方が分かりやすいかもしれません。
あるデータ集合の中から一つの値を探し出すときの「一つの値」、に相当するものです。
ここでは、③で示してある商品コードというデータ集合から、「1111」というデータを探し出したい時の「1111」を意味しています。
③探し当てる場所
②で示した一つの値を探し当てたい時の、探す対象のデータ集合になります。
②と③は、match関数を常用している人ならイメージが付きやすいと思います。
イメージができたら関数に適用する
さて、上のイメージをindex match法に適用すると、以下のようになります。
なので、index, matchと入力していった時、①、②、③の順番で指定すれば良いことになります。
もっと言うと、「index, 持ってきたい値, match」とだけ覚えていれば、最近のエクセルなら関数のヒントが出てくるので、だいたいうまく行きます。
ひとつ注意点として、通常の使い方の場合、①と③は絶対参照で指定する必要があります(F4押してね)。
まあ、vlookup使えるくらいの人なら大丈夫だと思います。
ちなみに、最後の0は、vlookupで言う最後の"false"と同じような意味です。
完全一致する場合のみ機能するようにしたいので、0としています。
まとめ
これまでの話をまとめると以下になります。
・vlookupは卒業しよう
・index, 持ってきたい値, matchと覚える
繰り返しますがindex match法は万能です。
vlookupにしかできない事というのはありません。
index match法はvlookupの完全な上位互換と考えてもらって良いと思います。
とはいっても、関数が少し複雑なのは難点で、確かに覚えにくいのも事実です。
そういう私も、最初のうちは使い方を試行錯誤することがありました。
今でも、1年ぶりくらいに使うと少し忘れてしまっている場合がありますが、特に検索することもなく自力で解決できます。
繰り返しになりますが、vlookupを卒業したい人は、以下のように覚えましょう
=index, 持ってきたい値, match(フニャフニャ・・・
それか、もっと言うならこのページをブックマークしておくか、以下の画像の写真をスマホで撮っておくイザという時に使えて便利です。
というわけで、SEならもうvlookupは卒業した方がいいですね、というお話でした。
vlookup使えます(キリッ
から
vlookup卒業しました(キリッ
って言えるようになるといいですね。