• ベストアンサー

エクセルで「入力規則」とVLOOKUPがうまくいかない

エクセルで困ったことがあります。 ぜひ教えていただけないでしょうか? 普通のワークシートで、 A6を「入力規則」⇒「リスト」から文字項目を選べるようにしています。 この項目のリストの参照場所はAQ6~AQ52です。 ここで、A28にA6のリストを選ぶと、自動的に選んだ項目の3つ右隣のAT列の文字が反映されるようにしたいのです。 A28に入れる式は「=VLOOKUP(A6,$A$6:$AT$52,46,0)」 としているのですがAT6の項目だけがでて、A6のリストを違うものに変えても、AT6の項目から切り替わりません。 どこが間違えているでしょうか? どうすればうまくいくでしょうか? ぜひお教えいただけますでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • may0430
  • ベストアンサー率54% (57/104)
回答No.3

こんにちは。 私も概ねANO.1さんと同じ判断なのですが、 A28=VLOOKUP(A6,$AQ$6:$AT$52,4,False)                 4列目?  ↑ 最後の引数についてもANO.1さんと同じ考えなのですが、ヘルプを見てみても、 LookupのときはTure/Falseと書いてあります。(excel2003) T/Fを数字に置き換えれる、あるいは、置き換える場合は、1/0という のはよくあることなので、 試しにやってみましたら、1/0でもLookup関数は動作するようです。 VLOOKUP(A6,$A$6:$AT$52,46,0) だと、A列で「A6」の値を検索し、つまりどんなに「A6」の値を変えてもA列でA6と同じ値のセルは「A6」、 (検索列=範囲の左端列、の上から下へ順番に検索していくので) A6を一列目として同じ行の46列目のセル「AT6」を参照してきていると思いますよ。 Vlookup関数は、検索列は、範囲の必ず左端列でないとダメなはずですよ^^

naranara19
質問者

お礼

ご回答ありがとうございます。 とてもわかりやすいです。VLOOKUPがよく理解できていないことがよくわかりました。ご説明に親身にしてくれているのがよく伝わってきます。 みなさま、お時間とらせて申し訳ございませんでした。おかげで解決しました。

その他の回答 (3)

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.4

参照する範囲に検索値 A6 が含まれていますね A6 の値を A6 から AT52 の範囲で検索しているため、真っ先に A6 のある 6行目が検出されますので、当然 AT6 の値が返ってきます。 ANo.1 hanoi88さんの仰るように、  A28=VLOOKUP(A6,$AQ$6:$AT$52,4,0) とすべきです。 ※VLOOKUP関数の最後の引数は、1=TRUE、0=FALSE の扱いになります)

naranara19
質問者

お礼

簡潔かつ、わかりやすくてためになります。完璧ですね。 本当に感謝感謝です。 みなさまありがとうございました。 一番初めに答えていただいた方にもポイントをさしあげたいのですが、あとになるほど、完璧な答えとなるのは仕方がないのでしょうか?皆様本当にありがとうございました!!

noname#32244
noname#32244
回答No.2

こんにちは。 [ツール]-[オプション]-[計算方法]が手動になっていて、すぐに計算が関数に反映されていないとかではないですか? [F9]=再計算 を押下してみて下さい。 もしくはVlookupの場合参照元はソートされていないと計算結果に誤りがあったボンヤリした記憶がありますが、その辺は平気でしょうか?

naranara19
質問者

お礼

ありがとうございます!! 再計算は気になっていて、チェックしていたのですが、それが問題だったのではなかったようです。 参照元のソートは文字列のためしていませんでした。 ご回答に感謝いたします!!

  • yum_p
  • ベストアンサー率32% (163/497)
回答No.1

勘違いしているかも知れませんが、 参照先の範囲は、「AQ6:AT52」じゃないのでしょうか? A28に「=VLOOKUP(A6,$AQ$6:$AT$52,3,False)」となるのでは。 最後の引数が"0"なのが意味がよくわからないです…TrueかFalseだと思うのですが。 見当外れの回答だったらすみません。

naranara19
質問者

お礼

まっさきの回答ありがとうございます!! おっしゃるとおり、参照場所を間違えていました。 ほんと、私のレベルが低くてみなさまにご迷惑をおかけしました。 ご回答に感謝いたします!

