• ベストアンサー

VLOOKUP関数でシートをまたいで検索

sekijitsuの回答

  • ベストアンサー
  • sekijitsu
  • ベストアンサー率33% (19/57)
回答No.1

Sheet1の結果、Sheet2の結果…というようにそれぞれシート数分、vlookup完全一致(FALSE型)で検索します。つまり15行分設けるということです。これらを仮結果としましょう。 すると、当然一つを除いて、残りはエラーとなりますので、 =IF(ISERROR(検索結果)=TRUE,"",検索結果) というような式で、エラーを排除します。 すると、15行のうち1行だけレコードが表示されている状態が想像できます。例えば6行目(Sheet6)がヒットしたとします。ではどうやって最終結果の行に6行目を反映させるかですね。仮結果はおそらくID、名前、アーティスト、、、という感じでしょう。ここで一番最初がIDというのがポイントです。これを使います。 本結果には、 =VLOOKUP(SUM(ID列の合計),仮結果範囲,列数,FALSE) と入れます。 ID列はヒットしない場合空欄になるようセットしましたよね?よって「ID列の合計=検索するID」になる筈です。そのIDを検索キーにして、仮結果の範囲からVLOOKUPで抽出するという訳です。 やってみると分かると思いますが、説明の割には意外とシンプルになると思います。仮結果の部分が邪魔であれば隠してしまえば良いでしょう。お試しあれ~

関連するQ&A

  • エクセル関数、シート又はブック間での検索について

    「VLOOKUP 関数」を使用してシート又はブック間で検索し抽出しているのですが、その抽出したものが、そのシートの何行目にあったか、行番号が知りたいのですが、行番号も一緒に抽出する方法(関数)はありますか? 関数やマクロなど全く無知なので、どうかお助けいただきたいと思います。よろしくお願いします!

  • エクセルのVLOOKUP関数には制約が!?

     例えば1000番から2000番までのレコードがランダムに並んでいるとします。1500番のレコードを別のシートに抽出したいのですが、何か適切な関数はあるでしょうか?  VLOOKUP関数だと、検索対象が昇順に並んでいないとうまくいきませんよね?  アドバイスお待ちしておりますm(_ _)m

  • 複数のシートに跨ってVLOOKUPするには?

    複数のシートに跨っているデータをVLOOKUPで参照しようとしています。 1つめのシートには コード番号 シート名 の2つのカラムがあり、コード番号ごとに どのシートを参照すればよいかわかるようになっています。 参照されるほうのシートには コード番号 値 の2つのカラムがあります。 このシートが数十存在しますが、1つのシートにまとめることは出来ません。 1つ目のシート上で、 =VLOOKUP(A1,CONCATENATE(B1,"!A:B"),2,false) などと試してみたのですが、うまくいかないようです。 何か良い方法はないでしょうか。

  • 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関数 正しい値が返されない

    sheet1にデータリストを入力、sheet2のA1にコード番号を入力し以下の表にSheet1の対象データを参照するというところ(VLOOKUP関数のみ)まではよかったのですが、元データに空欄の時は「データなし」と表示過去の質問を参照して下のような式に変更しました。 =IF(ISERROR(VLOOKUP($A$1,範囲,列番号,"")),”データなし”,(VLOOKUP($A$1,範囲,列番号,FALSE))) はじめは正しく表示はされたのですが、A1に違う値を入力し直しても値が変化しません。 エラー表示はでませんが、数式がどこか間違っているのでしょうか。 どなたかお知恵をお貸しください。

  • VLOOKUP関数の使い

    お世話になります。 VLOOKUP関数を使ってデータを抽出したいですが、検索範囲には文字しか入っていないのに対して検索値には文字や数字が含まれています。 この場合でもVLOOKUP関数をうまく使う方法はないでしょうか。 具体的にいうと:VLOOKUP(検索値、範囲、列番号、検索の型)の 検索値はABC123-45、範囲にABCしかないため検索データが一致していないので抽出できないです。 よろしくお願いします。

  • エクセル関数VLOOKUPのことですが

    VLOOKUPで別のシートのセルから数字を引っぱってくる設定をしたのですが、その参照するセルが空白だった場合、0が表示されてしまいます。 空白のときは空白にしたいのですが、以下の関数にどう付け加えればいいですか? =VLOOKUP(B2,Sheet1!B4:I52,8,0)

  • excel2007 vlookup関数 シート参照

    次のような関数をつくって利用しています =VLOOKUP($B$3,'1101'!$1:$1048576,2) ここで利用しているのは、シート名「1101」なのですが アクティブシートのセルに入力した名前に対応して 参照するシートを変更したいのです 上の式の1101のところに、セルA4やindirect(A4)などを いれようとしましたがうまくいきません 調べてみましたがうまく調べられないので 質問することに決めました。 ご指導よろしくお願いします。

  • 複数のシートから検索と検索範囲の変更

    VLOOKUP関数を使ってやっと 検索できるようになりました。 しかし「あ行」「か行」・・・と参照データ そのものを整理できないものかとまた思案しています。 1、たとえばSheet3に「あ行」Sheet4に「か行」   のようにして   シートをまたがって検索できないもの   でしょうか? 2、検索元データを増やすたびに検索範囲を   変えてるのですがもっと融通が利く方法は   あるのでしょうか? 3、VLOOKUP関数をマクロで実行させようと   するとどういう風に記述すればいいの   でしょうか?   (マクロの記録からは出来ないですもんね)  以上3つですが回答できるものだけでも構いません  よろしくお願いしますm(_ _)m

  • VLOOKUP関数について

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