VLOOKUPの循環参照について

このQ&Aのポイント
  • エクセルでVLOOKUP関数を使用する際に循環参照になってしまい、結果が0と表示される問題が発生しています。質問者はなぜこの問題が発生したのか理解したいとしています。
  • 商品マスタの表の中から特定のセルの値を抽出するためにVLOOKUP関数を使用しています。しかし、セルの位置が正しく指定されていないため、循環参照が発生し、結果が0と表示されてしまう問題です。
  • 質問者がVLOOKUP関数を使用して商品名を取得しようとした際に、循環参照が発生したため、結果が0と表示されてしまいました。商品名のセルの位置を正しく指定することで解決することができます。
回答を見る
  • ベストアンサー

VLOOKUPの循環参照について

B3=VLOOKUP(B3,A9:C16,2,0)の数式を入れています。エクセル2007使用 エクセルで問題です。 図1の商品名の下はセルのB3の位置なんですが、VLOOKUPの関数を使用しても、循環参照のため0という表記にされてしまうのです。本来ならば、「美容液」と表記されるはずなんですが、一体なにがいけなかったんでしょうか?わかるかたがおられましたらできるだけわかりやすくよろしくお願いいたします。 図1 商品No 商品名 単価 数量 金額 BK003 0になる SP001 FS001 下の図2は商品Noの位置がセルのA9になりA列、商品名がB列、単価がC列、¥6800の位置がC16になります。かなり列がずれて表示されていますので注意してご確認お願いします。 図2 商品マスタ 商品No 商品名      単価 SP001 シートパック10枚入 \1,200 FS001 洗顔石鹸Mサイズ \1,500 SP002 シートパック20枚入 \2,000 BK001 化粧水 \2,650 FS002 洗顔石鹸Lサイズ \2,800 BK002 乳液 \3,100 BK003 美容液      \6,800

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

  • ベストアンサー
  • dogsiva
  • ベストアンサー率32% (92/279)
回答No.1

それぞれ、図1、図2というシートであったと仮定します。 B3に「=VLOOKUP(B3,A9:C16,2,0)」と入力した場合、その式を打ち込んだB3自体の有無を検索しようとしてしまうのと、検索対象がシート図1のA列からC列なので、2つの循環参照を起こしてしまっています。 このようにしてはいかがでしょうか B3=VLOOKUP(A3,図2!A9:C16,2,0)

