• ベストアンサー

エクセルの計算式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列は計算式をコピーします。」わかりましたら、計算式を書いてお教えください。

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

  • ベストアンサー
  • Yosha
  • ベストアンサー率59% (172/287)
回答No.3

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だと思います。試してみてください。

hanakasuka
質問者

お礼

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

その他の回答 (2)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.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) で、どうでしょうか ただし、検索条件に合うデーターが複数あるとエラーになります

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.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列はこの式とどういう関係があるのでしょうか?

hanakasuka
質問者

お礼

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

hanakasuka
質問者

補足

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

関連するQ&A