IF関数の複合を合体させる方法は?

このQ&Aのポイント
  • 下記の4つのIF関数を合体させたいのですが、どうすればいいでしょうか?
  • =IF(AND(BI11=200,BA9>=30),VLOOKUP(BI13,BQ3:CI17,16,0),VLOOKUP(BI13,BQ22:CI37,16,0)) =IF(AND(BI11=200,60=>BA9>30),VLOOKUP(BI13,BQ3:CI17,17,0),VLOOKUP(BI13,BQ22:CI37,17,0)) =IF(AND(BI11=200,120=>BA9>60),VLOOKUP(BI13,BQ3:CI17,18,0),VLOOKUP(BI13,BQ22:CI37,18,0)) =IF(AND(BI11=200,150=>BA9>120),VLOOKUP(BI13,BQ3:CI17,19,0),VLOOKUP(BI13,BQ22:CI37,19,0))
  • IF関数を合体させたい場合は、以下の手順をお試しください。 1. IF関数を使って各条件に対応する式を作成します。 2. AND関数を使って複数の条件を組み合わせます。 3. 各条件に対応するVLOOKUP関数の範囲や列を指定します。 4. IF関数を合体させた式を作成します。 上記の例では、条件と式が複数ありますので、それぞれの条件に対応するVLOOKUP関数の範囲や列を適切に指定する必要があります。また、AND関数を使って各条件を組み合わせ、合体させた式を作成します。
回答を見る
  • ベストアンサー

IF関数の複合

下記の4つのIF関数を合体させたいのですが、どうすればいいでしょうか? =IF(AND(BI11=200,BA9>=30),VLOOKUP(BI13,BQ3:CI17,16,0),VLOOKUP(BI13,BQ22:CI37,16,0)) =IF(AND(BI11=200,60=>BA9>30),VLOOKUP(BI13,BQ3:CI17,17,0),VLOOKUP(BI13,BQ22:CI37,17,0)) =IF(AND(BI11=200,120=>BA9>60),VLOOKUP(BI13,BQ3:CI17,18,0),VLOOKUP(BI13,BQ22:CI37,18,0)) =IF(AND(BI11=200,150=>BA9>120),VLOOKUP(BI13,BQ3:CI17,19,0),VLOOKUP(BI13,BQ22:CI37,19,0))

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

数式の意味が、BI11が200でBA9が150以下の場合はBQ3:CI17の範囲から、それ以外の場合はBQ22:CI37の範囲からBI13の値を検索し、BA9の値が30以下(提示された数式は30以上になっていますが)の場合は16列目、30を超え60以下は(提示された数式は範囲の部分が正しい数式ではありませんが)17列目、60を超え120以下は18列目、120を超え150以下は19列目の値を引っ張ってくるという条件なら、以下のような数式になります。 =VLOOKUP(BI13,IF(AND(BI11=200,150>=BA9),BQ3:CI17,BQ22:CI37),MATCH(BA9-0.001,{0,30,60,120},1)+15,0)

NOBU_O
質問者

お礼

回答ありがとうございます。 間違ってる質問なのに(^^;)正確に答えていただいてうれしいです。 すごく助かりました、ありがとうございます。

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

