• ベストアンサー

VLOOK関数で#N/Aエラーの回避法

お伺いします。 sheet1のA列に商品コード、B列に前月実績があるとします。 sheet2に10月実績表があるとします。 sheet1のB1セルに =VLOOKUP(A1,sheet2!$A$3:$H$1200,5,0) が入力されています。 10月に実績がゼロの時はsheet2の表にはその商品コードの行がない。 これを前提にするとsheet1のB1セルには#N/Aが表示されてしまいます。 すると合計ができません。#N/A を空白または実績なしと表示したいのです。 また、合計値を正確に出したいのです。 どうか、お知恵をお貸しください。

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

  • ベストアンサー
  • Paul_xxx
  • ベストアンサー率56% (27/48)
回答No.1

ifとiserror関数との組み合わせで実現できます。 質問の式と組み合わせると =if(iserror(VLOOKUP(A1,sheet2!$A$3:$H$1200,5,0) ),"",VLOOKUP(A1,sheet2!$A$3:$H$1200,5,0)) でエラーの時は空白が表示されます。 空白にしない場合は、"" を "実績なし" 等にします。 分かりやすく書くと =if(iserror(評価する式), 評価する式がエラーの場合, 評価する式) といった感じです。 詳細はヘルプを参照してください

shonenA
質問者

お礼

早速のご回答感謝いたします。 無事に解決できました。ありがとうございました。

その他の回答 (1)

回答No.2

こんにちは。 A1に何もないときにエラーとなるので、 B1の計算式は、 =If(A1="","",VLOOKUP(A1,sheet2!$A$3:$H$1200,5,0)) でいいのでは? ご参考になれば幸いです。m(__)m

shonenA
質問者

お礼

ご回答感謝いたします。 質問の主旨が違う感じがします。#1のかたの回答で解決できました。 ありがとうございました。

