ぼくの考えた最強の投資術

【目標】FXで失った○○円を回収する。

VLOOKUPでうまく検索できない場合の対処法

VLOOKUPについて

 
Excelで便利といわれる機能に
VLOOKUPがある。

これは
検索ワードを決めて
調べたい検索範囲を対象として(他のシートも選択可)
その検索ワードと一致する行の好きなデータを取得できる。

ところが
この便利な機能を活用しようとしたところ
何度もつまってしまった。
そこで
うまく検索できない原因についてまとめる。

ちなみに
VLOOKUPを使っていてうまくいかないときによくみかけるのが
「N/A」だ。
これは「No Assign」(ノー・アサイン)の頭文字で
検索ワードでうまくヒットしないときにでてくるやつだ。

原因その① 検索範囲の左列に検索ワードが含まれていない

 
  A   B   C 
1 みかん 100円 愛媛
2 りんご 200円 青森
3 桃   250円 山梨

このようなデータがある場合に
「青森」や「愛媛」を
VLOOKUP関数の検索ワードにして
果物データをとろうとした場合
一致するデータは存在しないことになる。

原因は
検索範囲の中の
一番左の列(上記A列)に検索ワードが含まれていないと
一致するデータはありませんと返されることになるからだ。

これは
エクセルが対象となる範囲からデータを探す場合
一番左の列だけしか調べない場合があるからだ。
そして
VLOOKUP関数も一番左の列だけしか調べてくれない。

そのため
対処法としては
検索ワードは一番左の列(上記A列)に挿入した上で
VLOOKUPを使えばいい。

  A   B   C 
1 愛媛  みかん 100円 
2 青森  りんご 200円 
3 山梨  桃   250円 

こんな感じで
検索ワード「青森」とかをA列にすればいい。

原因その② 検索ワードに一致するデータが何回かでてくる

 
検索範囲内に
検索ワードに一致するデータが複数ある場合
最初に一致したデータの行しか対象にできない。

  A   B   C 
1 みかん 100円 愛媛
2 りんご 200円 青森
3 桃   250円 山梨
4 みかん 120円 和歌山

この場合
「みかん」というキーワードで検索した場合
一番最初にヒットする1行目の「みかん」データの行しか
対象にならない。

そのため
対処法としては
検索ワードをユニーク(固有)のものにする。
あるいは
検索範囲をあらかじめ絞っておいて
その範囲からデータを取得する。
あるいは
複数ある検索ワードに(1)とかつけてユニークなものにする。
「みかん(1)」、「みかん(2)」
のように。

原因その③ 数字の半角と全角の区別

 
vlookupでは
数字の半角と全角を区別している。
そのため
検索ワードは数字の半角にしているが
検索対象の数字が全角だとヒットしない。

特に
文字と数字の組み合わせの場合とかに
その数字が半角か全角か気づきにくいので
ヒットしなかったりするので注意。

原因その④ 検索方法をFALSE(0)にしていない

 
使い方にもよるが
文字列を検索ワードにする場合
VLOOKUPの引数の4番目は
「FALSE」(もしくは「0」)
にしないとうまくいかない。

これも気を付ける。

ただし
通常は検索ワードを固有の数字にして使用する場合が
多いのかもしれない。
そうなると
この点はそこまで気にしなくていいか。

おまけ① VLOOKUPでよく使う引数2つ

 
VLOOKUPの検索ワードを
あるデータの一部分だけ一致するようにしたい場合
*を使う。
VLOOKUP("*"&$B3&"*",・・・)
こんな感じにすれば
B3に部分一致するデータを引っ張ってこれる。

また
引っ張ってくるデータについては
column()を使うと便利。
これをVLOOKUP関数の第3引数にすれば
列が動くごとに
その列に対応したデータをもってこれるからだ。

おまけ② 絶対参照

 
VLOOKUPを使っていると
絶対参照と相対参照が
特に重要になってくる。

検索ワードについて

 
コードを縦にコピーする場合
行の値が1ずつ増えていくのが理想なので
検索ワードの行の数字は相対参照がいい。

他方
コードを横にコピーする場合
列がずれるとえらいことになるので
検索ワードの列のアルファベットは絶対参照がいい。

検索範囲について

 
検索範囲は
通常固定で使うので
絶対参照にする。