• 締切済み

vlookup関数とexact関数の結果の違い

vlookup関数を使ったときにエラーになったので、対象の2つのセルをexact関数で調べてみたのですが、exact関数の結果がTRUEになっています。 原因がわからず困惑しています。 ちなみに対象セルの内容は100文字程度の数字、記号です。

  • fisica
  • お礼率77% (235/305)

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

VLOOKUP関数の検索対象は範囲の左端の列のみになります。 =VLOOKUP(A1,B:D,3,FALSE) 上記の式ではA1セルの値がC列に有ってもB列に無いときはエラーになります。 >対象の2つのセルをexact関数で調べてみたのですが、exact関数の結果がTRUEになっています。 模擬データとVLOOKUP関数の数式を提示して頂けないとエラーの原因が分かりません。 尚、EXACT関数で確認するよりCOUNTIF関数で確認された方が良いでしょう。

fisica
質問者

お礼

皆様大変ありがとうございます。 原因が判明いたしました。 255文字を超えていたためのエラーのようでした。 質問中に「100文字程度の数字、記号」と書いておきながら、そうではない条件のものがありご迷惑おかけしました。 回答をいただきありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 VLOOKUP関数は実際に多くのユーザーが問題なく使用している関数なのですから、 >vlookup関数を使ったときにエラーになったので、 という事は、「質問者様のVLOOKUP関数の使い方」に間違いがある事が原因だと考えられます。  ですから、原因を明らかにするためには、質問者様がどの様な形でVLOOKUP関数を使っているのかという情報が必要になるのですが、それにもかかわらず質問者様は「どんなVLOOKUP関数を作ったのか」という事すら明らかにしてはおられません。  それでは何が悪かったのかなど、誰にも正確に答える事が出来る訳が御座いません。  VLOOKUP関数は VLOOKUP(検索値, 範囲, 列番号, [検索の型]) という型式で記述される関数で、 「検索値」の所に「値」或いは「単一のセル」を指定し、 「範囲」の所にセル範囲を指定し、 「列番号」の所に「表示したい値が入力されているセルが存在する列が、『範囲』の所で指定したセル範囲の中で、左端から数えて何番目の列に相当するのか」という事を指定すると、 「『範囲』の所で指定したセル範囲の中の左端の列のセル範囲」の中から、「『検索値』の所で指定した『値』そのものか、或いは指定した『セル』に入力されている値」を検索し、 該当するセルが存在していた場合には、その該当しているセルと同じ行にある「『範囲』の所で指定したセル範囲の中の『範囲』の所で指定した数値番目の列」に入力されている値が返されます。  又、 [検索の型]の所に「FALSE」や数値の0を指定すると、「範囲」の所で指定したセル範囲の中の左端の列の中から、「検索値」の所で指定した値と完全に一致する値が入力されているセルのみが検索されます。  一方、 [検索の型]の所に何も指定しないか、或いは「TRUE」や数値の1を指定すると、「範囲」の所で指定したセル範囲の中の左端の列の中から、「『検索値』の所で指定した値よりも小さい値が入力されている最後のセル」が検索されます。(但し、全く値や関数が何も入力されていない完全に空欄のセルは無視されます)  それがエラーになったという事は、質問者様が上記の形式のどれかに反する形でVLOOKUP関数を使っているからだと考えられます。  例えば、 ・「検索値」の所に空欄のセルを指定している ・「列番号」の所で数値以外の値を指定している ・「列番号」の所で0やマイナスの数値を指定している ・「列番号」の所で「『検索値』の所で指定したセル範囲」の列数よりも大きな値を指定している ・[検索の型]の所に「FALSE」や数値の0を指定しているのにもかかわらず、「『範囲』の所で指定したセル範囲の中の左端の列のセル範囲」の中には、「検索値」の所で指定した値と完全に一致する値が入力されているセルが存在しない ・ [検索の型]の所に何も指定しないか、或いは「TRUE」や数値の1を指定しているのにもかかわらず、「『範囲』の所で指定したセル範囲の中の左端の列のセル範囲」の中には、「『検索値』の所で指定した値」よりも小さい値が入力されているセルが存在しない などといった事が原因となり得ますので、質問者様が上記のエラーの原因となりえる過ちの内のどれかを犯していると思われます。  因みに、回答No.1様の仰っておられる >「検索値」も検索される側も一見同じに見えても、此方文字列の数字、彼方数値の場合は仰るような現象になります。 は、数値データと文字列データの違いという事になりますから、 >・[検索の型]の所に「FALSE」や数値の0を指定しているのにもかかわらず、「『範囲』の所で指定したセル範囲の中の左端の列のセル範囲」の中には、「検索値」の所で指定した値と完全に一致する値が入力されているセルが存在しない >・ [検索の型]の所に何も指定しないか、或いは「TRUE」や数値の1を指定しているのにもかかわらず、「『範囲』の所で指定したセル範囲の中の左端の列のセル範囲」の中には、「『検索値』の所で指定した値よりも小さい値が入力されている最後のセル」が存在しない のどちらかに該当します。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.1

