• ベストアンサー

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

VLOOKUP関数を使って表を作りたいのですが、検索する範囲が複数ページあります。 検索する範囲が1ページの時は例えば、 =vlookup(A1,シート名!A2:B10,2) でイイと思うのですが、複数ページある場合はどのように範囲を指定すればいいのでしょうか? エクセル関数について検索できるお勧めのホームページでもいいので、どなたか教えて下さい。 お願いします。

  • bisai
  • お礼率30% (34/110)

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

  • ベストアンサー
  • beer55
  • ベストアンサー率33% (7/21)
回答No.3

おはようございます。 VLOOKUP関数で検索する範囲が複数ページがある場合には、「メニューバー」→「挿入」→「名前」→「定義」で名前を付け、参照範囲を指定します。 VLOOKUP(検索値,範囲,列番号,[検索の型])関数の「範囲」に「名前の定義」を入力します。 「名前の定義」を行わない場合は、CHOOSE関数を使用し、INDIRECT関数の引数にCHOOSE関数を指定します。 [例] Sheet2からSheet5の各A2:B10にデータが入力されていることとします。 SHeet1のA1は商品名、B1はパターン、C1は参照範囲、D1は検索結果との各見出しとします。 A2に商品名を入力、 B2に「1」から「4」の数値を入力、 C2に=CHOOSE(B2,"Sheet2!A2:B10","Sheet3!A2:B10","Sheet4!A2:B10","Sheet5!A2:B10")と入力 D2に=VLOOKUP(A2,INDIRECT(C2),2,0)と入力すると検索が出来ます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

#1の示唆に富んだ、ご回答を追試しました。 ただテーブル部は、もし式を複数セルで使う(複写する時は。下記D1:D5の場合のように)、$を付け絶対番地にしないと、正しい値にならないのではないでしょうか。 (データ) Sheet4のA1:B5 a 1 b 2 c 3 d 4 e 5 Sheet5のA1:B5 f 6 g 7 h 8 i 9 j 10 Sheet4のC1:C5に c f g d b と入れる。 sheet4のD1に =IF(ISERROR(VLOOKUP(C1,Sheet4!$A$1:$B$5,2,FALSE)),VLOOKUP(C1,Sheet5!$A$1:$B$5,2,FALSE),VLOOKUP(C1,Sheet4!$A$1:$B$5,2,FALSE)) といれ、D5まで複写。 D1:D5に 3 6 7 4 2 と正しく出ました。

  • HageoyaZ
  • ベストアンサー率38% (60/154)
回答No.1

=IF(ISERROR(VLOOKUP(A1,Sheet1!A1:B3,2,FALSE)),VLOOKUP(A1,Sheet2!A1:B3,2,FALSE),VLOOKUP(A1,Sheet1!A1:B3,2,FALSE)) 上記の例では Sheet1に検索値がなければ、Sheet2を検索に行きます。

bisai
質問者

お礼

有難うございます。 早速試してみます。

