• 締切済み

VLOOKUPで#N/Aになってしまいます

VLOOKUP関数を使って 商品名をA1に入力すると、コードを検索するようにしています。 VLOOKUP(A1,'商品1'!$A$2:$C$60000,2,0) と入力しているのですが、 商品名によっては、ヒットしたり#N/Aとなったりします。 商品名を間違えて入力していることはないです。 なにか式に足りないものがあるのでしょうか? それともデータが多すぎなのでしょうか? それとも商品名が複雑すぎるのでしょうか? '商品1'のA列に入力されている商品名は ローマ字と数字とハイフンが混ざった商品名です。 並び替えで昇降順にしています。 '商品1'には60000行ほどのデータがあります

みんなの回答

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.7

同じことを言うようですが If関数を使ってNAになっている個所のキーと検索する表上のキーを比較する ことで間違いをチェックすることからはじめましょう。 いくつか見てるとそのうちパターンがわかってくるからそれから置換するなり手で修正するなりしていきましょう。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.6

NO5です。すみません2ケ所訂正です。 >ハイフンとマイナスは半角の場合表示ではほとんど区別が >片手落ちな回答にてすみませんが、ハイフンとマイナスの置換で ”ハイフンとマイナス”を”ハイフンとカナ長音記号” と読み替えて下さい。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.5

一番怪しいのはハイフンかと思います。 ハイフンとマイナスは半角の場合表示ではほとんど区別が つきませんが内部のコードは別です。 対策としては、列を選択して置換(2007:ホームタブ、2003:編集)を 行ってどちらかに統一することです。 数字のゼロとローマ字大文字のオーも同様に紛らわしいのですが こちらはひとつづつ調べるより手がありません。 片手落ちな回答にてすみませんが、ハイフンとマイナスの置換で うまくいくことをお祈りします。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

>商品名によっては、ヒットしたり#N/Aとなったりします。 ⇒入力コードと商品コード表コードのコード体系が微妙(半角と全角やスペースが挿入)に相違していると思われますのでコードを確認して下さい。 >なにか式に足りないものがあるのでしょうか? ⇒特にありません。 >それともデータが多すぎなのでしょうか? ⇒関係なし  但し、並び替え(ソート)しているでしたら、検索の型をTRUE型にすれば、検索時間が短くなる(二分検索)と思います。 >それとも商品名が複雑すぎるのでしょうか? ⇒1対1で商品コードと商品名が対応しているのですから仕方がないと思えます。  入力コードは、半角と思われるので、入力セルを半角に入力規制で設定しては如何でしょうか。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

検索の文字列が商品1シートのA列にない場合にそのような表示になりますね。例えば次のような式にすれば該当する商品名が無い場合にも表示されますのでその原因がわかりますね。 =IF(COUNTIF('商品1'!$A$2:$C$60000,A1)=0,"該当の商品がありません",VLOOKUP(A1,'商品1'!$A$2:$C$60000,2,0)) おそらくは文字列の前後などに空白が存在するケースでしょう。あるいはローマ字と数字とハイフンが混ざったケースですと半角での入力か全角の入力でも違ってきますね。 商品1のA列の後に新たにB列を挿入してB1セルに次の式を入力して下方にオートフィルドラッグし、入力の文字列を整理した後でB列を最初の列としてVLOOKUP関数を使ってはどうでしょう。 =TRIM(ASC(A1))

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.2

式は間違ってないようですね。 商品名でコードを検索といういささか特異な例です。 こういう場合のチェック(デバグ)としてまず ヒットしない表上の商品名と入力した商品名をIF関数で比較してみたらどうでしょう 後ろに余計な空白がついていたりとかハイフンとカナ長音記号が混在してたりとか ないかチェックしてみましょう。

回答No.1

実際にエラーになる、最小のサンプルを示してください。