VLOOKUP(検索値,範囲,列番号,[検索の型]) が「vlookup関数」の構文ですね。 「検索値」も検索される側も一見同じに見えても、此方文字列の数字、彼方数値の場合は仰るような現象になります。 つまり、=EXACT(A1,B1)、=(A1=B1) の戻り値は、前者は TRUE、後者は FALSE というように。 分っかるかなぁ~?

関連するQ&A

  • EXACT関数でデータ校正したい

    アンケート入力の仕事をしている者です。 アンケートの1件の項目が20以上もあって、EXACT関数でセルごとのTRUE,FALSEを出して入力ミスを見つけたいのですが、うまくいきません。 本によれば、1セルにEXACT関数を入力した後、比較するセル分コピーする、とあるのですが、 それはつまり1セルのTRUE,FALSEの結果をだしたら、それをコピーすれば、比較したい部分のセルすべてにEXACTが効くということなのでしょうか? それを自分でも確かめようとしたのですが、 なんと、絶対同じはずの1セルも(コピーしたので) FALSEと出てしまって、困っています。 なんとか、セルごとのTRUE,FALSEを出したいので、よろしくお願いします!

  • エクセル 検索値が関数でVLOOKUPの時

    括弧付き社員番号「(12345)」からMID関数で12345を取り出したセルを使用してVLOOKUP関数で検索するとヒットしません。 ・セルが数字なのに左寄せになっている。 ・直接12345と入力すると右寄せで入りヒットする。 関数の結果は数字といえども文字列で戻ってくるようです。 セルもテーブルもどちらも半角です。 数字と英字の混在を試すと正しくヒットする。 VLOOKUPでは「関数で取り出した数字」は正しく認識してくれないのでしょうか? 基本的な質問かもしれませんが対処策を教えてください

  • ExcelのVLOOKUPで結果の表示が・・・

    うまくいきません。 =IF(B17="","",VLOOKUP(B17,Sheet3!$A$1:$B$40,2)) という関数を入力しました。 結果は範囲内の2列目から検索された 「0010181」という数字のはずなのですが正しく表示されません。 この場合、結果は「0040602」と表示されました。 (関数は間違っていないと思うのですが) セルの書式設定は「文字列」になっています。 他のセルでもやはり正しい結果がでません。 こんなことは初めてでさっぱりわかりません。 どうしたら、範囲内にある正しい数字(文字列)が表示されますか? うまく説明できないので不明な点があったら補足致しますので よろしくお願い致します。

  • VLOOKUPについて

    エクセルでVLOOKUP関数を使うときに検索値を入力するのですが、これって(A1)みたいなセルの番号を入力するとエラーがでるものなのですか?0のような数字を直接入力すると検索できるのですがセルの番号を入力するとエラーがでます。原因がわかるようでしたら教えてください。お願いします。

  • VLOOKUP関数の引数について

    VLOOKUP関数の引数に「***1」など『*』を使用すると、 任意の数字を引っ張ってしまいます。 同じように、VLOOKUP関数の引数として使用できないものはありますか? また、「a001」を引数にするのはできますか? 記号+三桁の数字で引数として使用したい、又はそれに変わるもの。 よろしくお願いします。

  • エクセルの関数についての疑問(IFとEXACT)

    お世話になります。 チョットどーしてかわからないので教えて下さいm(__)m OS、エクセルともにXPを使用しています。 私はAー1とB-1のデータが同じものかどうかを 調べる時は、IF関数かEXACT関数を利用しているのですが、同じ文字や数値が入っているにも関わらず、結果がFALSEになる事があります。 ■データの内容 A-1には自分で入力(作成した)「あ」というデータ。B-1にはインターネットでコピーしたり他人が作成したデータ「あ」が入力されています。 この「あ」は主に町名が入っています。 あきらかに同じ文字なのに、なぜTRUEではないのでしょうか?  ちなみに、全角や半角。セルの書式設定で表示形式なども調べてA、B列ともに同じ形式になっています。 よろしくお願いしますm(__)m

  • VLOOKUP関数について

    VLOOKUP関数で大文字と小文字を区別させる方法はありますか?どうしても区別されずに結果が出てしまいます。

  • vlookup関数のことになりますm(_ _)m

    エクセルのvlookupに関してですが、どうやっても表から対象の内容を 1つしかひっぱてこないので、どうやったら、入力した内容に合致した 全ての内容をひっぱてくれるのか教えてくださいませm(_ _)m 表は.... 入力するところは1つです。 入力する数値⇒【  】   参照する表は A  B 200 ばなな 200 みかん 300 りんご 300 イチゴ 300 キュウイ 500 すいか 700 めろん になります。。。(Aは重さ、Bは果物名です) 現在 結果の欄に【=VLOOKUP(入力欄,A1:B7,2,TRUE)】と式を入れているのですが、この場合、数値を"400"と入力した場合 結果欄には【キュウイ】が表示されますが、同じ数値である【イチゴ】と【りんご】を下のセルもしくは別のセルに併せて表示させるにはどのようにしたらいいのでしょうか? ※結果には入力欄に入力した値よりも低いけれども一番近い物が選ばれる様にしたいのです。例えば 入力値が260であれば【ばなな】【みかん】が、、入力値が520であれば【すいか】だけが表示されるという形で。。。 ※果物は100ぐらいありますので、200<300 という風に1個づつしてしまうのは。。チョットきついかもしれないです

  • VLOOKUP関数が#N/Aで使えません

    こんにちは。 エクセルで表を作っています。 VLOOKUP関数を使いたいのですが、エラー#N/Aが出て使えません。とてもシンプルな式なのに、何がだめでできないのか全く解かりません。 式は、=VLOOKUP(C3&D3,A7:D12,4,FALSE)です。 ちなみに、=VLOOKUP(C2,B7:D12,3,FALSE)にはちゃんと反応して数値を返してくれます。違いは検索値だけなのですが、数字になっているので、文字列に指定もしました。違うセルで=C3&D3は返してくれています。 何がいけなくてできないのか、教えていただけると助かります。 よろしくお願いします。

  • ExcelのVlookup関数で一致した文字のセルの番地を取得する方法

    ExcelのVlookup関数で一致した文字のセルの番地を取得する方法 プログラム(VBA)で、検索で使用する関数でVlookup関数というのがあるというのが最近知ったのですが、Vlookup関数は、検索するセルの範囲を指定して、検索対象の文字列が一致した場合、そのセルの内容(値)を返すという風に書いてあったのですが、値ではなく、そのセルの番地を取得する方法はあるのでしょうか? ありましたら、その方法を詳しく教えてください。Vlookup関数以外でも検索するコードがあるようですが、Vlookup関数に限った場合でよろしくお願いします。 回答よろしくお願いします。

専門家に質問してみよう