関連するQ&A

  • EXCEL LOOKUP関数で別シートをセルから参照したい

    シート:集計表・4月・5月・6月・・・・3月 (4月~3月までは売上表が入っていて、表の形式はまったく同じです。) 集計表のシートにおいて、 A1にシート名を入力することによって、そのシートを使った範囲を取得したいと思ってます。 B2に =vlookup(B1,'A1'!A:B,2,0) この場合、'A1'! は有効しませんが、何かの関数を使ってこれと同じ結果を得たいと考えています。 いろいろ検索しましたが、(検索の仕方も悪いかもしれません。) VLOOKUP関数を使って複数列を範囲としたいので、よく出てくるINDIRECT関数はセル番地を指定する以上、無理だと判断しました・・・。 よろしくお願いします。

  • エクセルの関数で複数のシートにまたがって範囲指定する方法

    VLOOKUP関数の、[範囲]の項目の入力方法について質問です。複数のシートにまたがって同一範囲のセルを指定したいときはどうるれば良いですか?通常は=VLOOKUP(検索値,'[ファイル名]シート名'!範囲,列番号,検索の型)ですが、シートは複数にまたがり範囲が同一の場合は式はどうなりますか?

  • Excel検索関数で

    説明下手なのでわかりにくいかもしれませんがお願いします。 VBAを使わず、エクセルの関数のみを使って表のデータを抜き出し並びかえる作業をしてます。 表は複数あり、あらかじめ決められた順番に列を抜き出し、新たなシートに表を作ってます。 抜き出す時にVLOOKUPを使用しています。 抜き出す先の表にも検索値の列が存在してます。 一番最初にB列に基準となる列を抜き出し、B1を検索値、 抜き出したい列のある表を検索範囲(仮に○○!A1:C5とします) 抜き出す列は1列目(A列)なので1、 検索の型はFalseにします。 以上を式にすると、 =VLOOKUP($A1,○○!$A$1:$C$5,1,0)となってるのですが、 目的のA列が抜き出せません。 ちなみに、同じ式をオートフィルで引っ張るので絶対参照させてます。 また、抜き出す列より後の列が抜き出せないような状態です。 これでわかりますでしょうか? VLOOKUPじゃなくてもいいので何か方法はありませんでしょうか? 説明わかりにくくてすみません・・・

  • IF関数が長くて、実行できない。

    関数初心者です。Excel2003を使用しております。 ~目的~ IF関数が長くなり、実行することが出来ない。 VLOOKUP関数の複数範囲の中から検索できる数式を作成したい。 ~状況~ ・VLOOKUP関数で複数の範囲を指定している。 ・各範囲は_コード表という名前の定義付けをしており、_コード表1~12まである。 ・_コード表12までの複数範囲の中から検索できる数式を作成したい。 =IF(ISERROR(VLOOKUP(B5&"_"&C5&"_"&D5,_コード表1,5,0)),IF(ISERROR(VLOOKUP(B5&"_"&C5&"_"&D5,_コード表2,5,0)),IF(ISERROR(VLOOKUP(B5&"_"&C5&"_"&D5,_コード表3,5,0)),"",VLOOKUP(B5&"_"&C5&"_"&D5,_コード表3,5,0)),VLOOKUP(B5&"_"&C5&"_"&D5,_コード表2,5,0)),VLOOKUP(B5&"_"&C5&"_"&D5,_コード表1,5,0)) 上記の数式で検索が出来るのですが、 _コード表12までになると、関数が長すぎて実行できません。 何か良い方法はありませんでしょうか。 ご回答をお待ちしております。

  • VLOOKUP関数について

    VLOOKUP関数についてですが、検索値が複数ある場合 例) =VLOOKUP(c2,Sheet1!$A$3:$A$1687,3,FALSE) 例えば、検索値c2の箇所が複数あった場合は、範囲指定と同様に選択範囲で囲むとよいのでしょうか? またその時に、絶対参照(F4)をした方がよいのでしょうか? よろしくお願いいたします。

  • 【エクセル】 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にこだわってるわけではないので、他の方法でも出来る のであれば良い方法を教えてください。よろしくお願いします。

  • エクセル、VBA、抽出複数検索について

    エクセル、VBA、VLOOKUP、MATCH関数等について出来る方法があれば教えてください。 インチごとに分けてあるシートがあり、(在庫表です) これを参照して、別ブックへVLOOKUP等を使って、サンプルデータのシート4のように表示させたいのですが、 何か方法を使って出来ることは可能でしょうか? 問題点が複数あります 1、VLOOKUPの範囲について、B列が結合されていて、C列は複数行あるため、商品名が入ってきません。 C列については、何千件とデータがあるため、結合することは不可能です。 一致している条件としては商品コードが必ずあり、商品名には「/」が入っております。 =CONCATENATEとVLOOKUPは一緒に使うことは可能ですか? もしくはINDEX関数やIF、SUMPRODUCT等を使うのでしょうか? シート4のような形に出来る方法があれば、教えてほしいです。 VBAは詳しくはないのですが、VBAで出来るのであれば、教えてほしいです。 在庫表はとても作り方が悪いのですが、これを作り直すと言うことは、不可能です。 グループ会社で使っているため、なんとかこの在庫表を使いたいです。 VBAでA列をA5からA100にコードのみ入れた場合、B列に商品名が入るようにVBAで作ることは可能でしょうか? もしくは、検索条件を2つ使って、一つは商品コード完全一致+あいまい検索で【/】で商品名を入れることは可能でしょうか? 関数は調べたのですが、関数では難しいのかなと思います。 宜しくお願い致します。

  • エクセルの関数について

    検索に使用する関数についてお伺いいたします。 表を二つ作成しました。 シート1には特に項目の指定がなく、番号の若いものから順に左から右に並べた24×8の表があります(表1とします)。 シート2にはいろいろな項目を指定した表があり、B列にランダムに数値が入っています(表2とします)。 表1の範囲に表2のB列の値が入っている場合、表2のA列に◎や*などのなんらかのしるしをしたいのですが、どのような関数を使用すればよいでしょうか? わかりにくい文章で申し訳ありませんが、よろしくお願いいたします。

  • エクセルのHLOOKUP関数の検索範囲指定で、複数のシートにわたる範囲

    エクセルのHLOOKUP関数の検索範囲指定で、複数のシートにわたる範囲指定は出来ないのでしょうか。 例えば、シート1からシート5まであり、各シートのA1:D10を指定するとか。

  • EXCELのINDIRECT関数について

    こんにちは。 現在仕事で他の方が昔作ったEXCELを見ているのですが、シートが2枚(sheet1, sheet2)あって次のような関数が使われてます。 -- <sheet1> 【セルD15】SGP (←入力) 【セルD16】150 (←入力) 【セルD17】=VLOOKUP(D16,INDIRECT(D15),2) (←関数) (セルD17には、165.2という計算結果が表示されています) <sheet2> SGP 呼径 外径 A mm 6 10.5 8 13.5 10 17.2 15 21.7 20 27.2 25 34.0 32 42.7 40 48.6 50 60.5 65 76.3 80 89.1 90 101.6 100 114.3 125 139.8 150 165.2 175 190.7 200 216.3 (sheet2には、同様の表が上下左右に並んでいます) -- ここで、セルD17に入力されている関数について、VLOOKUPはたまに使うんですが、INDIRECTがサッパリ謎で困っております。 何故こんな簡単な式で、別シートの表の一部を参照できるのか?(しかもシート名の指定もないし・・)という点、どなたか教えていただけないでしょうか? よろしくお願いします!

専門家に質問してみよう