関連するQ&A

  • VLOOKUP

    こんばんは、お世話になります。 早速ですが、 本来VLOOKUP関数を使う場合(第一引数、第二引数、第三引数)となっています、そこで何ですが A B C D E F G    1 ■入力表    2 商品No 商品名  単価  生産者 最低発注単位 納品予定 3 1 以下自粛その先にある物。 4 4 5 5 6 2 I J K L M N 1 ■マスタ 2商品No   商品名                  単価 3 1  以下自粛のそのさきにあるもの。       12000 4 2  1分で話せ。全裸で。 9800 5 3  いつか成功するから会費を払え。 淫らな心で。 15000 6 4  前向きな怠惰と前向きな惰性 18000 7 まぁこんな感じで表があるのですが。 そこで質問なんですが、この後 =VLOOKUP($B3, $I:$N, 2,0) これだと同じ値が入ってしまいますが(2列目までしか見てないから) =VLOOKUP($B3, $I:$N,6,0) こうすれば6列まで見ることが可能だけど、余談なんですが ビジネスの現場では、このようなVLOOKUP関数の入力と第三引数の修正が50列にわたるケースもあるそうです。 そこで第三引数にも参照を使うのですが長くなりましたがここで質問ですが、 A B C D E F G    1 ■入力表  2 3 4 5 6  2 商品No 商品名  単価  生産者 最低発注単位 納品予定 3 1 以下自粛その先にある物。 4 4 5 5 6 2 Cの1列目に数字を入れるのですが、 =VLOOKUP($B3,$I:$N,C$1.0)と関数を入力することによって Cの一列目を参照するとあるのですが、 Cの一列目には先ほど入れた数字しかないのにそこを参照して なぜ元々も情報を参照することができるのでしょうか? ご教示お願いします。

  • Vlookupの使い方

    下記のような写真の図でVlookupは使えるのでしょうか? たとえば 検索列が一番左になく、vlookupで文字が一致した場合、その列より左にある列の文字を返すというのは可能なのでしょうか? たとえば   A B     C D No 順位  名前  売上 1   4   佐藤  5 2   3   加藤   6 3   2   木村   7 4   1   小暮   8 名前でVlookupで一致した人の順位を表示する、などできるのでしょうか? 教えてください。 下記のエクセル図でどのようにすればいいでしょう? 施設名で検索し、一致した施設のNoや順位の列を表示することは可能でしょうか? Vlookupで無理な場合、何かやりかたがあるでしょうか? 教えてください

  • エクセルの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関数の使い方について

    以前コード番号を入力すると自動的に商品番号が出るようにしたいと質問させていただきました。 教えていただいた方法を使い おかげさまでコード番号を入力すると隣のセルに商品番号が出るようになりました。 ただ一緒に単価も入力させたいのですがそれができません。 入力本体は(シート名 「仕入れ表」) E列 コード番号 F列 商品名 G列 数量 H列 単価 I列 小計(G*H) という構成になっています。 (A~C列は他の項目が入っています) 参照するシート名「cade」 同じブック内にあります。 A列コード番号 B列商品名 C列単価 が入っておりA~C列までを名前の定義で 「cade表」としてあります。 「仕入れ表」のI列(小計) の二行目より =IF(E2<>"",G2*H2,"") の数式がコピーしてあります。 同じく 「仕入れ表」のF列には =IF(E2<>"",VLOOKUP(E2,cade表,2,FALSE),"") と数式を入れました。 結果コード番号を入力すると商品名は出ますが 単価は入力されません。 単価も同時に入力する為にはどのようにしたらよろしいでしょうか? どなかた教えていただけると助かります。 宜しくお願い致します。

  • 【エクセル】 VLOOKUPについて

    エクセル関数の VLOOKUPは範囲選択した表の左端の列しか検索対象に出来ないのでしょうか? 例えばSheet1に↓のような表があって     A      B     C     D     E 1 機種名   購入日   シリアルNo   メーカー名  ・・・・  2  X     07/01/01   123X         LLL 3  Y   07/02/03    456Y       MMM 4  Z   07/05/21    789Z        NNN 5  ・・・ 6  ・・・ Sheet2に↓のような表を作って、   A     B 1   シリアルNo   機種名 2   456 3   789  4   123 5    432 B列にVLOOKUPでsheet1の表から、シリアルNoに対応する機種名を表示 させることは出来ますか? 特にVLOOKUPにこだわってるわけではないので、他の方法でも出来る のであれば良い方法を教えてください。よろしくお願いします。

  • 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を使い、検索する場合は、 =VLOOKUP(検索値,範囲,列位置,検索の型)となると思います。 このうち、検索値と範囲(の左端)、列位置をどこかのセルから取得するにはどのようにすればよいでしょうか? たとえば、 A1セルには1と入力(A列を参照)、B1セルには2と入力(B列を参照)、C1セルには3と入力すると、 A3セル=VLOOKUP(A3,B:Z,3,false) となるようにしたいのですが、どのようにすればよいでしょうか。 お願いします。

  • vlookupにつきまして

    こんにちは、教えてください。 以下のような表をつくっています。     A     B      C      D       E 1 商品コード 商品名  100枚   1000枚 10000枚 2  1      赤      10       9       8 3  2      青      11       10        7 4  3      黄       12       11        6 赤という商品を100枚発注すると単価は10円ですが、1000枚発注すると9円になるという表です。 現状はvlookup関数を使用して「1」という商品コードを入力すると「赤」と表示 させ、その後に「1」と「1000枚」という情報を入力 すると 「9円」という単価まで自動表示させてしまう表を作成 したいと思っています。 もし縦横読む関数がありましたら教えてください。 =IF(A29="","",VLOOKUP(A29,sheet1!$D$5:$E$154,2,FALSE)) 現状はこの関数を使用しています。この関数だと単価は手入力と なってしまい作業効率が悪く、金額齟齬のおそれがありますので是非 宜しくお願いします。

  • エクセルの「IF+VLOOKUP」に関してのよくある問題で、意味のわからない相対参照があります

    「1.セル【C18】にセル【B18】の「商品コード」に対応する「商品名」を返す数式を入力して下さい。「商品一覧」の表を参照すること。 次に、「商品コード」が入力されていない場合は、「商品名」にエラーが表示されないように数式を修正して下さい。(シートに表があり、IF+VLOOKUPを使う問題です) 2.セル【C18】の数式をもとに請求書の表を完成させて下さい」(←「【C18】の下の行も同じように、商品コードから商品名を表示させれるように完成させなさい」っていう問題です) 上記のような問題があったのですが、 数式を入力して下にオートフィルして 完成させたのですが、【問題の解答】を見た限りでは 「セル【C18】を「=IF($B18="","",VLOOKUP($B18,$H$18:$J$29,2,FALSE))」と修正する」 と書いてありました。 ですが、数式の「$B18」の部分で「列を固定にする」 意味はあるのでしょうか? 「$」はなくてもちゃんと機能してますし、 表も完成してるように思うのですが・・・ あと、これは商品コードが空白の場合にはエラーが 出ないのでいいのですが、商品コードとは関係ない 文字列も入れた場合(間違った文字列を入れた場合)に エラーがでないようにする事もできますでしょうか?

  • VLOOKUPによる他シートの値参照

    初心者で以下の処理を行うコーディングの方法が分りません。 いろいろと他の質問、サイトを調べましたが、解決できませんでしたので、ご指導頂ければ有り難いです。 (1)"Sheet1"に下記例の通り、2列にデータが並んでいる。  左列には商品、右列にはその単価がセットされている。 (例) 商品1  \11 商品2  \22 商品3  \33 : (2)別シート"Sheet2"の左列には、商品が"sheet1"とは 異なる順序で並んでいる。また同一商品が複数存在することもある。 この商品の右列にそれぞれの単価をセットしたい。 商品3  (Sheet1を参照して値をセット) 商品7  (Sheet1を参照して値をセット) 商品1  (Sheet1を参照して値をセット) : 、って感じです。EXCEL関数の"VLOOKUP"を使おうと思っているのですが、どうも思った通りの結果がでません。 商品のデータ数は当然変動するのでVLOOKUPの参照セルに変数を使おうと思っているのですが、 その方法がまずいのでしょうか?