こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルの計算式VLOOKUPを再度教えてください!

再度,質問いたします、わかりましたら、教えてください。
エクセルの計算式でE1のセルに次の計算式があった時に
=VLOOKUP(B1,$F$1:$G$10,2,FALSE)この式は、成り立っています。
「この時にもう1つ条件をつけて、A1のセルの値(20種類の値が、ある時)に対して範囲を変えることはできますか。たとえばA1セルが50という値のときは、$F$1:$G$10の範囲ですが、A1セルが130と言う値のときの範囲は$F$11:$G$15、A1が201のときの範囲は$F$16:$G$25を指定のように範囲を変えられますか?FとGに範囲が20種類タテにあります。H1からH10のセルは50という値、H11からH15のセルは130という値,H16からH25のセルは201と言う値があります。AからE列は1から1000のセルがあってE列は計算式をコピーします。」わかりましたら、計算式を書いてお教えください。

投稿日時 - 2008-08-24 22:44:47

QNo.4275877

困ってます

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

E1セルに次式を入れ、下方にドラッグしてください。

=VLOOKUP(B1,INDIRECT("F"&MATCH(A1,$H$1:$H$25,1)-COUNTIF($H$1:$H$25,A1)+1&":"&"G"&MATCH(A1,$H$1:$H$25,1)),2)

この式が成立するためには、以下の条件が必要です。

1. H列に入っている数値の各グループは、例に出されているように、それぞれ1塊りであり、昇順になっていること。
2. C列、D列にはどんなデータが入っているか説明がないため、無視しています。

式を見てお分かりとは思いますが、一応説明しておきます。

MATCH(A1,$H$1:$H$25,1) : 昇順に並んでいる数値のうち、A1セルの条件に合った値の入っているセルの最大の行番を返します。

COUNTIF($H$1:$H$25,A1) : A1セルの条件に合致したセルの合計です。 MATCH関数は、検索値が昇順に並んでいるとき、最後の引数(照合の型)を“-1”に設定した場合、中間のデータ領域ではエラーとなりますので、この関数を使って各データの始まりの行を算出しています。 

INDIRECT("F"&MATCH(A1,$H$1:$H$25,1)-COUNTIF($H$1:$H$25,A1)+1&":"&"G"&MATCH(A1,$H$1:$H$25,1)) : ()内は文字列なのでこのままではうまくいきません。INDIRECT関数を使って、セル参照形式の文字列をセル参照する式に変換しています。

VLOOKUP(… : 説明省略

いろいろデータを入れチェックはしてあります。(exel2007) たぶんOKだと思います。試してみてください。

投稿日時 - 2008-08-25 17:53:54

お礼

たいへん遅くなりましたが、ありがとうございました、お蔭様で無事計算式が完成いたしました。

投稿日時 - 2008-08-30 16:15:50

ANo.3

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

>A1の値は20種類あるのですが

それなら、DGET という関数があります
事前にちょっと準備が必要ですが、DGET の方が簡単だと思います

F列、G列、H列にはそれぞれ名前が付いていると思いますが、
各列の1列目にその名前を入れます
仮に「F]、「G]、「H」とします
A1="H"
B1="F"
と入れます(検索条件を示す)
A2 に50 とか 130 を入れ、B2 に当初 B1 に入れていた値を入れます
あとは
E1=DGET(F1:H1000,"B",A1:B2)
で、どうでしょうか

ただし、検索条件に合うデーターが複数あるとエラーになります

投稿日時 - 2008-08-25 16:03:09

ANo.1

A1の値は50,130,201の3種類だけでしょうか
それなら

=IF(A1=50,VLOOKUP(B1,$F$1:$G$10,2,FALSE),IF(A1=130,VLOOKUP(B1,$F$11:$G$15,2,FALSE),IF(A1=201,VLOOKUP(B1,$F$16:$G$25,2,FALSE),"")))

で、出来ると思います

もし、A1の値が3種以外に増えたり減ったりするのでしたら、式を根本的に見直した方が良いです

あと、E列とH列はこの式とどういう関係があるのでしょうか?

投稿日時 - 2008-08-25 10:16:03

補足

解答ありがとうございました、しかしA1の値は20種類あるのですが、
IFを繰り返さなくてもよい式はできますか、E列とH列の関係はありませんが、HセルにはAセルに入る20種類の値をヨコにしたのですが、これを利用してできませんか?また、Gセルの最後の範囲はG200とします。

投稿日時 - 2008-08-25 11:13:25

お礼

解答ありがとうございました、しかしA1の値は20種類あるのですが、
IFを繰り返さなくてもよい式はできますか、E列とH列の関係はありませんが、HセルにはAセルに入る20種類の値をヨコにしたのですが、これを利用してできませんか?また、Gセルの最後の範囲はG200とします。

投稿日時 - 2008-08-25 11:24:48

あなたにオススメの質問