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

解決済みの質問

エクセルのIF関数とVLOOKUP関数について教えてください。

  A B C
1 A1 B1 C1
2 A2 B2 C2




上記のような表があり、セルX、Yに入力した値が2つの条件に合致した場合、セルZにC列の値を返すような数式を作っています。
たとえば、セルXの値がA1より小さく、かつ、セルYの値がB1より小さい場合にはセルZにC1の値を表示する、という数式を作りたいのです。
(ちなみにAn、Bn、Cnにはそれぞれ数字が入ります)

=IF(AND(X<=A1,Y<=B1),C1,IF(AND(X<=A2,Y<=B2),C2,・・・

AND関数を利用してこのように数式を入れると、途中まではうまくいくのですが、引数が多いため途中からエラーが出てしまいます。
(引数の数は10個以上あります)
IF関数とVLOOKUPを組み合わせればいいというところまではわかるのですが、どのように条件設定をすればいいのかがわかりません。

エクセル初心者で恐縮ですが、どなたか詳しい方いらっしゃいましたらご回答よろしくお願いいたします。

投稿日時 - 2009-02-10 15:46:05

QNo.4705604

すぐに回答ほしいです

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

A列、B列ともに昇順でデータが並んでいるのであれば
=INDEX(C列,INDEX(MATCH(0,0/((A列>=X)*(B列>=Y)*ROW(A列)),0),0))
こんな計算式で表示することも可能です。

内容
C列のデータの並びの中から、A列データ>=XとB列データ>=Yが成立した最初のセル行のデータを拾い出す。

配列計算の応用的な式。

投稿日時 - 2009-02-10 16:24:02

お礼

なるほど、INDEX関数を使えばいいんですね!
わかりにくい説明だったのにも関わらず、ありがとうございました。
やりたかったことが見事に解決しました。

投稿日時 - 2009-02-10 18:29:25

ANo.3

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

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

回答(4)

ANo.4

”セルXの値がA1より小さく、セルYの値がB1より小さいときC1の値を表示”とごく単純に解釈します。

A1=10,B1=20,C1=*
F1=9(Xの値)、G1=19(Yの値)、セルD1(Z)にC1のアスタリスクを表示、条件以外は”No”と表示

=IF(F1<A1,IF(G1<B1,C1,"No"),"No") この式をD1に入れる。

IF関数を入れ子にして2つの条件を評価します。

投稿日時 - 2009-02-10 17:41:23

ANo.2

一例です。
複数条件によるデータの抽出という事と認識していますので相違していた場合、読み捨て下さい。
=INDEX(C:C,SUMPRODUCT(($A$1:$A$100<=x)*($B$1:$B$100<=y)*ROW($A$1:$A$100)))

投稿日時 - 2009-02-10 16:17:35

ANo.1

こんにちは

例えば A1-B1 から An-Bn までの組合せがすべて成立しても何らかの基準で1組だけ採用するのですか?
それとも成立するものは、すべて知りたいのですか?

投稿日時 - 2009-02-10 16:00:27

あなたにオススメの質問