• ベストアンサー

関数について

例えばA1に数字を入力します。B1に式を入れて数字を表示したいのですが、 A1より必ず-5した数字を返したいです。 10以上なら”10” -1以下なら”0” 1~9ならそのままの値を表示したいのですが、どのような関数を入れたらいいですか? 例えば、3だと”0” 12だと”7” 30だと”10” と表示したいです。 途中までIF関数で作ってみたのですが、なかなかうまくいきません。 わかりにくくてすみませんがどうかよろしくおねがいします。

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

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.3

>A1より必ず-5した数字を返したいです。 >例えば、3だと”0” 12だと”7” 30だと”10” と表示したいです。 例の方から見ると、以下のようなことをやりたいのかと想像します。 (1) (A1-5)がゼロ以下ならば、ゼロ。 (2) (A1-5)が1~9ならば、その数字。 (3) (A1-5)が10以上ならば、10。 これをそのままif文に組み込むのでもいいのですが、式が長くなるので、次のようにしてみましょうか。 (1') A1が5以下の場合には、ゼロ。 (2') A1が6~15の場合には、5を引いた物。 (3') A1が16以上の場合には、10。 これで条件式に書く式が短くなりましたので、その通りに式を組んでみます。 if(A1 <=5, 0,        【(1')5以下なら、ゼロ】   if(A1 <= 15, A1-5,  【(2')それ以外(6以上)で、15以下なら、5を引いた物】     10          【(3')さらにそれ以外ならば、10】   ) ) これを1行で書くと、 =IF(A1<=5, 0, IF(A1<=15, A1-5, 10)) という式になります。 ちなみにもとの通り書くならば、 =IF( (A1-5) <=0, 0, IF( (A1-5) <=10, A1-5, 10)) となり、これでも構いませんが、カッコの対応が見づらかったりしますよね…?

resurface
質問者

お礼

細かく回答していただきありがとうございます。 当初私が入れようとしていた関数に近い形で答えていただいたので ベストアンサーにさせていただきました! 本当に助かりました。有難うございました。 私も質問に答えられるように勉強します^^

その他の回答 (4)

  • coave
  • ベストアンサー率0% (0/1)
回答No.5

=if(A1-5<=-1,0,if(A1-5>=10,10,A1-5))で良いのではないでしょうか

resurface
質問者

お礼

回答有難うございます。 そうです、これがやりたかったんです☆ しかし皆さんすばらしいですね。私ももっと勉強しようと思いました。 助かりました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

=IF(A1="","",MAX(MIN(A1-5,10),0)) です。 途中部分を MIN(MAX(A1-5,0),10) のようにしても同じです。 #オマケ =IF(A1="","",MEDIAN(0,10,A1-5)) とかでもできます。

resurface
質問者

お礼

回答有難うございます! いろいろバージョンあるんですね。すごく勉強になります。 MAXとか使ったことないです・・・恥

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

IF文のみだと =IF(A1>15,10,IF(A1<5,0,A1-5)) IFを使わない場合は =MAX(MIN(A1-5,0),10)

resurface
質問者

お礼

回答有難うございます。 IF使わないでも出来るんですね・・・ いやはや もっと勉強しなくては;;

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

一例です。 =IF(A1-5<0,0,MIN(A1-5,10))

resurface
質問者

お礼

回答ありがとうございます! MIN関数、使う発想がなかったです(お恥ずかしい・・・) 簡潔ですばらしいです☆

関連するQ&A