LOOKUP関数が意図したとおりに動作しない

LOOKUP関数が意図したとおりに動作しない現象についての紹介です。

概要

こちらの記事ではLOOKUP関数を利用した数式を紹介しましたが、 同じように記述しても動作が異なる場合があります。ここでは、LOOKUP関数で動作が違う場合について紹介します。

現象の確認:2x2の配列の場合

C1のセルに下記の数式を入力します。

=LOOKUP(A1,{1,2;"りんご","みかん"})

LOOKUP関数が意図したとおりに動作しない:画像1

A1のセルに"1"を入力します。こちらの記事通りの動作であれば、 "りんご"が表示されるはずですが、"2"がセルには表示されます。
LOOKUP関数が意図したとおりに動作しない:画像2

"2"を入力すると、"みかん"ではなく、"2"がセルには表示されます。
LOOKUP関数が意図したとおりに動作しない:画像3

一方A1セルに"りんご"を入力すると、"みかん"がセルに表示されます。
LOOKUP関数が意図したとおりに動作しない:画像4

現象の確認2:3x3の配列の場合

C1のセルに下記の数式を入力します。

=LOOKUP(A1,{1,2,3;"りんご","みかん","パイナップル";"日本","日本","フィリピン"}).

LOOKUP関数が意図したとおりに動作しない:画像5

"1"を入力すると、セルには"3"が表示されます。
LOOKUP関数が意図したとおりに動作しない:画像6

"2"を入力すると、セルには"3"が表示されます。
LOOKUP関数が意図したとおりに動作しない:画像7

"りんご"を入力すると、セルには"パイナップル"が表示されます。
LOOKUP関数が意図したとおりに動作しない:画像8

"日本"を入力すると、セルには"フィリピン"が表示されます。
LOOKUP関数が意図したとおりに動作しない:画像9

原因

Lookup関数の検査値に与える配列が、正方形の配列、または、1次元の個数が2次元の個数より少ない場合は、検証する行・列が逆転するためです。

{1,2,3;"りんご","みかん","パイナップル"} の場合

123
りんごみかんパイナップル


1次元(横方向/列)の配列数が3、2次元(縦方向/行)の配列数が2のため、検査に用いられる値は、1行目になります。つまり、

検査値123
セルに表示される値りんごみかんパイナップル


となります。

{1,2;"りんご","みかん"} の場合

12
りんごみかん


1次元(横方向/列)の配列数が2、2次元(縦方向/行)の配列数が2のため、検査に用いられる値は、1列目になります。つまり、

検査値1りんご
セルに表示される値2みかん


となります。

{1,2,3;"りんご","みかん","パイナップル";"日本","日本","フィリピン"} の場合

123
りんごみかんパイナップル
日本日本フィリピン


1次元(横方向/列)の配列数が3、2次元(縦方向/行)の配列数が3のため、検査に用いられる値は、1列目になり、結果の値は3列目になります。つまり、

検査値1りんご日本
セルに表示される値3パイナップルフィリピン


となります。

対策

対策1 : 列数を増やす

横方向に長い配列を渡すようにすることで、1行目を検査値に設定できます。

C1セルに以下を入力します。

=LOOKUP(A1,{1,2,3,4,5;"りんご","みかん","パイナップル","マンゴー","グレープフルーツ";"日本","日本","フィリピン","インド","アメリカ"})

LOOKUP関数が意図したとおりに動作しない:画像10

A1セルに"1"を入力すると"日本"が表示されます。
LOOKUP関数が意図したとおりに動作しない:画像11

A1セルに"5"を入力すると"アメリカ"が表示されます。
LOOKUP関数が意図したとおりに動作しない:画像12

A1セルに"3"を入力すると"フィリピン"が表示されます。
LOOKUP関数が意図したとおりに動作しない:画像13

検査値12345
セルに表示される値日本日本フィリピンインドアメリカ

となり、与えた配列の1行目を検査値として指定できました。

対策2 : VLOOKUP, HLOOKUPを利用する

VLOOKUP,HLOOKUP を利用すると、検査値を1行目にするか、1列目にするかを明示的に指定できます。 VLOOKUPの利用方法はこちらの記事を、HLOOKUPの利用方法はこちらの記事を参照してください。

AuthorPortraitAlt
著者
iPentecの企画・分析担当。口が悪いのでなるべく寡黙でありたいと思っている。が、ついついしゃべってしまい、毎回墓穴を掘っている。
作成日: 2016-03-25
Copyright © 1995–2025 iPentec all rights reserverd.