• 締切済み

EXCEL IF関数、数式の書き方で

仮に、 「もし論理式の計算結果が>0の場合は1を、そうでない場合は計算結果をそのまま表示」 としたい場合 IF([論理式]>0,1,[論理式]) となりますが、気分の問題なんですが、どうもこの一つの数式の中に同じ論理式が二重に入っているのがイヤなんですよね。スマートじゃないと言うか。ホント、気分の問題なんですが。 しかもこの論理式がけっこう長いので二重に入ると数式全体の長さがさらに長くなってしまい、それがどうも気に入らないのです。 「もしそうでなかったら計算結果をそのまま表示」というのは無理なんでしょうか? よろしくお願いします。

noname#220917
noname#220917

みんなの回答

noname#140971
noname#140971
回答No.3

まあ、チョット所望のやり方とはほど遠いかも知れませんが・・・。 A3=IF((A1*A2)>0,1,A1*A2) A1=0 A2=10 A3=0 A1=1 A2=10 A3=1 こういう結果を得るのに A1*A2 を2度書きしたくないということ。 2度書きを無くすのは至難の技でしょう。 が、式を簡略化することは可能。 A4=IF(B1>0,1,B1) 結局は、 B1=A1*A2 と、式を記号定数みたいに別のセルで定義しているだけです。

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.2

こんにちは。  良くあることだと思います。これはExcelのワークシート関数は「1行しかかけない」という制約があるからです。  このような制約が無い普通のプログラムやVBAでは論理式の計算結果を一度変数に入れ、その変数をIF文の中で使います。  ワークシート関数ではどうしようもないので、VBAを使ってユーザ関数を作れるよう勉強されてはいかがですか。 では。

回答No.1

確かに悩ましいじょうきょうですね。 私もかつていろいろ調べましたが、 納得できる結果ありませんでした。 でみ、一旦計算結果をcellにいれ、 if([あるcell]>0, 1, [同じcell]) にすれば少々気楽になります。 いらない列を表示しなくすればなおさらです。 解決できなくて申し訳ないですがご参考に