関連するQ&A

  • VLOOKUP関数で#N/Aの扱い方を教えて

    VLOOKUP関数でデータが一致した所にはデータが入りますが無い場合#N/Aとエラー表示になります。 データが無い場合はブランクもしくは、"0"にしたいのですが、方法を教えて下さい。

  • VLOOKUPでセルに#N/Aが出るのを防ぐには?

    最初のセルにVLOOKUP関数を入れて、必要数のセル分だけ下にオートフィルで引張っています。 すると検索値がまだ未入力のセルにずらっと#N/Aが並んでしまいます。 見ずらいので、このエラー値が出ないようにするにはどうすれば良いでしょうか?

  • VLOOKUP関数使用した所、#N/Aエラーとデータのバグに悩んでいます。

    マクロを使用しているExcelファイルに、商品名・通番を別のファイルから参照し表示させようと、VLOOKUP関数を使ってみました。 キーとなるストック番号を入力しないと、#N/Aエラーが出るのは理解していますが、ストック番号を入力してもそのエラーが消えません。 FALSEからTRUEへ変更した所、エラーは消え、なんらかのデータは表示されるようになりました。 マクロを使用したファイル(在庫管理表)には、既にデータが100個入っており、テストの為に101行目に関数を使用しました。 【在庫管理表】    ストック番号   通番     商品名 A 99  111       0099     えんぴつ A100 222       0100 消しゴム A101  333       0102     消しゴム A102  444       0102     消しゴム A103  555       0102     消しゴム というように、333と入力すると、0102という通番は表示されますが、商品名はA100と同じ内容が表示してしまいます。 A102に444と入力したところ、A101の通番・商品名が表示されてしまいます。A103以降同様です。 キーとなるストック番号のセル番号は正しく入力されています。 Excelはほとんど初心者ですので、マクロを組んだExcelファイルにはVLOOKUP関数は使用できないのかも・・・?とも思い、煮詰まってしまいました。 解りずらい説明となりましたが、どうぞ宜しくお願い致します。

  • 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」が出てしまう。

    Aのファイルの中にあるコード(英数字8ケタ)の中から、Bのファイルにあるコードに一致しているものをVLOOKUP関数で探し当てようとしています。 Bのファイルに数式を入力しましたが、すべて「#N/A」が出てしまいます。 数式は間違っていません。 念のため、CとDという別なサンプルを作り同じ数式を入力してみたら、それはきちんとできました。 なぜ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関数の#N/A表示を空欄にしたい

    VLOOKUPで2つの表から検索し反映させていますが表に無かった場合に#N/A表示になるので これを空欄にしたいです。教えて下さい。 たとえばC1のセルに田中と入力すると自動的に太郎と表示され井上と入力すれば一郎と出ますが 斉藤と入力した場合に#N/Aと表示されるので空欄にしたいです。ちなみにC1に何も入力されていない場合は空欄がいいです。   O3:田中 P3:太郎   S3:井上 T3:一郎 =IF(ISNA(VLOOKUP(C1,$O$3:$P$10,2,FALSE)),VLOOKUP(C1,$S$3:$T$10,2,FALSE),VLOOKUP(C1,$O$3:$P$10,2,FALSE)) と現在関数を入れています。 色々試しましたがわからないので教えてほしいです。

  • 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

  • VLOOKUP関数について

    VLOOKUP関数について質問をしたいので宜しくお願いします。 VLOOKUP関数を使って、商品一覧を作成しています。その中で縦のセルのD列に商品の番号を入力すると、隣のE列に商品名、F列に商品価格と自動的に入力されていきます。 その際読み込むデータに追加をしたところ、商品の番号を入力しても、その隣に商品名や、商品価格が入力されなくなってしまいました。 セルの式には以下のように入力されています。 =VLOOKUP(D2,商品一覧!$A$3:$F$141,2,FALSE) 上記の関数は、商品一覧と名前を付けたデータのA3からF141までの部分を読み込むという意味ではないのでしょうか? しかし、読み込むデータには現在F79まで入力されていますが、読み込むのはF76までの部分しか読み込んでくれません。 当時よく理解できずに色々と操作をしてしまったのかも知れないのですが、ツールバーから何らかの操作をして読み込む範囲を変えたような記憶があるのですが、全くそのときの操作方法を覚えておりません。 初心者のためか、うまく説明も出来ませんがどなた様かご教示の程宜しくお願い致します。

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

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

専門家に質問してみよう