• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VLOOKUP関数について教えてください)

VLOOKUP関数の使い方と注意点

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

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

  • ベストアンサー
  • 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/7941)
回答No.1

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

lulula
質問者

お礼

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

関連するQ&A

専門家に質問してみよう