(Gスプレッドシート)VLOOKUP関数で検索キーより左側の値を抽出する

 GoogleスプレッドシートのVLOOKUP関数についてです。この関数は基本的に検索キー(検索値)が記録されている列の右側の列にある値しか取り出せませんが、少しの手間だけで左側の列にある値も抽出することができます。

  • VLOOKUP関数の第2引数(検索範囲)にて左端に1列追加すれば、元の表に手を加えることなく検索キー(検索値)の左側の値を抽出することができます。
  • 第3引数(列番号)の数え方が元の表と1つずれるのが注意点です。

手順

f:id:accs2014:20200118101841p:plain:right:w600

 B3:E7に商品データが記録されています。
 G3に入力された商品ID(検索キー)に対応する商品名を抽出してH3に表示したいのですが、表の中で商品IDの列は最も右側にあります。
 商品名をVLOOKUP関数で抽出するにはどうしたらよいでしょうか。

 一例として次のように入力します。

f:id:accs2014:20200118101846p:plain:w750

=VLOOKUP(G3,{E3:E7,B3:D7},2,FALSE)

 第2引数(検索範囲)がポイントです。元の表そのもの(B3:E7)を指定するのではなく、検索キーの列つまりE列(E3:E7)を一番左に持ってくることで、すべての列の抽出を可能にしています。
 ただし、列の構成が元の表と変わりますので、元の表では一番左にある「商品名」を抽出する際に第3引数(列番号)で「2」と指定する必要があります。注意のため「1+1」とか「3+1」(メーカーを抽出する場合)などと記した方がわかりやすいかもしれません。

 なお、第2引数は「{E3:E7,B3:E7}」としてもかまいません(列を入れ替えるのではなく、単純に加える)。検索キーの列が途中の列にある場合を考えると普通はそうすべきです。

f:id:accs2014:20200118101850p:plain:right:w600

 確定するとこうなります。

 式により表を柔軟に加工でき、関数内部でもかなり自由に使えるのがGoogleスプレッドシートの特徴です。表を接続する記し方については次の記事をご覧ください。

www.officeisyours.com