関連するQ&A

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

    こんばんは。 IF関数とは、 =IF(論理式、真の場合、偽の場合) なんですよね? エクセル初級の問題で、 参加者数に中止と入力されている場合は「0」 参加者数が入力されている場合は「ツアー代金 ×参加者数」を計算するように数式を修正しなさい という問題があるのですが、 =IF(参加者数が入っているセル番地(例:D13)=”中止”,0,ツアー代金(例:C13)*参加者数(例:D13)) つまり、 =IF(D13=”中止”,0,C13*D13) が回答になっています。 データの表を実際に入れてないので わかりづらくてすみません。 しかし、 =IFのあと、 =IF(D13=”中止”,0,  と入力したら、真の場合と負の場合って 何をさすのですか? 論理式自体が中止の場合0と入力するように するのですか? それともこれが真の場合で、 参加者数が入力されている場合が負の場合なのですか? 教えてください!

  • IF関数で困ってます。

    すみません。 IF関数でお教えください。 IF関数を使用したのですが、ある数式を論理式に入れ、 TRUEの時、(ある数式)=14 FALSEの時、(ある数式)=21 と表示され、実際そのセルはTRUEだったのですが、 セルに現れた数字は「35」でした。 なぜ、このような事が起こるのでしょうか? 素人ゆえ、ご迷惑をお掛けしております。 どなたかお教えください。 よろしくお願い致します。

  • エクセルでIF関数の論理式に幅がある場合

    A1~A10がデータのタイトル文字を入れる欄で、そのうちひとつでも空白のセルがあればJ11に"データが揃っていません"、とアラートを出したいと思っています。 空白セルがなければとある計算式による答え(仮に"500")を表示させたい。 そこで考えたのが、 IF(AND(A1="",A2="",…A10まで続く),"データが揃っていません",(ある数式の結果500)) なのですが、論理式の部分にA1~A10まで一つづつ式を入れなくても簡単にできる方法はないでしょうか。 何箇所かに応用したいので書き直す部分が少ないほうがミスも少ないと思うんです。 よろしくお願いします。

  • エクセルのif関数で

    エクセルのif関数でこれができるのかわかりませんが、 C1~C10の中の文字列の中にA1と同じ文字列があればB1に「1」を入れ、なければ「2」を入れるということをやりたくて B1のセルに IF(OR(C$1:C$10=A1),1,2) という計算式を入れました。 関数の引数の中の数式の結果では、正しい結果が表示されてるのですが、B1のセルには間違った結果が表示されます。 また、B2以下B20まで計算式をコピーするとB11以下は#VALUE!になってしまいます。 一つ一つを見てみると、どうやらセルに正しく表示されるのはAの行とCの行が=だった場合のみのようです。 #VALUE!が表示されているセルも含めて、数式の結果では正しい結果が出ているのにセルの表示が違っているのが納得できませんが、おそらく何かが間違っているのでしょう。 間違いを教えてください。 よろしくお願いします。

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

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

  • エクセルの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関数について、皆様に質問です。 セルに入力された数値xがある数値yと同じか大きい場合は"NG"と表示し、数値aがある数値bと同じか小さい場合は"NG"と表示させたいと考えております。 IFを使って式を作成したのですが、『数式が多すぎる』というエラーになってしまいます。 具体的には、 セルB25に入力している数値が8.980の場合、 8.991と同じまたは大きい場合は"NG"と表示させたい。 同じセルB25で、8.969と同じまたは小さい場合は"NG"と表示させたい。 これをこのような式にしてみました。 =IF(B25<=9.991,"NG","",IF(B25>=9.969,"","NG")) これで『数式が多すぎる』というエラーになっています。 教えてgooで調べたのですが、解決には至っていません。 どなたかご教示いただけますでしょうか。

  • IF関数を使った数式がおかしいのですが…

    エクセルに詳しくない為、下の数式のどこがおかしいのか全くわかりません。どうかよろしくお願いします。 ・B1が「0」であればC1は「×」 ・B1が「0」以外でA1とA2の両方が「◎」ならC1は「◎」 ・または、B1が「0」以外でA1とA2の両方が「△」ならC1は「△」 ・B1が「0」以外で、A1とA2の両方が「◎」または「△」に揃っていない場合はC1は「○」 …となるようにしたいのですが、どうしてもうまく表示されません(A1が「○か△」でA2が「◎」の時は正常に表示されるのですが、A1「◎」でA2「○か△」の時にどうしても「◎」となってしまいます)。 C1のセルに入力している数式は、 =IF(B1=0,"×",IF(A1:A2="◎","◎",IF(A1:A2="△","△","○"))) です。自分なりに調べてみたもののさっぱりです。IF関数 では無理なのでしょうか…。 よろしくお願いいたします。

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

    A1に計算式が入っていて、計算結果がそこに表示されます。 その隣のセルに、A1の結果で0より小さい(いわゆるマイナス数字)場合、減少 0の場合、維持 1以上の場合は増加と表示させたいのです。 その場合のIF関数式を教えていただけないでしょうか? どうぞ宜しくお願いします。

  • IF関数が理解できませんでした。

    セル【G6】の数式を、「上記目標」が空白の場合は、「達成率」に空白を表示するように変更して下さい。 という問題があり、答えが =IF(E6=″ ″,″ ″,F6/E6) です。 しかし、表に空白の部分はありませんし、テキストにはIF関数の説明項目において、 =IF(論理式、真の場合、偽の場合) とあります。 IF関数の論理式内では真や偽の場合を示すのは「″ ″」部分ですよね。 ですが、真の場合も、偽の場合も空白で、答えは問題のどこを指してるのか、 最後にF6/E6がつく意味も全くわかりませんでした。 表には空白がないのに問題自体もどのように捉えたらよいのかもわかりません。 よろしくお願いします。