ぽぽづれ。

「ただいま」の挨拶よりも電源スイッチONのが先な、そんな日常を綴る『ぽぽろんのパソコンつれづれ日記(ぽぽづれ)』へようこそ。

*

[Excel]VLOOKUPで結果を0にしない

     あとで読む(2)

VLOOKUPで検索した結果、引用元が空欄だと0になっちゃったりして、冗長な書き方で対応してたものの、いい書き方があったのに完全ド忘れ。

調べたら良さそうなのがあったので、次にド忘れした時用にメモ。

× やりがちな書き方

=IF(VLOOKUP(A2,元データ!$A$2:$B$1001,2,FALSE)=””,””,VLOOKUP(A2,元データ!$A$2:$B$1001,2,FALSE))

  • VLOOKUP…垂直方向(Vertical)に、調べていきます(Look up)。
  • A2に入っている値を使って、シート「元データ」の、セル「$A$2」~「$B$1001」の1列目から調べていきます。見つかった場合、2列目(B列)から値を取得します。
  • 見つかった値が空欄だったら、空欄を返し、そうで無かった場合は、
  • 【A2に入っている値を使って、シート「元データ」の、セル「$A$2」~「$B$1001」の1列目から調べていきます。見つかった場合、2列目(B列)から値を取得します。】をもう一度実行して、値を取得します。
  • 探して」、「見つかったら」、「探して」をもう一度やる、と二度手間な感じです。件数が多くなってくると、計算時間も伸びてきます。

○ すっきりした書き方

=VLOOKUP(A2,元データ!$A$2:$B$1001,2,FALSE) & “”

  • VLOOKUPで探した場合、見つからないと、結果は「空」となり「0」に読み替えられてしまいます。
  • 明示的に0文字の文字列をくっつけることで、結果は「0文字の空白」という事になり、「0」として扱われないようです。
  • ただし、文字列として扱われてしまうので、引用する内容が文字列の時だけにしましょう。

あとは、該当が無い時に結果が「#N/A」(Not Applicable)にならないようにする時の書き方。

× やりがちな書き方

=IF(ISERROR(VLOOKUP(A2,元データ!$A$2:$B$1001,2,FALSE)),””,VLOOKUP(A2,元データ!$A$2:$B$1001,2,FALSE)&””)

  • VLOOKUPで調べた結果エラーだったら空白、エラーじゃ無い場合、VLOOKUPをもう一度検索する

○ VLOOKUPを2つ書くより再計算時間が速い書き方

=IF(COUNTIF(元データ!$A$2:$A$1001,A2)=0,””,VLOOKUP(A2,元データ!A2:$B$1001,2,FALSE)&””)

  • 検索値が存在する回数をカウント。
  • 0だったら、存在しないので、空白
  • 存在している場合、VLOOKUPで検索結果を持ってくる。

○ もっと速そうな書き方

=IFERROR(VLOOKUP(A2,元データ!A2:$B$1001,2,FALSE)&””,””)

  • VLOOKUPで検索。式の結果がエラーじゃ無い時は式の結果を採用、エラーの場合は空欄にする。

結果が文字列なら、「&””」を付けるだけで解決するのは良いのですが、数値で「0」の時は「0」、空欄の時は空欄にしたい場合はなかなか難しい感じ。

=IFERROR(IF(VLOOKUP(A2,元データ!A2:$B$1001,2,FALSE)=””,””,VLOOKUP(A2,元データ!A2:$B$1001,2,FALSE)),””)

とするしか無い気がします。

一応、「0」の時も空欄になってしまって良いなら書式設定を「#」にするという合わせ技もある様です。
(「セルの書式設定」→「表示形式」→「分類:ユーザー定義」で種類のところを「#」にする。)

後は引用元のデータに、空白にしたい結果セルに「’」(半角シングルクォート)を入れておくと良いのですが…どっかから持ってきたデータだと加工するのが面倒ですよね(^-^;

× 更にやりがちな冗長な書き方

=IF(ISERROR(VLOOKUP(A2,元データ!A2:$B$1001,2,FALSE)),””,IF(VLOOKUP(A2,元データ!A2:$B$1001,2,FALSE)=””,””,VLOOKUP(A2,元データ!A2:$B$1001,2,FALSE)))

え?「やりがちじゃない」って!?(^-^;

つ、ついやっちゃうんだよぅΣ(゚ロ゚)o゙

<参考サイト>

VLOOKUPで0を返さない|Office TANAKA
http://officetanaka.net/excel/function/tips/tips48.htm

VLOOKUP関数 使い方|エクセルの学校
http://www.excel.studio-kazu.jp/lib/e1tw/e1tw.html

<今回直接関係ないけど、面白かったサイト>

VLOOKUPの限界
http://vlookup.skr.jp/index.html 

 - Windows XP/Vista/7 ,

記事の評価・共有(シェア)

シェア・ブックマークは、こちらから行えます(^-^)o

感想や指摘など、お待ちしております

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

  関連記事