VLOOKUP関数の使い方と注意点

このQ&Aのポイント
  • VLOOKUP関数を使って検索値を文字列に変換したり、ソートしたりする際に値が返らない場合、考えられる原因は何でしょうか?
  • VLOOKUP関数で列番号が後ろの方だった場合、効率的に数える方法はありますか?
  • VLOOKUP関数の検索方法にゼロが入っている場合、どのような検索方法なのでしょうか?具体的な式の使用例も紹介してください。
回答を見る
  • ベストアンサー

VLOOKUP関数について教えてください

【1】 検索値を文字列に直して、ソートしたのに、値が返ってきません。 考えられる原因はどんなものがありますか? 検索値は3ケタのものと4ケタのものがあり、数字とアルファベットが混じっています。 【2】 検索値がA列で、列番号がすごく後ろの方だった場合(BF列とか) どうやって数えたら早く数えられるのでしょうか? 【3】 検索方法の所に0(ゼロ)と入っている場合はどのような検索方法なのでしょうか? 会社で他の方が使った式なのですが VLOOKUP(D4',allocation&RVC'!A:BD,56,0) というものがあります。 この式を説明していただけたら有難いです。 宜しくお願いいたします。

  • lulula
  • お礼率76% (463/606)

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

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

【1】  「検索範囲に入力されているデータ」と「検索値として指定したデータ」の、それぞれのデータの形式が異なっていて、どちらか一方が文字列データでとなっていて、もう一方が数値データとなっているのかもしれません。  例えば、検索範囲の左端の列に入力されている3~4桁の数字が、文字列データとなっているにも関わらず、検索値の方は入力した際に数値を入力してしまったとか、或いは逆に、検索範囲の左端の列に入力されている3~4桁の数字が数値データとして入力されているのにも関わらず、検索値の方は文字列として入力されたデータとなっているのかも知れません。  尚、セルの書式設定がの表示形式が[文字列]となっている場合であっても、他のセルに入力されている数値データをコピーしてから、[形式を選択して貼り付け]を行う事で、セルの書式設定がの表示形式が[文字列]となっているセルに、数値データとしての数字の組み合わせを入力する事は可能です。  又、最初から数値データが入力されていた場合には、後からセルの書式設定だけを[文字列]変えたとしても、データの内容は数値データのままで、文字列データとはなりません。  例えば、検索範囲の左端の列のセルを選択した際に、数式バーに '100 か或いは ="100" という表示が現れる行を検索する際に、検索値として入力した値が 100 という具合に、「'」を入れ忘れて入力されたりはしておられないでしょうか? 【2】  一々、目や指でセルの数を数えなくとも、適当なセルに =COLUMNS(A:BF) という関数を入力しますと、A列~BF列の列数が、 58 と表示されますから、VLOOKUP関数の列数の所に、その表示された58を入力します。  或いは、例えば =VLOOKUP(D4,A:BF,58) などとする代わりに =VLOOKUP(D4,A:BF,COLUMNS(A:BF)) の様にするという手もあります。 【3】  検索の型の所に入力するのを省略するか、或いはTRUE又は1を入力した場合には、検索範囲の所で指定されている表または範囲の左端の列において、検索値以下(検索値に等しい場合を含む)の値を持つセルの中で、最大の値を持つセルが存在する行を検索し、検索範囲の所で指定されている表または範囲の中の、左から数えて「列番号で指定した数」番目の列にあるセルの値を返します。  但し、そのためには、検索範囲の所で指定されている表または範囲の左端の列に入力されている値が、昇順になるようにデータを並べておかねばなりません。  又、検索の型の所にFALSE又は0を入力した場合には、検索範囲の所で指定されている表または範囲の左端の列において、検索値に丁度等しい値を持つセルが存在する行を検索し、検索範囲の所で指定されている表または範囲の中の、左から数えて「列番号で指定した数」番目の列にあるセルの値を返します。  こちらの場合は、検索範囲の所で指定されている表または範囲の左端の列に入力されている値が、規則正しく並んでいる必要は無く、順不同に並んでいても構いません。  但し、検索範囲の所で指定されている表または範囲の左端の列の中に、検索値に丁度等しい値を持つセルが無い場合には、#N/Aエラーとなります。  尚、 VLOOKUP(D4',allocation&RVC'!A:BD,56,0) は、おそらく =VLOOKUP(D4,'allocation&RVC'!A:BD,56,0) の間違いで、 allocation&RVC というシート名のシートのA列の中で、 =VLOOKUP(D4,'allocation&RVC'!A:BD,56,0) の関数が入力されているセルが存在しているシートのD4セルに入力されている値と、完全に等しい値を持つセルがある行が、何行目に当たるのかを検索し、その行の中で、allocation&RVCシートのA列から数えて56番目の列、即ちallocation&RVCシートのBD列にあるセルの値を返す関数です。

