- ベストアンサー
VLOOKUP関数の範囲に、複数の範囲を指定したい
VLOOKUP関数の範囲に、複数の範囲を指定したいのですが方法がわかりません。 例えば同じシート内のC3:L8の範囲とM3:V8の範囲とW13:AF18の範囲を同時に 検索範囲として指定したいと考えております。 選択範囲に名前をつけて定義し、それを範囲として指定してみても、 なかなか上手くいきません。 効果的な方法があれば、御教鞭頂きたく思います。
- みんなの回答 (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列の値が帰ります。
その他の回答 (4)
- maron--5
- ベストアンサー率36% (321/877)
◆こんな方法はいかがでしょうか? =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),"")
- imogasi
- ベストアンサー率27% (4737/17069)
VLOOKUP関数は複数範囲を指定できません。 エクセルにおいて、何でも、したけりゃできる(方法がある)というものではありません。 Match関数なども同じ。関数で複数列をカンマででも区切って記述できるのは、SUM関数のほか極く少数です。そこまで進歩していない。 便法で結果的に既出回答で、2つぐらいまでなら式に書けるということです。 検索表の行数が固定であれば関数式を使ってでも、作業列に1列にまとめ、その列を検索する方法もある。 数字の場合、A列の後にB列をつなぐ関数 =IF(ROW()<=COUNT(A:A),A1,INDIRECT("B"&ROW()-COUNTA(A:A)))
- Samichlaus
- ベストアンサー率31% (86/269)
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を使えば、もっと多くの検索が出来ると思います。
- suekun
- ベストアンサー率25% (369/1454)
たとえばエラー回避でネストする。 IF文で構成して、IF(ISERROR(VLOOKUP(最初の範囲)、IF(ISERROR(VLOOKUP(次の範囲・・・・とか 範囲の中で検索値がなければ次の場所を検索する。