最初の式中の「BA9>=30」は「30>=BA9」の間違いでしょうか? で、あればこんな感じで如何でしょう。 =IF(AND(BI11=200,150>=BA9),VLOOKUP(BI13,BQ3:CI17,16+INT((BA9-1)/30),0),VLOOKUP(BI13,BQ22:CI37,16+INT((BA9-1)/30),0) BA9の値が30.1などの少数も有り得るなら上記式中2か所の「BA9-1」の1を0.001などの小さな値にしてください。

NOBU_O
質問者

お礼

回答ありがとうございます。 少数の場合も教えていただいて勉強になりました。 ありがとうございました。

関連するQ&A

  • VLOOKUP関数とIF関数

    だれか、アドバイスをください!! VLOOKUP関数とVLOOKUP関数にIF関数がひっついているものの意味がわかりません。 マイクロソフトオフィスエキスパートの問題を練習しています。 少しはVLOOKUP関数については、わかりはしましたが、それにIF関数がつくと????です。 よろしくお願いします。

  • VLOOKUP関数とIF関数

    VLOOKUP関数が全体的に見えてきません。何をこれでしたいのか? また、VLOOKUP関数でIF関数を使うところなのですが、これはエラーを表示させないために使用することは、理解できました。 しかし 「=IF」をここで使用することで、エラーがなくなるのでしょうか?

  • IF関数についておしえてください。

    お世話になります。 作成している表の中で、利用しようとおもっている関数について教えてください。 A1セルに下記のようなIF関数を作成しました。 =IF(AND(B2>=1,C2<=0),"○",IF(AND(C2>=1,B2<=0),"○",IF(AND(B2>=1,C2>=1),"○",IF(AND(B2<=1,C2<=1),"")))) B2セルは別シートからVLOOKUPを利用して検索してきて、数字を表示させているセルのため、 該当しない場合”#N/A”と 表示されるところがありました。それで、”=IF(ISERROR”を利用して、#N/Aと表示される場合、空白で表示される数式にしたところ、今度はA1セルが条件にあっていないのに”○”と表示されるようになりました。≪”B2=空白(”#N/A”),C2<=1の場合にあたるのだと思います。≫ *B2セルを”空白”ではなく”0”で表示させるようにしても同様に”○”となりました。 A1セルに、  B2>=1,C2<=0の場合”○”  C2>=1,B2<=0の場合”○”  B2>=1,C2>=1の場合”○”  B2<=1,C2<=1の場合"空白" で表示できる方法をご存じの方、ご教示お願いいたします。 簡単なことなのかもしれませんが、エクセル関数初心者のため、大変困っております。 うまく、不明な点を説明できていませんでしたら、申し訳ございません。何卒 よろしくお願いいたします。

  • Excel IF関数について

    いつもお世話になります。 Win XPpro OFFICE2003です。 ここの過去ログを見てよく関数を意味がよくわからないまま拝借してるんですが =IF(AND(O7>=1,A<=19),0,IF(AND(O7>=20,O7<30),20,IF(AND(O7>=31,A<=100),50,IF(AND(O7>=101,O7<500),100,IF(AND(O7>=501,A<=1000),150,IF(AND(O7>=1001,O7<3000),200,IF(AND(O7>=3001,A<=10000),250,))))))) なぜか#NAME?になります。 ネストが7つまでということなので省略したんですが 1~20なら0 21~30なら20 31~100なら50 101~500なら100 501~1000なら150 1001~3000なら200 3001~10000なら250 10001以上なら”要相談” としたいだけなんですが。 最近VLOOKUPをみなさまのおかげで活用できるようになり別シートに入れたかったんですがあまりの多さと重さに断念しました。IF関数だけではなく他に方法があればぜひご教授下さい。 よろしくお願い致します。

  • IF関数

    みなさん教えてください。 下記のIF関数で、正確な数値が出ません。ドコを訂正すればよろしいでしょうか?Vlookupだと参照する数値を入力する必要がある為、IF関数で入力したいと思っております。 検索値(E3) 計算式 これ以下 引数 1000 9700 3000 17500 5000 21000 10000 26900 15000 35300 20000 43600 25000 51300 30000 59400 35000 67300 40000 75300 45000 83500 50000 91400 55000 99500 60000 106600 これは数値がおかしくなって駄目でした。 =IF(E3<1000,IF(E3<3000,IF(E3<5000,IF(E3<10000,IF(E3<15000,9700,17500),21000),26900),35300),IF(E3>20000,IF(E3>25000,IF(E3>30000,IF(E3>35000,IF(E3>40000,43600,51300),59400),67300),75300),IF(E3>45000,IF(E3>50000,IF(E3>55000,IF(E3>60000,83500,91400),99500),106600)))

  • IF関数が長くて、実行できない。

    関数初心者です。Excel2003を使用しております。 ~目的~ IF関数が長くなり、実行することが出来ない。 VLOOKUP関数の複数範囲の中から検索できる数式を作成したい。 ~状況~ ・VLOOKUP関数で複数の範囲を指定している。 ・各範囲は_コード表という名前の定義付けをしており、_コード表1~12まである。 ・_コード表12までの複数範囲の中から検索できる数式を作成したい。 =IF(ISERROR(VLOOKUP(B5&"_"&C5&"_"&D5,_コード表1,5,0)),IF(ISERROR(VLOOKUP(B5&"_"&C5&"_"&D5,_コード表2,5,0)),IF(ISERROR(VLOOKUP(B5&"_"&C5&"_"&D5,_コード表3,5,0)),"",VLOOKUP(B5&"_"&C5&"_"&D5,_コード表3,5,0)),VLOOKUP(B5&"_"&C5&"_"&D5,_コード表2,5,0)),VLOOKUP(B5&"_"&C5&"_"&D5,_コード表1,5,0)) 上記の数式で検索が出来るのですが、 _コード表12までになると、関数が長すぎて実行できません。 何か良い方法はありませんでしょうか。 ご回答をお待ちしております。

  • IF関数で閏年を抽出

    ExcelでA1に生年月日が入っていて 「閏年生まれの場合+1、それ以外は+2」 としたいのですがどの様な関数との組み合わせがよろしいのでしょうか? B1セルに =IF(AND(16163<=A1,A1<=16527),A1+1,IF(AND(17624<=A1,A1<=17988),A1+1,IF(AND(19085<=A1,A1<=19449),A1+1,IF(AND(20546<=A1,A1<=20910),A1+1,A1+2)))) ですとIFの限界が来たときにエラーになってしまいます。 過去質問にも似たようなものがありましたが、この場合でもMATCHやVLOOKUPを使うと上手くいくのでしょうか? よろしくお願いいたします。

  • エクセルでIF関数について

    VLOOKUPとIF関数を組み合わせて計算した時の事なのですが。。。 VLOOKUP関数を使って商品コードを入れたら商品名がでるように 数式を作成しました。すると商品コードに値が入っていないと エラー値が出てしまいますよね?そこでIF関数を用いて商品コード欄に 値が入っていなければ、つまりは空白であれば商品名の欄には空白を 表示せよ、そうでなければVLOOKUP関数を実行せよというふうに組み合わせ たのですが・・・エラー値が消えないのです!! オートフィルでコピーをするとその下からはちゃんと正常に空白表示に なるのに・・・・! 私は講師をしているのですが、上記のような症状になるのは2台だけ であとのパソコンは正常です。ということはエクセル自体に不具合が 生じているのかな?と思ったりしました。ということはもう一度インスト するべき?など等考えたのですが、どなたかご指導お願いします!!

  • これはエクセルのIF関数を使ってできますか?

    こんばんは。 エクセルで悩んでいます。 A列に、"大学"・"高校"をオートフィルタで選べるようにして、 B列に、大学なら1~4の数字、高校なら1~3の数字を入力します。 そして、C列に、A1="大学"かつB1=1なら30(ポイント)、         A1="大学"かつB1=2なら40、         A1="高校"かつB1=1なら20、         それ以外は空白 というような自動計算式を作りたいと考えています。 この場合、IF関数とAND関数で作成すればできますでしょうか。下記のような式を作成しましたが、うまくいきません。 =IF(AND(A1="大学",1),30,IF(AND(A1="大学",2),40,IF(AND(A1="高校",1),20,""))) 説明が下手で申し訳ありませんが、 なんとかアドバイスいただければ幸いです。 よろしくお願いします。

  • IF関数にて

    ある検定問題集の問題なんですが、県別人口データという表があって、その中から男の人口が1500000以上で、女の人口が2000000以上の県の数を関数を用いて求めなさい。ただし、countif関数、データベース関数を利用せず、配列数式を用いて求めなさい。という問題があります。 で、{=sum(if(男の人口>=1500000,if(女の人口>=2000000,1,0)))}というのが答えなんですが、 {=sum(if(and(男の人口>=1500000,女の人口>=2000000),1,0)))}とした場合、エラーを出します。 男の人口が●人以上、女の人口が●人以上という二つの条件をともに満たす場合、and関数で出せたと思ったのですが、なぜandを使うとエラーが出るのでしょうか?

専門家に質問してみよう