• ベストアンサー

Excel:VLOOKUP関数で検索値が見つからないとき、エラーが出ないようにしたい。

ただいまこういった数式を使っているんですが、 =IF($G$12<>"",$H$12-VLOOKUP($G$12,使用材料,2,0),) この数式の場合、範囲”使用材料”に、G12の値が見つからないと、エラーになってしまいます。 エラーが出ないようにするには、どういった数式にすればよろしいのでしょうか?

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

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.1

こんにちは。 下記のように、VLOOKUPがエラーかどうか判断すればOKです。 =IF( ISERROR(VLOOKUP($G$12,使用材料,2,0)) ,$H$12-VLOOKUP($G$12,使用材料,2,0),"") 以上です。

その他の回答 (4)

  • quit123
  • ベストアンサー率21% (4/19)
回答No.5

ISERROR関数とCOUNTIF関数が出てますがそれについてちょっと。 (COUNTIF関数) 式が短く出来るメリットがある反面、使える場合が限られる。 (ISERROR関数) VLOOKUP時のエラー(#N/A) に限らず、 その他のエラー(例えば、#VALUE, #DIV/0!, #NUMなど)にも対処できる。 その辺りを理解して使うといいと思います。

doracken
質問者

お礼

勉強になります。なるべく頭に入れるように努力します。

回答No.4

使用材料という範囲がA1から始まっているとします。 =IF(COUNTIF(A1:A10,G12),VLOOKUP(G12,使用材料,2,0),"") ※G12とH12を絶対参照にしておかなくてもいいような気がしますが。

回答No.3

私もエラーの回避にISNA関数を使っていましたし、これが正統派と思いますが、VLOOKUPの長い関数を2回も使うのは冗長的であると思います。 この場合、あえてISNAは使わず、COUNTIF関数で検索する値の件数が0かどうかを判断する方がスマートだと思います。 即ち、 =IF(COUNTIF($A$2:$A$100,A16)=0,"",VLOOKUP(C1,$A$2:$B$100,2,FALSE)) のような形になります。

  • taocat
  • ベストアンサー率61% (191/310)
回答No.2

NO.1です。 真偽の処理が反対でした。(^^;;; =IF( ISERROR(VLOOKUP($G$12,使用材料,2,0)) ,"" ,$H$12-VLOOKUP($G$12,使用材料,2,0)) 以上です。

関連するQ&A

  • エクセルの関数VLOOKUPについて教えて下さい。

    エクセルの関数VLOOKUPについて教えて下さい。 範囲にあたるデーター部分が3つのかたまりに分かれている時どのような数式で表すことができますか? 具体的には、HIJ KLM OPQの列位置にある3つの表の中から検索したいのです。 作った数式は1つの表から検索するもので =IF(C9="","",IF(ISNA(VLOOKUP(C9,材料一覧!$H$5:$J$54,2,FALSE)),"未登録",VLOOKUP(C9,材料一覧!$H$5:$J$54,2,FALSE))) です。(C9,材料一覧!$H$5:$J$54,2,FALSE)の後に&(同じ数式で列文字を入れ替えて)で繋げてみました。列範囲KLMの表は上手くいったのですが、3つ目のOPQの表は上手くいきませんでした。 原因と正しい数式を教えて下さい。 よろしくお願いいたします。

  • IF関数とVLOOKUP関数を使って以上以下を検索させるには?

    EXCEL2000使用しております。IF関数を使って数式を作っております。 値が10以上15以下なら特定のテーブルからVLOOKUPで数字を抽出、 そうでなければ別のセルを参照し計算する数式を作りたいのですが、 ifの後、○以上○以下を一度に表示するにはどうしたらよいかわかりません。 どうかよろしくお願いいたします。

  • [EXCEL]VLOOKUP関数がうまくいかないので助けてください

    あ.xls   B  C  1 10   2 12 3 15 い.xls   B  D 1 10 100 2 15 150 3 18 180 あ.xlsファイルのC列に、 あ.xlsファイルのB1セルと、い.xlsファイルのB1を見比べて同じ値なら、 い.xlsファイルのD1の値をあ.xlsファイルC1に値を表示する数式を 入力しようと思います。 「=VLOOKUP(B1,[い.xls]Sheet1!$1:$3,4,false)」と あ.xlsファイルのC1セルに数式を入力しましたが、すべてエラー(#N/A)で 返ってしまいます。 正常に機能するよう、数式を教えてください。

  • Excel2003でVLookupは使用できない?

    マクロなのですが、 Excel97で動作していたものをExcel2003で動かすとエラーが発生します。 エラー発生場所は、 KAZU = Application.VLookup("20061201", Range("範囲"), 2, True) で、Application.VLookup(20061201, Range("範囲"), 2, True)の値を調べたら エラー 2042が入っていました。 Excel2003ではVLookupが使用出来ないのでしょうか?

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

    関数に詳しくないので、教えてください。 質問(1) 列は、F×G+Hの合計です。 F  G  H  I 40  1  3  43 F列の数字が、11~100ののときのみ、G列に1を入力させ、I列に合計をだしたいのですが、 G列に、現在、 =IF(F6=””,””,VLOOKUP(F6,$L$4:$M$103,2,FALSE)) と数式が入っています。 ちなみに、L列の4~103には、11~100の数字が入っており、M列の4~103には、すべて1の数字が入ってます) が、数式をいれると、合計に、#VALUE!のエラーメッセージがでてしまします。 F列に文字を入力すると、正しく合計が出ますが、F列が、未入力だと、エラーメッセージが出ているので、未入力でも、エラーメッセージがでないいように、するには、どうしたらよいでしょうか? 質問(2) それと、この数式だと、H列だけに数字を入力するだけでは、合計がでなく、エラーメッセージのままです。 H列だけに入力しても、合計のでる数式も教えてほしいです。

  • 関数の値のVlookup

    下記のような表があり、"=VLOOKUP(H1,A1:B6,2,1)"のような結果を得たいと思っています ## H1セルには検索したい値を入れるようになっています。 しかしWeb上で調べたところ、VLOOKUP関数は値や文字列には使えるが数式には使えないようです。 そこで数式でもVLOOKUP関数と同じような結果を得られる方法がありましたら教えて頂けないでしょうか。 よろしくお願い致します。 | A | B | --------------------- 1|$E$3*H7*I7 | 1 | 2|$E$3*H7*I8 |0.9| 3|$E$3*H7*I9 |0.8| 4|$E$3*H7*I10|0.7| 5|$E$3*H7*I11|0.6| 6$E$3*H7*I120.5

  • VLOOKUP関数 正しい値が返されない

    sheet1にデータリストを入力、sheet2のA1にコード番号を入力し以下の表にSheet1の対象データを参照するというところ(VLOOKUP関数のみ)まではよかったのですが、元データに空欄の時は「データなし」と表示過去の質問を参照して下のような式に変更しました。 =IF(ISERROR(VLOOKUP($A$1,範囲,列番号,"")),”データなし”,(VLOOKUP($A$1,範囲,列番号,FALSE))) はじめは正しく表示はされたのですが、A1に違う値を入力し直しても値が変化しません。 エラー表示はでませんが、数式がどこか間違っているのでしょうか。 どなたかお知恵をお貸しください。

  • VLOOKUP関数の範囲をセルで指定したいと思っています。

    VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • VLOOKUPを使用したのですが、検索できず・・

    VLOOKUP関数を使用したのですが、 検索範囲のテーブルの一番下セルのみを引っ張ってきてしまいます。 テーブルは別シートに作成していて2列のみです。 (物の名前を入れると品番を検索するようにしたかったのですが・・) 数式は下記です。 =VLOOKUP(G6,Sheet1!B3:C2756,1,1) もし、数式が合っていれば、テーブルがおかしいのでしょうか? 基本的な質問で住みませんが、回答をいただければ幸いです。

  • EXCEL2022でVLOOKUP関数の「検索値」に><等の不等式を使って、「近似値」を使いたい!

     EXCEL2022でVLOOKUP関数の「検索値」に、ヘルプでは「近似値」が使えるとあるので、><等の不等式を使って、範囲指定を行い、複数の項目を抽出してきたい!  例として、 (1)2<「検索値」<30、程度で、60項目程を選び出したうえ、 (2)なおかつ、その60項目の中から、オートフィルタ機能を使用し   て、「トップテン」上位の10項目を表示させる方法  を模索中です。  ★実際に、このVLOOKUP関数を使用して、プログラムを作成されている方は、  「検索値」に『範囲指定を行い、複数の項目を抽出できない』ようだと、★たった一つのみの単独の値に対応する単一項目★しか抽出できない為、広範な使用に適さず、従って、たいへん使い勝手が悪い、使用用途の限定される、いわゆる”退屈な機能”とならないでしょうか?  ヘルプより、  VLOOKUP 関連項目 指定された範囲の左端の列で特定の値を検索し、範囲内の対応するセルの値を返します。  書式 VLOOKUP(検索値,範囲,列番号,検索の型) 検索値 範囲の左端の列で検索する値を指定します。検索値には、値、セル参照、または文字列を指定します。  横に”行”を検索して、一致する項目を表示させるものでは、HLOOKUP関数というものも在りますが、私の意図する”使用方法”を満足させる”関数”、343もあれば、一つ位はな~い"かんすぅ~"?(意図した訳ではないのに、やや、字面が、難しい言葉ばかりになってしまったので、"和み系の、普段は言わないジョーク"をネットなので、書き込んでしまいました。やや反省。)(^_^;)

専門家に質問してみよう