• ベストアンサー
  • 困ってます

関数について

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

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数97
  • ありがとう数5

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

  • ベストアンサー
  • 回答No.3
  • asciiz
  • ベストアンサー率71% (5092/7083)

>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)) となり、これでも構いませんが、カッコの対応が見づらかったりしますよね…?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • IF関数を教えてください

    いつもお世話になっています。 A1 B1 C1共に空白なら「空白」 A1+B1+C1が空白以外(数字)であれば「その値」を返すという関数にしたいのですが、今=IF(A1+B1+C1=0," ")にしましたが、数字の時にその値を返す式にできません。(FALSEになります) もしできましたら、解説付きで教えていただけませんでしょうか。 よろしくお願いします。

  • エクセルの関数を教えてください。

    パソコン初心者です。 関数の式を教えてください。IF関数だと思うんですが、 A1のセルには 20051221~20060620の数字が入っています。 B1のセルにA1の20051221~20060120の数字だったら180100と            20060121~20060220の数字だったら180200と            20060221~20060320の数字だったら180300と             20060321~20060420の数字だったら180400と            20060421~20060520の数字だったら180500と            20060521~20060620の数字だったら180600と 表示されるにはどのような式がありますか? 是非、教えてください。

  • Excel 長すぎるif関数

    こんにちは。Excelを使って、条件によって表す表示を変える場合、 例えばa1のセルには0~100までの任意の数字を入れるとして、b1のセルにa1の数字に応じていろいろな表示をしたい場合(具体的には100ならAを表示、90~99ならB、70~89ならC、55~69ならD・・・といったように)、if関数を使うと思いますが、 =if(a1=100,"A"1,if(a1>=90,"B",if(a1>=70,"C",if・・・・)))というように長々と続きますね。条件が少ないうちはいいのですが、条件が多くなると、大変複雑な式になり、入力もしづらいし、頭も使うし、閉じる括弧の数もわからなくなるし、作成に時間もかかりますよね。2つ以上の条件が重なる(例えばA1が90~99の範囲でかつa2がAならb1にB1と表示するなど)など複雑になってくるともうお手上げです。 これらを短時間で要領よく作成する方法はないでしょうか?次の観点で教えてください。 1 if以外の良い関数はあるか?または良い機能はあるか?それとも複雑であってもif関数が妥当なのか? 2 (if関数が妥当であるとして)複雑なif文の作成を簡単にできる方法があるか?あるいはそんなソフトがあるか? 3 やっぱりそういうのはVBAとかで作った方がいいのか?(できれば使いたくないのですが。)

