• ベストアンサー

エクセルVLOOKUPについて質問です

同じブック内で業者一覧のシートにA列業者コードB列業者名が入っています。 別のシートでE列に業者名を入れるとD列にコードが入る様に =VLOOKUP(E6,業者一覧!$A$2:$B$480,1,FALSE) と入れました。#N/Aのエラーが出てしまいます。 この関数の使い方は間違っているのでしょうか? 以前似たような物を作った時は、VLOOKUPを使って簡単に検索できたのに、 今回は色々参考にしてみましたが、私が理解しきれていないのか、 エラーが出る要素が他にあるのか分からず質問します。 よろしくお願いします。

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

  • ベストアンサー
  • OKERAUMI
  • ベストアンサー率42% (6/14)
回答No.3

こんばんは。 VLOOKUP関数は、選択範囲の左端の列の値を参照する関数です。 シート「業者一覧」のA列(左端)は業者コードとの事なので、質問者様の数式では「E6に入力した業者名と同じ物をA列(業者コード)の中から探し出て、対応する業者コードを抽出する」の意味になります。 A列とB列を入れ替えて「~,1,FALSE」の部分を「~,2,FALSE」に書き直すと検出できると思います。 A列とB列を入れ替えたくない場合は、  =INDEX($A$2:$A$480,MATCH(E6,$B$2:$B$480,0)) とするか、  =OFFSET($A$2,MATCH(E6,$B$2:$B$480,0)-1,0) にするかすれば良いと思います。

renkaimama
質問者

お礼

=INDEX(業者一覧!$A$2:$A$480,MATCH(E6,業者一覧!$B$2:$B$480,0)) で配列を変えないで出来ました。 今回はこの関数を使おうと思います。 ありがとうございました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! No.1さんの回答どおりです! VLOOKUP関数は範囲指定した一番左端の列を検索し、 検索した同じ行にある値を返します。 (列は複数でも構いません) だから、検索列より左側を返すことは出来ないはずです。 以上、余計なお世話かもしれませんが・・・ お邪魔いたしました。m(__)m

renkaimama
質問者

お礼

そいうことだったんですね。 VLOOKUPを理解していなかったようです。 単純に指定した中に同じセルがあったらその行の 何列目を返すという事だと理解していました。 解り易い回答ありがとうございました。

回答No.1

素人考えのお答えで申しわけないですが、業者名を入力して、 業者コードを表示させるには、 A列と、B列を入れ替えて、 =VLOOKUP(E6,業者一覧!$A$2:$B$480,2,FALSE) (1 → 2)にしなければならないのではないでしょうか?

renkaimama
質問者

お礼

お答ありがとうございます。 列を入れ替えたら出来ました。 出来れば配列は変えたくなかったのですが VLOOKUPは検索元のシートの配列が関係あるのでしょうか?

