• 締切済み

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

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

みんなの回答

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

専門家に質問してみよう