Vlookup関数について

このQ&Aのポイント
  • Vlookup関数を使用して、SheetAのK列にA列の値に一致するSheetBの6列目の値を抽出したい。
  • SheetAのK列に=VLOOKUP($A2,SheetB!$A$3:$F$23,6,FALSE)と入力し、SheetBの金額を入力したいが「#N/A」のエラーが出てしまう。
  • 改善策を教えていただけないでしょうか?
回答を見る
  • ベストアンサー

Vlookup関数について

sheetAのK列に、A列(書式は文字列)の値に一致するsheetBのA列(書式は文字列)の中から6列目の値を抽出したい。 SheetAのK列に =VLOOKUP($A2,SheetB!$A$3:$F$23,6,FALSE) としsheetB-F列の金額を入力したいのですが、「#N/A」のエラーが出ます。改善策ご教授願えませんでしょうか?。 sheetA A列 ~ K列 2210      190円 2210      190円 2209      150円 2209      150円 2208      80円 2208      80円 2208      80円 sheetB A列   B列  C列 D列 E列 F列 タイトル01                タイトル02                 2210             190円 2209             150円 2208             80円 2207              :  :               :  :

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

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

>改善策ご教授願えませんでしょうか?。 sheetAとsheetBの値が文字列でA列の値が数値またはその逆になっていませんか? VLOOKUP関数の第1引数「$A2」をsheetBのA列の値と同じタイプにしないと検索に失敗します。 もし、「$A2」の値が数値であれば「$A2&""」とすれば文字列に変換されますので検索可能になります。 逆の場合は「$A2」が文字列のとき「$A2*1」で数値に変換できます。

Horishita
質問者

補足