lulula
質問者

お礼

何から何までありがとうございます! すごくわかりやすくて今まで疑問に思っていたことが解決してスッキリしました^^ もっと関数が使えるようになりたいので頑張って勉強します

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>ゼロ 完全一致を指定するFALSEと同じ意味です。 >VLOOKUP(D4',allocation&RVC'!A:BD,56,0) この数式は間違っていますが、とりあえずヤリタイ事はD4の値をA列から探し出して、全く同じ行のBD列の値を取ってきます。

lulula
質問者

お礼

ありがとうございました。 0=FALSEなのですね。

関連するQ&A

  • エクセルVLOOKUP関数について

    =IF($B$3="","",IF(ISERROR(VLOOKUP($B$3,注文管理!A$3:AE$9898,4,0)),"客注NO.を確認!",VLOOKUP($B$3,注文管理!$A$3:$AE$9898,4,0))) VLOOKUP関数を使って、上の式を作りました。 B3に入るのは5桁の数字で文字列です。注文管理のA列に5桁の数字が入っており、そこも文字列にしています。 うまくいく数字とうまくいかない数字があるのですが、なぜだかわかりません。 どこがおかしいのかおしえてください。

  • エクセルVLOOKUPで

    関数VLOOKUPを使いたいのですが、検索文字が数字およびアルファベットで、数字は「文字列」です。 検索される側は数字が数値です。 こういう場合はどうすればいいのでしょうか? 逆であれば、VLOOKUP(TEXT(A1,"00"),とでもするのでしょうが、検索される範囲の方なので困っています。

  • Excel関数「VLOOKUP」でエラーが出る理由

    質問させて頂きます。 ここに、ふたつの似通ったBookファイル(Book1、Book2)があると仮定します。 内容はふたつとも、2桁~5桁の数字が、A列に5000行くらいまで打ち込まれている物です。 (※正確に言うと、Book1には4500行、Book2には5000行、数字が打ち込まれています) 例) 22 278 599 8819 33119 70994・・・等(こういった内容が5000行くらいまで続きます) Book1とBook2の数字を突き合せ、重複がないかどうか調べたいのですが、 関数『VLOOKUP』で両ファイルを突き合わせようとすると、 なぜか、エラー値『#N/A』が出てきてしまいます。 ご存知の通り、エラー値『#N/A』は「値がない」という意味なので、 ある意味、「この数字は重複していない」という意味でも取れると思うのですが、 明らかに重複している数字に対しても、エラー値が出てきてしまうので、困っています。 おそらく、私の『VLOOKUP』での突き合わせ方法に原因があると思うのですが、 どこに原因があるのかがわかりません。 【私の突き合わせ方法】 (1).Book2のB列に「×」と書いたセルを挿入します。 (2).Book1のB列にVLOOKUPを使用し、下記のように設定します。   検索値:A1    範囲:[Book2]Sheet1!$A$1:$B$5000   列番号:2  検索の型:FALSE こうする事で、「重複していたら"×"を出す」という形にしようと思っていました。 しかしなぜか、すべて『#N/A』となってしまいます。 何度も言うようで大変恐縮ですが、「明らかに重複している数字」に対しても、 「×」ではなく、『#N/A』が出てきます。両数字は、セルの表示形式からなにからすべて一緒です。 エクセルの検索機能を使うと、ちゃんと検索結果に出てきます。にも関わらず『#N/A』が出るのです。 これにはどういった原因があるのでしょうか? ご回答、宜しくお願い致します。

  • vlookup関数のエラーの解決方法を教えて下さい

    EXCELの問題集をしているのですが、Vlookup関数の検索値に、別のシートの表にある数字を引用するとエラー(#N/A)になります。たとえば、検索値に入れる数字は、別のシートのA2(32567)という数字の先頭文字2桁のみが必要な場合、 =Vlookup((LEFT(A2,2),$A2$:$h"10),2,0)という式を入れると、エラー(#N/A)となります。どこが悪いのでしょうか?

  • vlookup関数の使い方

    vlookup関数を使って検索する場合、指定された範囲の1列目に特定の値がないとき、#N/Aが返ってきますが、私は1列目に特定の値がない時には数字の0(ゼロ)が返ってくるように四苦八苦しています。なんとかならないでしょうか。

  • エクセルのVLOOKUP関数について

    エクセルのシート(1)に組合員コード(7桁),氏名,商品,数量・・・が入力してあって、列を挿入し、その組合員コードの左3桁を表示するLEFTの文字列関数を入力します。 それによって3桁が表示され、その3桁のコードは、支店コードを意味するので、シート(2)に支店コード、支店名が入力してあるのでそこから参照するようにシート(1)の3桁が表示されている隣に新たに列を挿入し、シート(2)の支店コードから支店名を引き出すようにVLOOKUP関数を入力したら、「N#A」という表示が出て支店名が表示されません。 LEFT関数によって表示された文字列だと「N#A」で支店名が表示されないのですが、自分で3桁の数字を入力すると支店名が表示されます。 3桁の文字列の結果の値だけをコピーしても、「N#A」が表示され、支店名が表示されません。 文字列関数によって表示された結果から、VLOOKUPで参照は出来ないのでしょうか? 1つずつ自分で数字を入力するしかないのでしょうか? 他に何か別の方法でも構いませんので、教えていただけないでしょうか?

  • EXCELのVLOOKUP関数

    VLOOKUPの検索値に、二つの列を参照するような検索値を入力することは可能でしょうか? 現在、ある表からVLOOKUPでデータを自動検索するような式を考えていますが、この表はA列とB列の2列そろって初めてKeyとなっています。 もし関数の組み合わせや、他にこの機能を実現できる方法をご存知でしたら教えてください。よろしくお願い致します。

  • vlookup関数詳しい方おしえてください

    vlookup関数で質問です。 関数の説明本などをみると、 検索する値は「左端」でなければならないという記載を見かけ、 例にあがっている図も検索する値がA列になっている場合が多いので、 エクセルシートの「A列」に検索するデータがないといけないと 思っていました。なのでいつも、わざわざ列を入れ替えしていました。 しかし、今日、目からうろこで気が付きました。 絶対A列でなくていいのですよね。 たとえば、検索する値がC列にあるなら、C列を左端にして、 範囲を指定すればいいのですよね。C1:G5など。 お教えください。よろしくおねがいします。

  • VLookUp関数の使い方

    VLookUp関数で[検索の型]をFalseにすると、検索値と同じ値がないと エラーコード(#N/A)を返してきます。 検索値と同じ値がないときは、別の処理をしたいので、エラーコードではなく別の文字列を返してほしいですが、 できますか?

  • エクセルのvlookup等で相談なのですが

    エクセルのvlookup等で相談なのですが A列 B列  C列  D列 1 りんご  2 =vlookup(C,AB,2,FLASE) 2 バナナ  2 3 メロン  3 上記のように設定し、D列にバナナ等々果物の名前が入るようにすることができるのですが、 検索値が文字列 日本○○株式会社とか、数字やアルファベットでない場合vlookupがエラーになってしまうのですが、日本語でも大丈夫な関数もしくは、そのような方法ご存知でしょうか? よろしくお願いいたします。

専門家に質問してみよう