• ベストアンサー

VLOOKUP関数の「FALSE」と「TRUE」の違いについて

文字コード表を「VLOOKUP関数」を使って検索する仕組みを作りましたが、「*」「~」の検索がうまくいきません。検索方法を「FALSE」から「TRUE」に変えて検索すると正常に検索できます。 この違いについて何方か教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.4

VLOOKUPのTRUE型検索とFALSE型検索にはいろいろな違いがありますが、 【 FALSE型検索ではワイルドカード文字(?,*,~)が使える 】 というのも違いの一つです。 逆に言えば、FALSE型で"?","*","~"を含む文字列を検索しようとすると、 ワイルドカードとみなされてしまうので、ご質問のような結果になります。 ■ワイルドカード文字 - Excel - Microsoft Office Online http://office.microsoft.com/ja-jp/excel/HP052036121041.aspx?pid=CH062527971041 > ●? (疑問符) >  任意の 1 文字 >   たとえば、「インターフェ?ス」と入力すると >   "インターフェイス" や "インターフェース" が検索されます。 > ●* (アスタリスク) >  任意の数の文字 >   たとえば、「Win*」と入力すると "Win98" や "Win2000" が検索されます。 > ●~ (チルダ) (?、*、または ~ の前に入力) >  疑問符、アスタリスク、またはチルダ >   たとえば、「fy91~?」と入力すると "fy91?" が検索されます。 したがって、 "*"を検索文字列とした場合は【あらゆる文字列】がヒットし、 "~"を検索文字列とした場合は【長さゼロの文字列""】がヒットします。 VLOOKUP関数で"?","*","~"を(文字通りの意味で)含む文字列を検索する場合は、 検索範囲を昇順に並べ替えてTRUE型で検索するか、 FALSE型検索を使う場合は、下記のように 検索文字列の該当文字にあらかじめ"~"をつけてから検索する必要があります。  =VLOOKUP(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(【検索文字列】,"~","~~"),"?","~?"),"*","~*"),【検索範囲】,2,FALSE) 以上ご参考まで。

noname#105800
質問者

お礼

分かりやすい説明有り難うございます。 出来ました。

その他の回答 (3)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

ネットで検索すると沢山でてきますよ。 エクセルのヘルプにも記載されています。 http://search.goo.ne.jp/web.jsp?dummy=%F3%FE%F3%FE%F3%FE&status=select&from=goo_oshiete&PT=goo_oshiete&nsMT=&MT=VLOOKUP%A1%A1true+false+%B0%E3%A4%A4&c=0

noname#105800
質問者

お礼

有り難うございます。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.2

VLOOKUP関数の4番目の引数に対してならば「検索の型」を指定する部分です。 ヘルプを引用すると 検索の型 検索値 と完全に一致する値だけを検索するか、その近似値を含めて 検索するかを、論理値で指定します。 TRUE を指定するか省略すると、検索値 が見つからない場合に、検索値未満で最も大きい値が使用されます。 FALSE を指定すると、検索値 と完全に一致する値だけが検索され、見つからない場合は エラー値 #N/A が返されます。

noname#105800
質問者

お礼

ご回答有り難うございます。

noname#105800
質問者

補足

検索結果を添付します。 検索表 文字 ASC (    28 )    29 *    2a ,    2c .    2e / 2f ~    7e 検索文字 FALSE TRUE (    28  28 )    29 29 *    28 2a ★ ,    2c 2c .    2e 2e /    2f 2f ~    #N/A 7e ★ ★の部分の違いについて分からないのです。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

FALSE を指定すると、検索値と完全に一致する値だけが検索され、見つからない場合はエラー値 #N/A が返されます。 しかし、検索の型でTRUE を指定するか省略すると、検索値が見つからない場合に、検索値未満で最も大きい値が使用されます。 したがって、完全に一致する場合の値を検索したければ、"TRUE" を設定してください。

noname#105800
質問者

お礼

ご回答有り難うございます。

noname#105800
質問者

補足

検索結果を添付します。 検索表 文字  ASC (    28 )    29 *    2a ,    2c .    2e /    2f ~    7e 検索文字 FALSE  TRUE (     28   28 )     29   29 *     28   2a ★ ,     2c   2c .     2e   2e /     2f   2f ~    #N/A   7e ★ ★の部分の違いについて分からないのです。

関連するQ&A

専門家に質問してみよう