bunjiiさん ありがとうございました。SheetBのA列の数字を手再入力した結果、正常に検索-計算できました。 A列の数字は年月表示なのですが、いつもこの様な日付式で悩まされています。エラーが出ない様な入力の仕方を知りたいです。入力の際の条件・注意すべき内容など教えて頂けると嬉しいです。 両sheetに同じように「年月や年月日、書式は「日付」(2022/09/28→20220928→LEFT-MID-RIGHTを使って変換した日付など、両sheetの値をそろえて入力したはずなのに、この度の質問の様にエラーが出るのです。 ※今回sheetBは23行でしたので手再入力でしたが‥‥。数十行とな数百行以上にもなると対応しきれず、ご回答にある「*1」で対応した事がありますが‥‥。

関連するQ&A

  • ExcelでのVLOOKUP関数について

    キー1を1000倍したうえで完全一致のVLOOKUP関数を使うと#N/Aエラーが発生します。 表示上は同じように見えますが内部的に異なる値となっているのでしょうか? 試しにエラー行に対して、キーとターゲットとなる当該セルを「=」でつないで確認しても「TRUE」となります。 添付画像は、 検索先としてA列に基準キーを130.168~130.192(step 0.001)で各行へ入力し、B列はA列を1000倍、C列はB列をROUND関数で整数値に丸めたものをキーとしました。 D列にVLOOKUPで参照する値を入力し、E列以降で以下の異なるパターンで値を参照しています。 (1)【E・F列】 ・E列に整数値をキーとして130168~130192(step 1)で入力。 ・E列をキーとしてB~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,B:D,3,FALSE)』 (2)【G・H列】 ・G列にE列/100をキーとして計算。 ・G列をキーとしてA~D列のVLOOKUP関数としています。   『=VLOOKUP(G3,A:D,4,FALSE)』 (3)【I列】 ・E列をキーとしてC~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,C:D,2,FALSE)』 シートを複製し、キーの入力範囲を0.001~0.025(E列は1~25)にした場合はエラーがでませんでした。 その他の確認としてはTEXT、JIS、ASCなどを組み合わせて文字列としたキー同士のVLOOKUPではエラーにならず値を参照できています。

  • VLookUp関数の使い方

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

  • vLOOKUP関数の仕様

    VLOOKUP関数で検索値が検索対象に複数あるときに検索の型をfalseにすると 例えば E列に検索値のリストがありA列が検索対象になりC列が返す数値があるとすると =VLOOKUP(E1,$A$1:$C$1000,3,FALSE) という風にすると返す数値が A列で一番上にある一致行のC列を返す。 A列で検索値が一致する中でC列の値が最も少ない数値を返す。 のいずれかに見えるのですがこれは仕様として正しいのでしょうか?それとも、私の勘違いでしょうか? ちなみに、上記二つの仕様のうちどちらでも影響が無いんです。C列の数値が連番(時々欠番がありますが)ですので。

  • VLOOKUP関数についてどなたか教示願います

    下記の表 価格の列(黄色の部分)でVLOOKUP関数が機能しない部分がでてきました。 データを反映させたいのですが、考えられる原因と解決策を教えてください。 E2はVLOOKUP(A2,H2:I6,2,FALSE)と関数を使用しています F2はIF(D2=E2,"正","違")と関数を使用しています 入力した数値が、文字列などで抽出できないのでしょうか?

  • vlookup関数の挙動について

    エクセルシートzzzに以下のデータがあります。 全部で140行あります。 A列  B列 ・ ・ ・ 5/31 1000 5/31 1000 5/31 1000 収入 10000 支出 2000 あるシートで =VLOOKUP("収入",'zzz'!A1:H300,1)とすれば 当然、「収入」という文字列が戻ってきます。 また、 =VLOOKUP("5/31",'zzz'!A1:H300,1)とすれば 当然、「5/31」という文字列が戻ってきます。 ところが、 =VLOOKUP("支出",'zzz'!A1:H300,1)とすると なぜか、「支出」ではなく、「5/31」が戻ってきます。 しかし、H300をH500にすると、つまり =VLOOKUP("支出",'zzz'!A1:H500,1)とすると データは140行しかないにかかわらず なぜかきちんと「支出」が戻ってきます。 ちなみにA列の書式はすべて文字列です。 何か考えられる原因がありましたら 教えていただけないでしょうか。 zzzシートで直接、=VLOOKUP("支出",A1:H300,1)としても 同様に5/31という値が返ってきます。 A1:H300とA1:H500の差の200行には何もデータは入っておりません。 動作環境はXP SP2 Excel2000です。

  • VLOOKUP関数の使い

    お世話になります。 VLOOKUP関数を使ってデータを抽出したいですが、検索範囲には文字しか入っていないのに対して検索値には文字や数字が含まれています。 この場合でもVLOOKUP関数をうまく使う方法はないでしょうか。 具体的にいうと:VLOOKUP(検索値、範囲、列番号、検索の型)の 検索値はABC123-45、範囲にABCしかないため検索データが一致していないので抽出できないです。 よろしくお願いします。

  • VLOOKUP関数で

    A1からB10の検索した値と A11からB20までの検索した値を合計したいのですが =IF(A1="","",VLOOKUP(A1,'金額'!A1:B10)+(A1,'金額'!A1:B10),2,FALSE)) =IF(A1="","",VLOOKUP(A1,'金額'!A1:B10)+VLOOKUP(A1,'金額'!A1:B10),2,FALSE)) =IF(A1="","",VLOOKUP(A1,'金額'!A1:B10)+=IF(A1="","",VLOOKUP(A1,'金額'!A1:B10),2,FALSE)) など色々やってみましたが、出来ません。 どなたかよろしくお願いします。

  • VLOOKUP関数の範囲の値が増えない方法

    VLOOKUP関数の範囲の指定で、 G2のセルの内容 =VLOOKUP(F2,TBL01!A2:C701,2,FALSE) と入っているセルを下方向にコピーすると G3 =VLOOKUP(F3,TBL01!A3:C702,2,FALSE) G4 =VLOOKUP(F4,TBL01!A4:C703,2,FALSE) といったようになります。ここで、 G3 =VLOOKUP(F3,TBL01!A2:C701,2,FALSE) G4 =VLOOKUP(F4,TBL01!A2:C701,2,FALSE) といった様に下方向にコピーしたいのです。 比較される値のF?は増えていく必要があります。 なにか良い方法はないでしょうか?

  • Excel2007 VLOOKUP関数の相談

    もし検索不足で重複した質問でしたら申し訳ありません。 VLOOKUP関数について、シート「A」に文字列を入力したら シート「リスト」シート上に同じ文字列があれば その文字列関係の情報を持ってくるというVLOOKUP関数を使用していました。 <使っていた関数> =IF(ISERROR(VLOOKUP(H306,リスト!A:B,2,0)),"",VLOOKUP(H306,リスト!A:B,2,0)) この入力する文字列が数字(別データからコピーして貼り付ける)に変わっただけなのですが、 何故か対象情報の抽出をしてくれません。 <使おうとしている関数> =IF(ISERROR(VLOOKUP(I2,データ0501!A2:F695,3,0)),"",VLOOKUP(I2,データ0501!A2:F695,3,0)) ネットで検索したのですが、関数情報が不足しているのか、 コピーした数字列の貼り付け方が間違っているのかわからない状況です。 恐れ入りますが解決策があればお教えいただければと思います。 どうぞ宜しくお願い申し上げます。

  • Excelの関数「VLOOKUP」について質問です

    以下のような表で 1 2 3 51 2 4 1 19 3 8 5 21 4 6 1 24 5 2 7 31 6 4 5 35 7 8 7 60 8 2 3 17 9 4 1 30 A11=空欄 A12=VLOOKUP($A11,$A$1:$D$9,2,FALSE) A13=VLOOKUP($A11,$A$1:$D$9,3,FALSE) とするとき、 A11に「5」と入力すると A12は「2」 A13は「7」になりますよね。 このときに新たにA14に、4列目の値を返すVLOOKUP A14=VLOOKUP($A15,$A$1:$D$9,4,FALSE) A15=任意の数を入れる を作りたいのですが、そのときに検索範囲を、A12,A13に求めた1列目の範囲 つまり2行目から7行目(A2からD7)に、自動的になるようにしたいのですが 検索範囲をどのように設定すればいいでしょうか。 お願いします

専門家に質問してみよう