痔になりやすい生活習慣とは?

文字コード表を「VLOOKUP関数」を使って検索する仕組みを作りましたが、「*」「~」の検索がうまくいきません。検索方法を「FALSE」から「TRUE」に変えて検索すると正常に検索できます。
この違いについて何方か教えてください。よろしくお願いします。
以下に、検索表と実行結果を添付します。
検索結果を添付します。
検索表
文字  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に関連する最新のQ&A

A 回答 (2件)

=Vlookup(検索値,範囲,列番号,検索の型)


検索の型をFalseにすることにより、検索値にワイルドカードが使えるようになります。(Match関数も同様)
よって、ワイルドカードの 「*」「?」を検索するためには「~」を付け
「~*」、「~?」 チルダ自身も「~~」として検索することになります。
↓やや強引かも
=VLOOKUP(IF(OR($A2="~",$A2="*",$A2="?"),"~","")&$A2,検索表,2,D$1)
    • good
    • 0
この回答へのお礼

分かりやすい説明有り難うございます。
例も添付して頂き参考にします。
ワイルドカードは知っていましたが、チルダ
を使うのは知りませんでした。

お礼日時:2009/07/17 08:06

これはワイルドカードです。



2004ではvlookupのヘルプには書いてありませんが、matchのヘルプ
に書いてありまして、検索の型がFALSEで検索値が文字列の場合、
アスタリスクはワイルドカードとして機能します。だから、"*"は
問答無用で最初の行にヒットしちゃいます。また、チルダは続く1
文字をワイルドカードとして扱わないエスケープ文字として働くの
で、"~"は実質的には何もない空白と同じです。

FALSEの方でアスタリスクを探したかったら"~*"と、チルダを探し
たかったら"~~"と書いてください。
    • good
    • 0
この回答へのお礼

分かりやすい説明有り難うございます。
出来ました。
ワイルドカードは知っていましたが、チルダ
を使うのは知りませんでした。

お礼日時:2009/07/17 08:03

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

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

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

Aベストアンサー

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)

以上ご参考まで。

VLOOKUPのTRUE型検索とFALSE型検索にはいろいろな違いがありますが、
【 FALSE型検索ではワイルドカード文字(?,*,~)が使える 】
というのも違いの一つです。

逆に言えば、FALSE型で"?","*","~"を含む文字列を検索しようとすると、
ワイルドカードとみなされてしまうので、ご質問のような結果になります。

■ワイルドカード文字 - Excel - Microsoft Office Online
http://office.microsoft.com/ja-jp/excel/HP052036121041.aspx?pid=CH062527971041

> ●? (疑問符)
>  任意の 1 文字
>   た...続きを読む

QVLOOKUP関数のFALSEって?

VLOOKUP関数をよく使うのですが、ふと最後の引数のFALSEって何を意味しているのかが気になりました。いつも無意識にFALSEを使っていましたが、TRUEはどのような場合に使う必要が生じるのでしょうか?
本をみると「検索の型」を選択するようですが、よく意味がわかりません。具体的にどういうことなのでしょうか?

Aベストアンサー

検索値と完全に一致する値だけを検索するか、その近似値を含めて検索するかを、論理値で指定します。

検索の型でTRUE を指定するか省略すると、検索値が見つからない場合に、検索値未満で最も大きい値が使用されます。

FALSE を指定すると、検索値と完全に一致する値だけが検索され、見つからない場合はエラー値 #N/A が返されます。


人気Q&Aランキング