いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

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

 [※2022年11月更新]
 GoogleスプレッドシートのVLOOKUP関数についてです。この関数は基本的に検索キー(検索値)が記録されている列の右側の列にある値しか取り出せませんが、少しの手間だけで左側の列にある値も抽出することができます。
 ただし、2022年秋よりGoogleスプレッドシートでもXLOOKUP関数の使用が可能となりました。左側の値の抽出もより簡単にできますのでそちらの使用をおすすめします

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

手順

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

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


=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}」としてもかまいません(列を入れ替えるのではなく、単純に加える)。検索キーの列が途中の列にある場合を考えると普通はそうすべきでしょう。

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

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

www.officeisyours.com