• ベストアンサー

Excel関数IFの循環参照について

お世話になります。 IF関数で、c1のセルに =IF(a1>=90,b1-1,(IF(a1>=80,b1-2,b1-3))) という式を作りました。 b1の値によって、c1は -1 等になりますが、c1の最低値は 0 にしたいのです。 e1 に、この結果を表示し、c1 は e1 を参照すれば可能ですが、外の方法は無いでしょうか?

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

  • ベストアンサー
  • gimmick
  • ベストアンサー率49% (134/270)
回答No.4

MAX(...と書こうとしたら既に回答されてしまった。 それはさておき、「B1-」をまとめる書き方もあります。参考までに。 =MAX(0,B1-IF(A1>=90,1,IF(A1>=80,2,3)))

hawk-k
質問者

お礼

実は、この式はもっと長くて、その一部分について質問させていただきました。おかげさまで、短く整理できます。ありがとうございました。

その他の回答 (3)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

質問にある式を使って、 =MAX(IF(A1>=90,B1-1,(IF(A1>=80,B1-2,B1-3))),0) としたらどうでしょうか。

hawk-k
質問者

お礼

ありがとうございます。MAXは使用したことが無かったので、参考になりました。

  • 2002pon
  • ベストアンサー率48% (42/87)
回答No.2

こんにちは =IF((IF(a1>=90,b1-1,(IF(a1>=80,b1-2,b1-3))))<0,0, IF(a1>=90,b1-1,(IF(a1>=80,b1-2,b1-3)))) でOKでは?

hawk-k
質問者

お礼

ありがとうございます。

  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.1

算式が長くなりますが、 =IF(A1>=90,IF(B1-1<0,0,B1-1),IF(A1>=80,IF(B1-2<0,0,B1-2),IF(B1-3<0,0,B1-3))) とすれば最低値が0になります。

hawk-k
質問者

お礼

ありがとうございました。

関連するQ&A

  • 一つのセルでIF関数を二つ使いたい

    二つのセルの値を割って、%を表示させるために、三つ目のセルには 「=1-(B1/A1)」を入れていたのですが、そこに、二つのセルが空白の時にはエラー表示にならないようにIF関数を使い、三つ目のセルは 「=IF(ISBLANK(A1),"",(1-(B1/A1)))」 という数式にしました。 その数式にさらに、もし二つのセルの値が「0」の時には、結果を「0%」として表示させたくて、三つ目の数式の中にもうひとつのIF関数を同時に使いたいのですが、 一つのセル内に、IF関数を使って結果をうまく表示させるには、どのような数式にすれば良いでしょうか??

  • IF関数でしょうか?

    IF関数だと思うのですが、セルA1に仮に数値30と入っています。で条件としてセルB1が0.2の場合にはA1(値30)に1.1を掛けます。ただB1が0.3の場合はA1(値30)に0.9を掛けます。B1が0.4の場合にはA1(値30)に0.7を掛けます。同じ様にB1が0.5の場合にはA1に0.6を掛けます。その値をC1に表示したいと言う場合、C1の数式はどのように描けばよいのでしょうか?

  • EXCEL2007での関数について

    すみません、関数について教えてください。 図のように、セルC(=B*0.9)からセルE(=D*0.9)の値を引いてセルFに数字を出したいのですが、 セルCが空白の場合は、セルBの数字を参照してセルFに数字を出すとゆう関数ってありますか? IF関数の勉強不足により、それが可能かどうかがわかりません。 補足:『通常は、セルC-セルE=セルF、でも、セルCが空白の場合は、セルB-セルE=セルF』といった感じの関数があれば教えてくださいm(_ _)m

  • EXCELのIF関数 複数のセルを参照することはできますか?

    以下のようなことをIF関数もしくは別の手段で実現できますか? 条件1)貸出時:B2を参照し、空白でなければCに"貸出中"が入る  A   |   B   |  C  | D    | E  管理番号  貸出日     STATUS  返却予定日 返却日 001    2005/11/1    貸出中  2005/11/8  条件2)E(返却日)に値があれば、Cに"返却済"を入力  A   |   B   |  C  | D    | E  管理番号  貸出日     STATUS  返却予定日 返却日 001    2005/11/1    返却済  2005/11/8  2005/11/7 つまり、条件1と2はBとEの異なるセルを参照し、 優先度 E>B と判断 Bに値が入っていても、Eに値があれば、"返却済"という値を返すようにしたいのです。 推測で次のような関数を埋め込んだところエラーになりました。。。 =IF(C2>1000/1/1,IF(I2>1000/1/1,"返却済",FALSE)"貸出中",FALSE) 基本的なところからの再学習が必要かもしれませんが、どなたか知恵をお貸しいただければ幸いでございます。

  • IF関数の組み合わせ

    A1セル 21000 B1セル 20000 引き算して1000以上なら+と表示、999以下なら△を表示したいのです。 結果はC1セルにして =A1-B1にIF関数を入れるにはどうしたら良いでしょうか? =IF(C1>=1000,"+","△") 結果 +1010 △988 組み合わせが分からないので教えて下さい。

  • 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の場合"空白" で表示できる方法をご存じの方、ご教示お願いいたします。 簡単なことなのかもしれませんが、エクセル関数初心者のため、大変困っております。 うまく、不明な点を説明できていませんでしたら、申し訳ございません。何卒 よろしくお願いいたします。

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

    エクセルの関数について教えて下さい。 セルに1と入力した場合Aと出てきて、2と入力した場合B、3と入力した場合Cとなるような計算式を入れたいのですが、どのような式を入れればよろしいのでしょうか? 別のシートから呼び出す(?)というような方法でもいいのですが、どんな式を入れればよいのか、全く分かりません。 自分で調べてみた結果、IF関数を用いるということは解りました。 『IF(A1="1","A",IF(A1="2","B",IF(A1="3","C")))』 上記のような式を入れてみて、実際に実践してみたところ、結果としては入力した数字が表示されるだけで、計算式は消えてしまいました。 どうしたらいいのか解りません。 素人故に恥ずかしい質問ですが、お知恵を貸して下さい。 よろしくお願いします。

  • エクセルIF関数(「#DIV/0!」表示)について

    エクセルを使っていて、「#DIV/0! 」 と表示される部分があり解決方法を調べてみたところ、 「DIV」は「divisor:除数(割る数)」の略であり、数字は「ゼロ(0)」では割れないために出たエラーだと知りました。 (参考URL:http://www.724685.com/weekly/qa090819.htm) 上のサイトには、「除数がゼロ、つまり計算結果が「#DIV/0!」のときは、別の表示に(たとえば空欄に)する条件式(IF文)を使えばいい」とあったのでIF関数式をあてはめたところ、一部分は「#DIV/0! 」表示でなく「0」表示にすることができました。 ただ、その IF関数を入力したセル(セルC1と仮定)を参照して新たな関数式を作ったとき、値を出すセルがまた「#DIV/0! 」となってしまいます。 最初に入力した式→ =IF(A1=0,"0",B1/A1) 次に入力した式→ =IF(C1=0,"0",100/C1/100*1000/10000) C1のセルを手入力で「0」と入力すると「#DIV/0! 」 表示にはなりませんでした。 これは、式を入力したセルを新たな計算式には反映できないということなのでしょうか? 「0」と手入力すると最初の式も消えてしまい、なおかつ手間なので何か解決方法はありませんでしょうか。 つたない説明ですが、どなたかアドバイス頂ければ嬉しいです。

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

    エクセルの数式でIFを使って、下記のような複数の条件の時に、それぞれの計算結果を算出する式を作りましたが、単純に条件を並べただけで(IFとAND使用)、式が長くなってしまいます。これを短く出来る式の方法はありますでしょうか?(他の関数を使用する方法など)また、エクセルの関数の数式を応用編まで詳しく調べられるサイトをご存知でしたら教えてください。 (条件の例)R1への式入力 (1)A1がに"A"か"B"かを入力 (2)A1がAで、B2の値がC3以下の時、R1には8、C3より大きい場合は、B2-C3の値を表示 (3)A1がBで、B2の値がC3以下の時、R1には5、C3より大きい場合は、(B2-C3)/2の値を表示 といった条件を満たすものが作成したいです。 ちなみに私が作成した式は、 =IF(AND(A1=A,B2<=C3),8),IF(AND(A1=A,B2>C3),B2-C3,・・・・)って感じです。こんな方法しか無いでしょうか?

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

    IF(A1-B1-C1-D1-E1-F1>0,A1-B1-C1-D1-E1-F1,0) 上の式は「A1-B1-C1-D1-E1-F1」が0より大きく真の場合その結果を、偽の場合0という式です。その結果の部分に前提となる式を繰り返しで記していて見た目非常に長くなります。別のセルに代入して参照以外の方法で真の場合を短くする手法は無いでしょうか?

専門家に質問してみよう