Excel (エクセル) 学習室 / KENZO30


エクセル中級 24

中級・特別編トップへ

Excel(エクセル)学習室 HOME

   中 級 24

Excelの基礎

  検索/行列関数(LOOKUP関数)   

 

検索/行列関数(LOOKUP関数)

LOOKUP関数

LOOKUP関数は、VLOOKUP関数やHLOOKUP関数に似た関数です。VLOOKUP関数は、一般的に幅広く使われていますが、LOOKUP関数の方は、それ程使われていないようです。それは、LOOKUP関数について、あまり知られていない面があるからかもしれません。

LOOKUP関数には、2つの形式があります。ベクトル形式配列形式の2種類です。関数の挿入ダイアログボックスを使うと、下図のように表示されます。

 


ベクトル形式は、データ範囲を 1行または 1列で指定して使う方法であり、配列形式は、表などのデータ範囲を広く指定して検索する方法です。

(画像:Win XP&Excel2003)

ここでベクトルや配列の意味についてこだわってしまうと、かえって難しくなりますので、単純に2つの使い方があるのだと理解してください。

書式で表すと、LOOKUP(検査値,検査範囲,対応範囲) … ベクトル形式
         LOOKUP(検査値,配列)
… 配列形式
   となります。
はじめにベクトル形式から説明します。引数の検索値は、検査範囲で検索する値を、直接あるいはセル参照などで指定します。名前を定義して定義名を使うことができます。
検査範囲は、1行または 1列のみでセル範囲を指定します。検査範囲の値は、文字列、数値、論理値のどれかでないと対象になりません。また、その値は、昇順に並べておく必要があります。文字列でアルファベットは A 〜 Z、かなは "あ" 〜 "ん"、数値は 1 〜 9、エラー値は FALSE から TRUE へ並べておく必要があります。なお、英字の大文字と小文字は区別されません。かなり制限があります。
対応範囲は、データを抽出する対象範囲のことです。検査範囲と同じく、1行または 1列のみのセル範囲を指定します。そして、対応範囲は検査範囲と同じ行や列の大きさにする必要があります。

次に配列形式です。引数の検査値は、配列(データ範囲)で検索する値を指定します。ベクトル形式と同じく、直接あるいはセル参照などで指定したり、名前を定義して定義名を使います。
配列は、検索対象の全体をセル参照や名前の定義名で指定します。また、配列の先頭行や先頭列は、検索範囲となるためベクトル形式と同じく昇順に並べておく必要があります。

LOOKUP関数は、いろいろな特徴がありますので使用例で理解してください。

 

使用例 1

下図は、LOOKUP関数のベクトル形式、配列形式及びVLOOKUP関数で検索したものです。ある商品の大阪の売上げ数を月別に求めるものになっています。

 

C10がベクトル形式、C11が配列形式、C12がVLOOKUP関数です。

それぞれの引数の違いを理解してください。

 

(画像:Win XP&Excel2003)

ベクトル形式では、検査範囲が表の左側、対応範囲が右側となっています。配列形式では、表のデータ範囲全体を配列として指定しています。指定範囲の先頭列である月が検索範囲となり、指定範囲の後列である大阪が検索対象になります。B11の検査値は共通です。
みてのとおり、このような表の場合は、LOOKUPでもVLOOKUPでも簡単に答えを求めることができます。

ところが、下記の例を見てください。
上記と同じ方法で、LOOKUPの2つの形式とVLOOKUPで検索したものです。LOOKUP関数では、エラー表示されています。


実は、このような表にはLOOKUP関数は適していないようです。

検索範囲に問題があるようです。

 

 

(画像:Win XP&Excel2003)

検索範囲の担当者名は、昇順で並べているものの、単純な数値やアルファベットなどでないと引数に指定できないと考えられます。

この例のように、LOOKUPの使用にはいろいろ制約があります。

 

使用例 2

下図は、ベクトル形式で実験したものです。こうした使い方が正しいものどうかはわかりません。実験すると可能であるということです。


左図は、検索範囲が右側に、対応範囲が左側にあります。また、範囲の行の位置もずれていますし、検索範囲と対応範囲の間にはスペースがあります。
これでも、ベクトル形式では検索可能です。

(画像:Win XP&Excel2003)

VLOOKUP関数では、範囲左側の先頭列から検索値を探すことしかできませんが、LOOKUPのベクトル形式では、逆に右側から探す使い方ができます。

 

使用例 3

LOOKUP関数は、HLOOKUP関数のように縦方向の検索でも使うことができます。


特にベクトル形式では自在な設定が可能です。
左図はその例ですが、単純に検索範囲と対応範囲を横方向に指定するだけです。


(画像:Win XP&Excel2003)

ところが配列形式では、任意の設定ができません。
配列形式では、範囲指定した配列によって横方向か縦方向かが自動的に決まります。指定した配列で列数と行数を比較して、列数が多いと先頭行で検索し、列数と行数が同数か行数が多いと先頭列で検索します。このように配列の形態によって、自動的に変わります。

 

左図の左側は、3列×5行なので横方向になっています。

(画像:Win XP&Excel2003)

右側の例は、6行×3列なので縦方向になっています。
さて、配列には配列定数があり、配列形式では配列定数で式を作ることもできますが、具体的にほとんど使うこともないと思いますので、ここでは解説を省略します。

 

使用例 4

LOOKUP関数でも、VLOOKUP関数のように検査範囲に検査値が見つからないと、検査範囲に含まれている検査値以下の最大の値で検索されます。 

 

左図は、ベクトル形式の例です。
使用時間5時間の手数料を求めたものです。あいにく5時間は、検査範囲にありませんが、5時間以内の最大の値である4時間で検索し、手数料200円を求めています。

 


(画像:Win XP&Excel2003)

この例は、ベクトル形式ですが、配列形式でも同じです。検査範囲に含まれている検査値以下の最大の値で検索されます。 

 

   先頭へ戻る   

中級・特別編トップへ

Excel(エクセル)学習室 HOME


KENZO30 内容の無断転載は、禁止しています