スプレッドシートのVLOOKUP関数で実現できないことまとめ

非常に便利なVLOOKUP関数はスプレッドシート(エクセル)でよく利用されます。

しかし、そんなVLOOKUP関数でも何でもできるわけではなく、できないこともあります。

そこで、VLOOKUP関数ではできないことをまとめてみました。

VLOOKUPは大量データから特定条件の抽出に便利

VLOOKUP関数は、Googleスプレッドシートに加え、エクセルにも用意されている関数です。

以下のように4つの引数を設定します。

VLOOKUP(検索キー,検索範囲,指数,FALSE)

VLOOKUP関数の使用例

検索キーにヒットした行の情報を参照できるため、たくさんあるデータの中から、検索条件にヒットした行を抽出できます。

商品データや注文データの中から、日付などの条件に合致したものだけを取り出すといったユースケースでとても便利です。

VLOOKUP関数でできないこと

そんな便利でスプレッドシート・エクセルでもよく使われているVLOOKUP関数ですが、もちろん万能ではありません。

VLOOKUP関数で可能なことの条件は限られています。

そこで、VLOOKUP関数では仕様上難しい、できないことをまとめてみました。

①選択した範囲の1列目以外を検索する

VLOOKUP関数の2つ目の引数では、検索範囲を指定します。

検索範囲では、「B2:G100」といった指定する形式で、何行・何列であっても指定することが可能です。

しかし、実際にVLOOKUP関数の検索キーの検索対象となるのは一番左側の列のみです。

「B2:G100」という検索範囲を指定した場合には1つ目の検索キーと比較するのは、B列の「B2:B100」です。

C~G列は、B列で検索キーがヒットした場合に表示させる要素としてしか活用ができません。

※これはVLOOKUPの仕様上不可能です。

②条件合致セルより左側のセルを参照する

VLOOKUP関数では3番目の引数として指数という数字を指定します。

検索範囲の中で検索キーにヒットした行の、指数で指定したx番目の列のセルを表示させます。

この指数ですが、指定できるのは1以上の数字のみです。

負の数が指定できないため、条件合致したセルよりも左側のセルを参照することができません。

そのため、VLOOKUP関数では、検索したい要素よりも右側にある要素を抽出は不可能です。

もし、VLOOKUP関数でそうした抽出方法を行いたいの対応方法には、元の表の並びを変更する必要があります。

③同じ要素が複数ある場合に、それぞれを抽出する

VLOOKUP関数の1つ目の検索キーに合致する条件が複数ある場合、その場合、上にある行の要素が抽出されます。

VLOOKUP関数を使いたい動きとしては、1度検索ヒットしたあとはその行を除外して次のセルを抽出してもらいたいところです。

しかし、VLOOKUP関数では日付で抽出を行った場合、複数回設定しても、同じセルが抽出され続けます。

また、同じ要素だからといって、要素を集計するといったことも不可能です。

条件が複数合致する場合の表にはVLOOKUP関数は適していません。

もし、そうした場合には、QUERY関数を利用することで複数合致に対応できます。

他の関数で組み合わせて実現可能なケースも

VLOOKUP関数でできない事例として紹介したケースも、他の関数を組み合わせることで実現できるものもあります。

ただ、色々な関数を組み合わせることで複雑な数式になったり、凝った表を用意することなります。

あまりに複雑に実装すると、どのように実装されているのかわかりづらくなる難点があります。

その他にもQUERY関数などのVLOOKUP関数の代替が可能な数式もありますので、できるだけシンプルに実装できる手段を検討するのがオススメです。

まとめ・終わりに

今回、VLOOKUP関数だけでは実現が難しい3つのケースを紹介しました。

スプレッドシート(EXCEL)ではVLOOKUPが利便性の高い関数として、よく活用されています。

しかし、便利なVLOOKUP関数といえ、できることとできないことがあります。

そうしたVLOOKUP関数の特徴とできる範囲をしっかり把握し、活用していきましょう。