関連するQ&A

  • Vlookup関数を生かして、入力規則をに設定する方法ってありますか?

    別シート(sheet2)に、Vlookup用マスターを作ってあります。 でsheet1に、セルF1に、=IF(H2="",""Vloouup用マスター!$A$2:$B$14,2,false)というような形で、 H2が空白だったら、空白にして、そうでなかったら、検索して、2列目を、表示ようにしてあります。 Vlookup用マスターの1列めに入っているのは、日本語の項目名で、それを、検索値として、入力すると、2列目の数字を出すようにしてあるのですが、 1列目の項目名が長いので、コピーしています。 同一シートなら、データの入力規則で、プルダウンキーを使ってリストを作る方法もあるのですが、別シートだと、それもできないようなので、 Vloouupのマスターを生かしたまま、もともとのシートに、もっと、簡単に入力できる方法が何かあったら、教えて下さい。 よろしくお願いいたします。

  • Excel 入力規則から表の自動表示

    Excel2007で入力規則を使いリストを作成したのですが、その選んだ項目に合わせて自動的に同Sheet内に表を表示させたいんです。 文字ならIF関数とVLOOKUP関数を組み合わせたりINDIRECT関数を使ったりすれば可能かと思いますが、表の場合はどうしたらよいのでしょうか。画像化?VBA? できれば合わせて背景等の書式も参照させたいです。ちなみに入力規則のセルでは条件付きで設定しました。 ずっと格闘しています。教えてください!!

  • エクセルで入力規則やVLOOKUPで参照できない

     会社で出荷表出力するのに困ってます! お助け願います 商品ブック内に下記2シート存在します 商品入荷シート A列 日付/B列 商品番号/C列 個数 出荷履歴シート A列 出荷日付/B列 出荷商品番号 -------------------------------------- 入荷シートには、商品分類関係なく、渡された伝票を元に 各部署から毎日追加入力されます 履歴シートは、その日出荷の商品番号のみを入力、プリントアウトです -------------------------------------- やりたいこと 履歴シートの商品番号セルに入力した際に、 入荷シートB列を参照して、商品番号が存在するか?を判別したいです セルの色が反転するとか、エラーMSGとか・・・ VLOOKUPやMacth、入力規則など自分でいろいろ試しましたが、 他のシートやブックは参照できません。。などとエラーでできません 他に方法はあるのでしょうか、単に自分が記述ミスなのでしょうか アドバイス願いますm(__)m

  • エクセル2010 入力規則について

    宜しくお願いします。 エクセル2010の入力規則を使ってリスト入力するときに、 別のセルの入力内容によって、参照するリストが変わるように できないでしょうか? たとえば、A1(大項目)に入力する項目を入力リストから選択して入力し、 A1(大項目)の入力内容によってB1(中項目)の参照するリストが変わるようにしたいんです。 要するに、大→中→小と項目を絞っていくようにしたいんです。 不可能なら他の方法でもいいのでよろしくお願いします。

  • エクセル VLOOKUPで参照元を入力しなおさないと反映されない

    お世話になります、お知恵をくだされば幸いです。 エクセル2007で、別のアプリケーションからxls形式で出力したデータに、列を追加してvlookup参照を行います。 sheet1においてA列に参照元があり、B列に表示させるのは、参照先であるsheet2のA列に合致した場合にsheet2のB列のデータを表示させると考えてください。 現在の状況は、sheet1のA列を書き直さないと、#N/Aとなってしまいます。 A列のセルの表示設定は標準でも文字列でも状況は変わらず、唯一同じ内容で書き換えたときに参照されてB列に反映されます。 同様にA列のセルを選択後にフォーミュラバーに表示されるセルの内容を選択してctl+Cし、enterを押せば、入力したとみなされてB列に反映されます。 セルのコピペではNGです。 行数が3000を超えているので、逐一そのような操作もできず、一括で書き換えもしくは解決する手段を探しています。 因みにA列を全く別のsheetにコピー、それを張り付けても変化はありません(値のみでも)。 どうぞよろしくお願いします。

  • エクセルのセル入力規則項目に連動してヘッダーの表示を切替えるには?

     エクセルワークシートにおいて、今、INDIRECT関数とVLOOKUP関数を用いて表の切替え表示させるものを作っていますが、各ワークシートに入力規則設定してあるセルの文字列を切り替えた表と同時にそのシートのヘッダーも同じ内容で表示させるにはどのようにすればよいのでしょうか?  5項目の入力規則が設定してある  必要に応じ、INDIRECT関数で表を切替える  入力規則が以下のようになっている   A:パソコン   B:プリンター   C:デジカメ   D:スキャナー   E:モニター  仮にAを選択するとVLOOKUP関数でデータが検索、表示されるのですが   このときに表示されたシートのヘッダーにパソコンならパソコンと、プリンターならプリンターと表示されるようにしたいのです。  どうすればよいのでしょうか?色んな方法があるとは思いますが、分からないのでどなたか教えてください。お願いします。

  • エクセルのVLOOKUPについて

    ご覧いただきありがとうございます。 下記の画像のような場合のVLOOKUPの使い方について教えて下さい。 【Sheet1】A列に【Sheet2】A列の文字が含まれていた場合に、【Sheet1】B列に【Sheet2】B列の数を入力するようにしたいと思っております。 【Sheet1】A列の文字数が少なく(列:◯◯)、【Sheet2】A列の文字数が多い場合(列:東京都立◯◯高等学校)は、 =IF(COUNTIF(Sheet2!$A$1:$A$6,"*"&A1&"*")=0,"",VLOOKUP("*"&A1&"*",Sheet2!$A$1:$B$6,2,0)) を入力したら出来たのですが、下記の画像のように、【Sheet1】A列の文字数の方が多い場合は、どのようにすればよいのでしょうか? 使用しているのはエクセル2010です。 ご回答宜しくお願い致します。

  • VLOOKUPでは値が返せられないです。

    本当のドシロウトです。 用語での質問の仕方すら難儀しています。 VLOOKUPでは出来ませんでした。 =VLOOKUP(A1,C:D,2) とやりましたら、B列に関係のないC列の文字列を拾っていまいます。 =VLOOKUP("*"&A1&"*",C:D,2,FALSE)も出来ませんでした。 A列にはそれぞれセル内に改行された文字列が入っておりセル内行数も一定ではございません。文字列の行の順番も不規則で、 5000行位まであります。(>_<) 例を作ってみました。↓         A                        -----------------------                       色別リスト:赤  1行  色別リスト:赤:りんご     果物:りんご     色別リスト     色別リスト:赤:りんご:青森産      果物:りんご     ---------------------------------------     野菜:大根 2行  種類:根野菜     色別リスト:白     色別リスト:白:大根   ---------------------------------- C列に   C --------------------- 色別リスト:白 --------------------- 色別リスト:ピンク -------------------- ・・とやはり数千行あります。 A列以外は、セル内改行文字列はございません。 A列各セル内にC列の文字列が含まれている場合、C列右隣のD列の値をB列に返したいのですが、、、ご教示お願い申し上げます。 会社で使っているオフィスは2007なのですが、今自宅では2000を使っています。

  • Excel2007の入力規則について

    Excel2007の入力規則について教えてください。 プルダウンメニューで項目を選択できるようにしたいと思います。 その際下記のように考えています。 別シートにデータを置いて、参照できるように設定します。 例えば A列: 大根 人参 キャベツ B列: 1 2 3 A列でプルダウンメニューから大根を選ぶと自動的にB列に1が入るようにします A列でプルダウンメニューから人参を選ぶと自動的にB列に2が入るようにします A列でプルダウンメニューからキャベツを選ぶと自動的にB列に3が入るようにします どのように設定すればできますか。 よろしくお願いいたします。

  • Excel 2007のVLOOKUP関数について

    Excel 2007のVLOOKUP関数について教えてください。 A列に(大根、人参、キャベツ)の3項目をプルダウンメニューで 選べるように設定します。 A列にある項目を選択した時に B列にそれぞれの数字が自動で表示されるように 設定したいと思います。 大根→1 人参→2 キャベツ→3 A列のプルダウンメニューは「データ入力規則」の元に値に 直接項目を入力します。 VLOOKUP関数を使用すると思いますが、 どのような方法で使用すればよいのかわかりません。 教えてください。

専門家に質問してみよう