概要
- たまにはエクセルの話も。これは自分が社会人1年目か2年目の時に遭遇したケースだったのですが、最近また似たケースが出てきて、「あれ、これ前にやったなぁ~どうやったっけか」となったので、備忘録として残しておきます。いや、また忘れた時のための、将来の自分へのクイズか。
問題
-
以下のような2つのデータがあります。
-
データAの形式ではフィルターができなかったり、エンジニア的な表現だとリレーショナルになっていなかったりで課題がありました。そこで、データBの形式で今後運用していくことになったとします。「好きな果物」「好きな動物」「好きな...」とまだまだ項目(カラム)があるとして、これらをどのように効率的に照合させることができるのでしょうか?
VLOOKUPだけだと駄目?
- まず前提として、単純にVLOOKUPを使っても以下のようになってしまいます。
- VLOOKUPでは、「該当した1番上の行」が結果として出力されてしまいます。例えば、C組の佐藤さんはアボガドが好きなのに、A組の佐藤さんのオレンジが該当してしまっていますよね。
エクセルのジャンプ+VLOOKUPで簡単実施
- 実は簡単2ステップでとても可能にできます。
①ジャンプ機能で空白セルをなくす
まずはジャンプ機能を使って空白値を埋めてあげ、この後のVLOOKUPで使う検索値を使う準備をします。
- 空白セルが存在する列(今回でいえば「クラス」)を選択して、「セルを結合して中央揃え」をクリックします。
-
結合セルが消えたことを確認したら、「クラス」列を選択した状態でCTRL+Gを押します。
-
ジャンプ機能のダイアログボックスが出てきたら、「セルの選択」→「空白セル」を選択します。
-
ここで、空白セルは一つ上の値を参照して入力させる、という命令をします。具体的には、今回でいえば「A3」に「=A2」と入れてあげます。空白セルが参照されている時点で一番上の空白セルが選ばれているので、以下のように数式バーに直接入れてあげればOKです。
-
上記の状態で、CTRL+Enterを押すと、すべてに同じ命令が下されます。以下のようになります。
- これで準備は完了!
②ユニークな検索値でVLOOKUPを活用する
- 上記の状態でVLOOKUPを使っても前述の結果と同じになってしまいます。どうすれば、C組の佐藤さんというユニークな検索値を作れるでしょうか。答えは簡単で、ユニークになる列を作ってあげれば良いのです。
- 具体的には、A列に新規列を挿入し、A2に以下の関数を入れます。
=B2&C2&D2
-
データBの方にも、同じように列を追加し、関数を入れてあげます。
- 今回は「組」も
&
で追加してあげています。もし参照値として足りない文字や数値があれば、ここで調整してあげましょう。
- 今回は「組」も
-
ここまでできたらあとは簡単。VLOOKUPで以下のように指定してあげます。
- 検索値:追加列の値
- 範囲:データAの表
- 列番号:該当の列番号(今回でいえば5番目ですね)
- 検索方法:false
-
それぞれの好きな果物がしっかり表示されていますね!
最後に
- 上記の方法は自分が実践したやり方であって、他にも方法はあると思います。
- 例えばこんなやり方も:VLOOKUP関数で複数該当・重複する2番目以降を抽出する
- VLOOKUPといえば、XLOOKUPというものが2020年から誕生しました。IFERRORとVLOOKUPの併用が一発でできるので、ぜひ活用ください。
- 「こんなやり方もあるよ!」「もっと効率的な方法があります」とかあれば、ぜひコメントで教えてください!