プロが教える店舗&オフィスのセキュリティ対策術

  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を組み合わせればいいというところまではわかるのですが、どのように条件設定をすればいいのかがわかりません。

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

A 回答 (4件)

こんにちは



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

一例です。


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

A列、B列ともに昇順でデータが並んでいるのであれば


=INDEX(C列,INDEX(MATCH(0,0/((A列>=X)*(B列>=Y)*ROW(A列)),0),0))
こんな計算式で表示することも可能です。

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

配列計算の応用的な式。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/02/10 18:29

”セル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つの条件を評価します。
「エクセルのIF関数とVLOOKUP関数に」の回答画像4
    • good
    • 0

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