関連する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関数がうまくいかないので教えてください。 下のような表になっています。    A     B    C    D    E    F 1  番号  名前               コード 2 11-2345  ABC  11  #N/A  11  あああ 3 22-3456  DEF  22  #N/A  22  いいい  4 33-4567  GHI  33   #N/A  33  ううう 5 44-5678  JKL  44        44  えええ 6 ・・・・ ・・・               55  おおお 7 ・・・・ ・・・               66  かかか A、B列はがもとから打ち込んであるデータです セルC2は =LEFT(A2,2) でA列のハイフンの前を表示しています。 セルD2に =VLOOKUP(C2,$E$2:$F$7,2,FALSE) を入れると#N/Aが表示 されます。ちなみに、セルC2にLEFT関数ではなくて、数字をそのまま、 11と入力すると、セルD2に「あああ」と表示されます。どこがいけない のでしょうか? $E$2:$F$7はC列の二桁の数字に対応するコードの表になっています。 エクセル2003を使っています。

  • vlookupに、Indirect と Match 関数を組み合わせる

    vlookup関数で、検索値にSheet1(Book1)から、範囲は、Sheet2(Book1)のセルにある名前のついているSheet1(Book2), そして、列番号は、指定した名前とマッチするSheet1(Book2)の列番号から、導き出そうとしています。 ところが、Matchで指定した範囲は、Indirect内の関数として認識されないようで、結果が得られません。 たとえば、 Book1のA1~E1にタイトルが入っています。(Index, Title, Book, Author, Frequency) Book2には、 シート1: InputName シート2: Output シート2に以下の関数を入れてみましたが、うまくいきません。 ちなみに、VLOOKUPの列番号を Match関数の代わりに、5 とすると、結果オーライですが、Book1 の列順が変わっていることがあるので、Matchを使ってエラーを避けたいのですが、以下の関数のどこを直すべきでしょうか? =IF(ISNA(VLOOKUP(C2,INDIRECT("'["&InputName!$A$2&"]"& InputName!$B$2&"'!"&"$A$2:$E$1400"),MATCH("Frequency",$A$2:$E$2,0),FALSE)),0,VLOOKUP(C2,INDIRECT("'["&InputName!$A$2&"]"& InputName!$B$2&"'!"&"$A$2:$E$1400"),MATCH("Frequency",$A$2:$E$2,0),FALSE)) よろしくお願いします。

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

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

  • エクセルのVLOOKUPの簡単な質問

    エクセルで簡単な郵便簿を作りたいのですが、    A   B      C       D       E               日付    部署コード  部署     1  001  経理部    9/1     001    経理部 2  002  企画部    9/2     008    総務部 こんな表で、A列、B列には最初から決まっている部署コードと 部署名が入っていて、D列にコードを入れると、A列から引っ張って きて、E列に自動的に部署名が表示されるようにしたいのですが VLOOKUPでどんなふうにすればいいでしょうか?

  • エクセルのVLOOKUP関数についての質問です。

    エクセルのVLOOKUP関数についての質問です。 Sheet1、Sheet2、Sheet3が3種類あります。 例えば、Sheet3は$B$5:$E$54まで下記のようなデータが入っています。 B       C     D      E 東京ホテル  品川   03-111222  03-111333 大阪ホテル  梅田   06-555666  06-555777  ~ Sheet1のB1にドロップダウンを作り、Sheet3のB列にあるホテル名を選べるようにする。(ここまではできています。) ドロップダウンで「東京ホテル」と選ぶと、Sheet3のD1の情報(03-111222)をSheet2のH1のところに自動表示したい。 追伸 Sheet2のH1に記載すべきVLOOKUPプログラムが誤っているため、 Sheet2のH1には#N/AというエラーMSGが出ます。 今日丸1日色々と試したのですが、実現できませんので、 何卒お力をお貸しください。

  • エクセルのVLOOKUPの複数参照について

    エクセルのVLOOKUPの複数参照について シート2(kokunai)に A列 B列 1000 シャープ 1010 ソニー 3050 パナソニック とあります。 シート3(yunyuu)に A列 B列 2000 IBM 2001 HP とあります。 シート1のC列に打ち込んだ数字を元にD列にメーカー名を表示したいのです。 D列に IF(C1="","",IF(ISERROR(VLOOKUP(C1,kokunai,1,0))="FALSE",VLOOKUP(C1,kokunai,2,0),VLOOKUP(C1,yunyuu,2,0))) と数式を打ちましたが、エラーが帰って来ます。 どうすれば良いでしょうか?

  • VLOOKUP関数について、文字列と数値の問題

    お世話になります。現在、商品リストを作っておりまして、VLOOKUP関数を使っているのですが、エラーになってしまいます。 =VLOOKUP(A1,Sheet2!$A$2:$B$6,2,FALSE) という関数を使っているのですが、 A1に3桁のコードを入れるとSheet2のA2:B6から値を返すようになるのですが 「110」というコードを入力すると「白」と出てくるのですが、「010」というように0から始まるコードだと エラー#N/Aになってしまいます。セルによっては逆の現象が起こったりします。 文字列を数値にしたり、その逆を試してみたり(A1もsheet2の参照データも調節しましたが)したのですがどうしてもうまくいきません。 何が原因なのかまったくわからないのですが、心当たりのある方教えていただけますでしょうか。 よろしくお願いいたします。

  • VLOOKUP式の範囲の部分に他のセルから入れ込みたい

    B列に=VLOOKUP($A1,'18-1'!$B$5:$N$80,4,FALSE)) という数式があってA列の値で18-1シートを検索してVLOOKUPすることになっています。 そして18-1の部分は18-2、18-3、18-4…と変わっていくんですがC列に範囲の'18-1'!$B$5:$N$80の部分を入力してB列の数式に入れ込むことは出来るでしょうか? =VLOOKUP($A1,?????????,4,FALSE)) このような感じで…

  • ExcelのVLOOKUP関数について教えて下さい

    AのシートにA列に番号、B列に会社名を入力、しB以降のシートは月毎別に作成し、番号を入力して会社名を引っ張ってくると言う形のVLOOLUP関数を作りました。 番号はバラバラに入力するので、1の後に50があったりその後に10があったりします。 今までそれで上手く会社名が引っ張ってこれたのですが、先日24行目に5という数字を入れたら、 「#N/A」のエラーが出ました。 エラー内容は「無効な値のエラー」と出ていますが、Aのシートには5のデータは入力されており、20以降の数字を入れると会社名が正しく表示されます。 関数が間違っているのかと思い、別シートと比べましたが同じでした。 ちなみに関数は次の通りです。Aのシートのデータは2行目から番号1→147行目に番号146のデータが入っています。 =IF(A24="","",VLOOKUP(A24,店名!B22:C167,2,FALSE)) 何がおかしいのか全く分からず、途方に暮れております。 アドバイスをお願いします。

専門家に質問してみよう