関連するQ&A

  • vlookup関数で#N/Aエラーが出ます

    エクセル2000を使用しています。 "Sheet5"のM列にある「商品コード」を元に別シート"商品金額マスタ"から 商品金額を"Sheet5"のO列に表示させたいのですが、#N/Aエラーが出てしまいます。 O列には以下の数式を入れています。 =IF($M2="","",VLOOKUP($M2,商品金額マスタ!$A$2:$C$5,3,FALSE)) M列の各セルをクリックするとなぜか数式が反映され、O列に正しい値(商品金額)が表示されるのですが、 これはどういったことなのでしょうか? "Sheet5"のM列は元々"Sheet5"のA列にある商品コードの左6文字をLEFT関数で選んでいます。 この6文字は頭にゼロがつく商品コード1桁から4桁のものです。 #N/Aエラーが出るのは、このゼロが原因だったりしますでしょうか? どうぞよろしくお願いします。 "商品金額マスタ"     A列     B列      C列 1  商品コード  商品名    商品金額(税抜) 2  000001    Tシャツ     2,660 3  000002    パンツ      3,000 4  000003    タンクトップ   3,000 5  000004    長袖Tシャツ    3,000

  • エクセル関数で困っています。VLOOK??・・

    恐れ入りますが、下記のような場合での関数は何を使えばよろしいでしょうか? シート1に A列     B列 郵便番号  地区分コード(17分類) 000-0001  1 000-0002  2 000-0003  3 という一覧表があります。 シート2には A列     B列 郵便番号  事業所の一覧(3000社) 000-0001  トウキョウショウジ 000-0003  カナガワショウシャ 000-0002  サイタマコウギョウ という具合です。 シート1の郵便番号とシート2の郵便番号が一致した場合に シート1のB列にある地区分類コードをシート2のC列に入れたいのです。 シートがわかれている必要はありません。 VlookUPらしいということまで分かりましたが、何度やってもN/Aが出てきます。 どなたかお教え下さいませ m(_ _)m

  • VLOOKUP関数 #N/A

    エクセルのVLOOKUP関数で 「10月シート」の「A会社」の一つ右の列の値を取得したいのですが 10月シートにA会社が存在しない場合は#N/Aが返ります。 数式は、=VLOOKUP(“A会社”, 10月シート!$a$1:$b$2,1,0) としています。 #N/Aにならないようにする方法を教えてください。

  • #N/Aの表示、非表示について

    excel2010 あるwebサイトにvlookup関数の高速化という内容が掲示されていたので、 それを使用してみました。 そこで、ちょっとおかしな状況になっているので、 それに関する質問です。 構成 SHEET5に下記の様なデータがあります。 A列にALLコード、B列にデータです ALLコード          データ 0109S10100100B60   722 0110H10100110B32   18 0110S10100020B62   0 0110S10100040B62   77 0110S10100050B62   19 0110S10100070B62   35 0110S10100090B62   16 0110S10100100B60   200 0111H10100110B32   41 0111S10100030B62   68 0111S10100040B62   70 0111S10100050B62   32 0111S10100070B62   60 0111S10100080B62   17 0111S10100090B62   25 0111S10100100B60   100 0112H10100110B32   14 0112H20100020B41   11 0112H20100030B42   89 0112H20100040B43   23 0112H20100050B42   27 0112H20100070B44   5 0112H20100080B40   17 0112S10100010B62   11 0112S10100020B62   12 0112S10100030B62   69 上記ALLコードの先頭4桁はシリアル番号になっており、 実際のコードは、それ以降の12桁なので、異なるシートにVLOOKUP関数で下記の様に マトリクス表にしました。 A列:コード B列:0109 C列:0110 D列:0111 でB2セルに =IF(INDEX(Sheet5!$A$2:$A$1000004,MATCH(CONCATENATE(B$1,$A2),Sheet5!$A$2:$A$1000004,1),1)=CONCATENATE(B$1,$A2),VLOOKUP(CONCATENATE(B$1,$A2),Sheet5!$A$2:$B$1000004,2,TRUE),NA()) という式を入れて、対象範囲B2:D15までコピーしています。 コード          0109   0110   0111 S10100081B62   #N/A   #N/A   #N/A S10100091B62   #N/A   #N/A   #N/A S10100110B69   #N/A   #N/A   #N/A S10100100B60   722   200    100 S10100120B60   #N/A   #N/A   #N/A S10100010B62   #N/A   #N/A   #N/A S10100020B62   #N/A   0     #N/A S10100030B62   #N/A   #N/A    68 S10100040B62   #N/A   77     70 S10100050B62   #N/A   19     32 S10100060B62   #N/A   #N/A   #N/A S10100070B62   #N/A   35     60 S10100080B62   #N/A   #N/A    17 S10100090B62   #N/A   16     25 N/Aがあると見づらいので、 式のNA()を削除し、 B2セル =IF(INDEX(Sheet5!$A$2:$A$1000004,MATCH(CONCATENATE(B$1,$A2),Sheet5!$A$2:$A$1000004,1),1)=CONCATENATE(B$1,$A2),VLOOKUP(CONCATENATE(B$1,$A2),Sheet5!$A$2:$B$1000004,2,TRUE),) で対象範囲コピーしたところ、下記の様な結果になりました。 コード          0109   0110   0111 S10100081B62   #N/A     0      0 S10100091B62   #N/A     0      0 S10100110B69   0       0      0 S10100100B60   722     200     100 S10100120B60   0       0       0 S10100010B62   #N/A     0      0 S10100020B62   #N/A     0      0 S10100030B62   #N/A     0      68 S10100040B62   #N/A     77      70 S10100050B62   #N/A     19      32 S10100060B62   #N/A     0       0 S10100070B62   #N/A     35      60 S10100080B62   #N/A     0       17 S10100090B62   #N/A     16      25 0110と0111は正しく表示しているのですが、0109列は#N/Aが残っています。 コピーペーストを間違ったわけではありませんが、 何故0109だけ#N/A表示が残っているのか、想定される原因を教えていただきたく。 ちなみにALLコード先頭に 0108S10100100B60 888 を追加して1列増やすと、 コード       0108   0109   0110   0111 S10100081B62   #N/A   0     0     0 S10100091B62   #N/A   0     0     0 S10100110B69   0     0     0      0 S10100100B60   888    722    200   100 S10100120B60   0     0     0      0 S10100010B62   #N/A   0     0     0 S10100020B62   #N/A   0     0     0 S10100030B62   #N/A   0     0     68 S10100040B62   #N/A   0     77     70 S10100050B62   #N/A   0     19     32 S10100060B62   #N/A   0     0      0 S10100070B62   #N/A   0     35     60 S10100080B62   #N/A   0     0     17 S10100090B62   #N/A   0     16     25 の様になり、0109の#N/A表示は解消されました。 EXCELの仕様なのでしょうか? とりあえず、ダミー列のデータ挿入で非表示にすれば、 見た目上は、すっきりですが、何か異なる方法があれば教えていただきたく。 ※実際は、もっと行・列共に数が多いのですが、抜粋で例をあげています。

  • エクセル2003 #N/A含む複数シート数値合計

    複数のワークシートの数値の合計がうまく出ません。 A,B,C,Dという名前のシートのセルA2の数値の合計を 「集計」というシートのセルA3に出したいのですが (ちなみにA,B,C,DシートのセルA2にはvlookup関数がはいってます) 例えばシートBのセルA2の表示が#N/Aだと sum、sumif関数で合計を出そうとしても 「集計」シートのセルA3には#valueと出てしまいます。 うまく#N/Aをのぞいて数値の合計値を出す方法はありますか?

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

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

  • VLOOKUP関数 #N/Aになってしまう 

    エクセル2007です。 ------------------------------ 分類 料理名 中華 エビチリ 和食 お味噌汁 洋食 たらこパスタ ------------------------------ と言う表を作り、 D2に「エビチリ」 D3に「=VLOOKUP(D2,A:B,-1,0)」 としました。 しかし、「=VLOOKUP(D2,A:B,-1,0)」が「#N/A」になってしまいます。 「エビチリ」を「A:B」列の中から探して、一個前の列から値を引っ張って、「中華」を表示させたいのですが、何がいけないのでしょうか? ご回答よろしくお願いします。

  • エクセルのVLOOKUP関数で#N/A エラーが出ます

    同じように60行ほど、コピーしたのですが、k列の2行目とl列の3行目だけが#N/Aになります。試しに、検索の型のところを1にしてみたら、他の語になります。 ちなみに、k列の2行目とl列の3行目は対応する語なのです。 いろいろと調べているのですが原因がわかりません。 これを元に多数のデータを処理したいと思っているので困っています。 1部だけを見て判断できにくいと思いますが、アップしにくいのでどうしたらよいかわかりません。 何か手がかりでも教えていただけたらと思います。よろしくお願いします。     k列                  l列 =VLOOKUP(B16,$A$16:$F$20,5,0)    =VLOOKUP(C16,$A$16:$F$20,6,0) =VLOOKUP(B17,$A$16:$F$20,5,0) #N/A =VLOOKUP(C17,$A$16:$F$20,6,0)  =VLOOKUP(B18,$A$16:$F$20,5,0)    =VLOOKUP(C18,$A$16:$F$20,6,0)  #N/A  =VLOOKUP(B19,$A$16:$F$20,5,0)    =VLOOKUP(C19,$A$16:$F$20,6,0) =VLOOKUP(B20,$A$16:$F$20,5,0)    =VLOOKUP(C20,$A$16:$F$20,6,0)

  • エクセルでVLOOKUP関数でエラーが出ました教えてください

    ある表を作り、違うシートに工種コードの表を作り 下記の関数を作ってみました =VLOOKUP(B5,工種コード!$C$2:$D$129,2,FALSE) すると #N/A このエラーが出ます ちゃんと表示されるところもあるのですが どうすれば良いか分かりません 教えてください

  • 《エクセル》「エラー値“#N/A”の場合は何も表示しない」としたいのです

    エクセル2000で作業をしています。 VLOOKUPを使って、別ワークシートにあるデータを拾っているのですが、データが存在しないものは“#N/A”と表示されますよね? これがたくさんあると見た目にあまりよろしくないので、「そのセルがエラー値“#N/A”の場合は何も表示しない」としたいのですが、式の設定がよくわかりません。 ためしにVLOOKUPの外側をIFで囲んでみたのですが、 =IF(A1=#N/A,"",VLOOKUP(A1,参照するワークシート名!B1:F100,1,FALSE)) ↑これではエラーが出てしまいました。 よろしくお願いします。

専門家に質問してみよう