• ベストアンサー

エクセルの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を組み合わせればいいというところまではわかるのですが、どのように条件設定をすればいいのかがわかりません。 エクセル初心者で恐縮ですが、どなたか詳しい方いらっしゃいましたらご回答よろしくお願いいたします。

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

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

A列、B列ともに昇順でデータが並んでいるのであれば =INDEX(C列,INDEX(MATCH(0,0/((A列>=X)*(B列>=Y)*ROW(A列)),0),0)) こんな計算式で表示することも可能です。 内容 C列のデータの並びの中から、A列データ>=XとB列データ>=Yが成立した最初のセル行のデータを拾い出す。 配列計算の応用的な式。

mfst722
質問者

お礼

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

その他の回答 (3)

  • 374649
  • ベストアンサー率38% (203/527)
回答No.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つの条件を評価します。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

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

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.1

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

関連するQ&A