その他の回答 (4)

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • IF関数について(複合条件)

    B1のセルに入力する内容なのですが、 A1のセルが (1)0以下ならばB1も0 (2)0<A1<243576ならばそのままA1の値を使用 (3)243576以上ならB1も243576 という条件の式を入れたいのです。 IF関数をいろいろいじってみたのですが、どうにもうまくいきません。 詳しい方いらっしゃいましたら、お願いします。

  • 関数を数値に変換することはできますか?

    たとえばA1セルに=B1+C1という関数を組んだとします。 B1に1、C1に2を入力します。結果A1は3という数字が表示されますが、その後B1、C1の値を変えれば、結果はまた変わってしまいますが、 一度結果がでたら、その数字をA1の値に残す方法はありますか。

  • index関数について

    はじめまして。 たとえば、A1からA10に1から10までの数字を入力するとして、A1に5を入力したらB1からB10までがすべて5を表示して、A2に7を入力したらB2からB10までが7を表示して、A3に4を入力したらB3からB10までが4を表示して、A3を入力した時、前に入力したB1B2の数字が消えないようなindex関数を作っていますが、なかなかできず悩んでいます。 このような式はindex関数ではなくて、他の関数を使うのでしょうか? もしご存知の方がおられましたら、よろしくお願いします。

  • Excelの重複した場合の表示関数について

    現在、A1、B1で同じ数字などが入力された場合、D1に×印が表示されるようD1に「=IF(A1=B1,"×","○")」の関数が入っています。 次にA1、B1、C1のいずれかに同じ数字などが入力された場合、D1に×印が表示されるようするにはどうしたら良いのでしょうか。 よろしくお願いします。

  • 式で入力されたセルの内容の値を取り出す関数

    A1に2、B1に3、C1に =A1*B1 という式を入力します。当然C1は、6と表示されますが、式ではなく6という数字のデータをD1に表示したいのです。 この場合、C1をコピーしてD1に形式を選択して値のみをペーストすればよいのですが、A1、B1に数字を入力したのと同時にD1に式ではなく、値を表示させることはできますか。

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

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

  • Excelの関数『IF』にて・・・

    EXCELにて、関数IFを使って一覧表から 自動入力をしたいと考えています。 例えば、以下のようにしてセル『C1』の数字に 応じて、自動を試みたい時 =IF($C$1>80,"=A1",IF($C$1>70,"=B1","=C1")) =A1,=B1,=C1 の場所を文字列としてしか読み取ってくれません =A1,=B1,=C1では無く=A1,=B1,=C1のセルに入力されてる 数式(他のセルの値)を、表示したいんですが どのようにすれば可能でしょうか? 何度やっても「=A1」と、そのまま文字列として出て来ちゃいます。

  • 続 エクセル イレギュラーなSUM関数

    先程こちらでhttp://oshiete1.goo.ne.jp/qa5428194.html イレギュラーなSUM関数を質問しお答えいただきましたが 新たに問題が出ましたのでもう一度質問いたします *さきほどの質問の内容はこちらです* A列B列があり A5にはA1~A4の合計のSUM関数が入っています。 B5にもSUM関数を入れたいのですが B1~B4はイレギュラーな事があった場合のみ数字を入力し B5にはB1~B4に入力された数字の合計と B列に何も入力されていない隣のA列の合計を表示させたいのです。 例えるなら A1~A4に3を入力 A5はSUM関数がはいっているので12が表示されているとして B列はB1~B3は未入力 B4に7が入力された場合 B5にはA1~A3とB4の合計の16が表示されるようにしたいのです。 B4に7を入力したので隣のA4の3は合計しないという事です。 *回答はこちらです* 回答1 配列関数で =SUM(IF(B1:B4="",A1:A4,B1:B4)) と入力して、Ctrl+Shift+Enterで決定したら、式が{}でくくられて配列関数になります。 式の意味は B1~B4が空白の場合は、A1~A4の値を、それ以外はB1~B4の値を出して合計 回答2 =SUMPRODUCT(NOT(B1:B4)*A1:A4+B1:B4) あたりですかね。not関数のかわりにisblank関数の方が判りやすい かもしれないけど。 TRUE/FALSEの論理値は、四則演算にぶち込むと1/0の数値として扱 われます。また、空は四則演算にぶち込むと0の数値として扱われ ます。だから、「B列が空である」がFALSEならA列とのかけ算はゼ ロになりB列の値が加算され、TRUEならA列の値に1をかけて0を足し たことになります。後はそれを1行目から4行目にわたって配列とし て計算して合計してくれるsumproduct関数に放り込むだけ。 問題はこの方法だと B列に何も入力しない場合、A列の合計がB5に出て来てしまいます。 B列に何も入力しない場合、B5にも何も入力しないようにしたいのです。 ちなみに先程は記述しませんでしたが B列には自動で数字に〔〕が付くようにユーザー定義で指示していて B5はB列が未入力で合計が0でも〔0〕と表示されないように ユーザー定義で "〔"#"〕";;;が入っていてます。 やりたい事をまとめると ●B列には自動で数字に〔〕を付ける ●B1~B4に数字が入力された場合はB5に  B1~B4の合計とB列に何も入力されていない隣のA列の合計を表示させたい  がB列が未入力ならB5に何も表示しない ややこしくて申し訳ありません。 そして確認不足で申し訳ありませんでした。 どうぞ宜しくお願い致します。

  • IF関数について・・・

    A1のセルに数字を入力したら B1のセルに次の表示されるようにしたい場合 IF関数をどのように使えば良いか教えて下さい。 「○○○A1○○○」    *○は文字でA1は数値です。

  • IF関数

    教えて下さい。 エクセルのIF関数について まずC1にA1-B1を計算させます。 そのときに、C1の値がマイナスの場合は0表示するようにし、プラスの場合はその値が表示されるようにしたいのです。 具体例 A1=10、B1=12 の場合C1=0     A1=10、B1=8  の場合C1=2 となるように! C1に入力する計算式を教えて下さい。