アプリ版:「スタンプのみでお礼する」機能のリリースについて

VLOOKUP関数の範囲に、複数の範囲を指定したいのですが方法がわかりません。
例えば同じシート内のC3:L8の範囲とM3:V8の範囲とW13:AF18の範囲を同時に
検索範囲として指定したいと考えております。

選択範囲に名前をつけて定義し、それを範囲として指定してみても、
なかなか上手くいきません。

効果的な方法があれば、御教鞭頂きたく思います。

A 回答 (5件)

ごめんなさい。

手抜きですね。
以下が条件です。

検索値がA1にある
検索範囲の中で検索値に合致する値が複数ない

=IF(ISERROR(VLOOKUP(A1,C3:L8,2,0)),IF(ISERROR(VLOOKUP(A1,M3:V8,2,0)),IF(ISERROR(VLOOKUP(A1,W13:AF18,2,0)),"",VLOOKUP(A1,W13:AF18,2,0)),VLOOKUP(A1,M3:V8,2,0)),VLOOKUP(A1,C3:L8,2,0))

最初の範囲で検索値に一致する物がなければ、次の範囲を探します。
その繰り返しです。
最終的にどこにもなければ空白です。

返す値の列番号は範囲の中で左から2番目です。
たとえば最初の範囲なら、D列の値が帰ります。
    • good
    • 13

◆こんな方法はいかがでしょうか?


=IF(COUNTIF(C3:C8,A1)+COUNTIF(M3:M8,A1)+COUNTIF(W3:W8,A1),VLOOKUP(A1,IF(COUNTIF(C3:C8,A1),C3:L8,IF(COUNTIF(M3:M8,A1),M3:V8,W3:AF8)),10,0),"")
    • good
    • 5

VLOOKUP関数は複数範囲を指定できません。


エクセルにおいて、何でも、したけりゃできる(方法がある)というものではありません。
Match関数なども同じ。関数で複数列をカンマででも区切って記述できるのは、SUM関数のほか極く少数です。そこまで進歩していない。
便法で結果的に既出回答で、2つぐらいまでなら式に書けるということです。
検索表の行数が固定であれば関数式を使ってでも、作業列に1列にまとめ、その列を検索する方法もある。
数字の場合、A列の後にB列をつなぐ関数
=IF(ROW()<=COUNT(A:A),A1,INDIRECT("B"&ROW()-COUNTA(A:A)))
    • good
    • 2

IF関数と組み合わせればよいのでは?


たとえば、
IF(B193=1,VLOOKUP(B193,C197:E203,2),VLOOKUP(B193,E199:G204,2))
これは、もしB193が1のときはB193にある値と同じ行のC197:E203にある2番目(探す値がある左端のセルを含む)の数字を持ってきて、それ以外であれば、E199:G204の範囲で2番目の値を持ってくると言うものです。
参考になりましたか?
ちなみに、IFの中に更にIFを使えば、もっと多くの検索が出来ると思います。
    • good
    • 3

たとえばエラー回避でネストする。


IF文で構成して、IF(ISERROR(VLOOKUP(最初の範囲)、IF(ISERROR(VLOOKUP(次の範囲・・・・とか

範囲の中で検索値がなければ次の場所を検索する。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A