• ベストアンサー

Excelの関数について(比較演算子)

http://oshiete1.goo.ne.jp/kotaeru.php3?q=2359386 #5様の回答の =ROUND((A1+(A1=0))*(B1+(B1=0))*(C1+(C1=0)),1) のA1+(A1=0)はどのような解釈になるのでしょうか? 空欄の場合A1=0がTRUEとなり、1 空欄で無い場合A1=0がFALSEとなり、0 と考えてよいのでしょうか? 比較演算子について不勉強なもので…。 よろしくお願いします。

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

  • ベストアンサー
  • poohron
  • ベストアンサー率59% (574/971)
回答No.1

空欄でない場合はセルの値そのままに、 空欄の場合は「1」とするための記述ですね。 > 空欄の場合A1=0がTRUEとなり、1 > 空欄で無い場合A1=0がFALSEとなり、0 その解釈で大丈夫ですよ。 A1=空欄の場合、A1=0とみなされますから ご解釈された通り、(A1=0)=TRUE、すなわち(A1=0)=1です。 したがって、A1+(A1=0)= 0+1 = 1 A1=空欄でない場合、(A1=0)=FALSE、すなわち(A1=0)=0です。 したがって、A1+(A1=0)= A1+0 = A1

fukkyse
質問者

お礼

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

fukkyse
質問者

補足

早速の回答ありがとうございます。 解釈が間違っていないことが確認できました。 AND関数やOR関数が比較演算子にて行えることを知り(最近)勉強中だったもので…。 ありがとうございます。 追加質問で申し訳ないのですが =A1=0 を表示形式で「0」、「1」表示することは可能でしょうか? 標準、数値でもだめでしたし [=0]0;[=1]1;""でもだめでした。 やはり無理ですか? 対象セル「+0」や「*1」でOKなんですが…。

その他の回答 (3)

  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.4

論理式を計算演算子と組み合わせて計算式とした場合に true=1,false=0として計算できることになります。

fukkyse
質問者

お礼

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

  • poohron
  • ベストアンサー率59% (574/971)
回答No.3

> 表示形式で「0」、「1」表示することは可能でしょうか? う~ん、聞いたことがないですねぇ。 もっとも、私が知らないだけかもしれませんが。 やはり、「+0」や「*1」しか無いのでは? 書式設定は「正数;負数:ゼロ;文字列」の4種類についての設定で、 論理値についての設定は無いですからねぇ…。

fukkyse
質問者

お礼

追加質問に回答いただきありがとうございます。 計算演算子と組み合わせないと表示は無理みたいですね。 TRUE=1、FALSE=0を誰もが理解できるよう表示できないかと疑問に思ったもので…。 ありがとうございました。

  • NCU
  • ベストアンサー率10% (32/318)
回答No.2

似たような式(違うか) =IF(A1,A1,1)*IF(B1,B1,1)*IF(C1,C1,1)

fukkyse
質問者

お礼

なるほど。=IF(A1,A1,1) A1の値が、「空欄」、「0」、「FALSE」以外の数値と「TRUE]の場合「TRUE」となるのですね。参考になりました。 ありがとうございます。

関連するQ&A

  • エクセル 関数によるデータの比較について

    エクセルで、文字列の比較の行い方を教えてください。 (1)A列のA1~A100まで文字列を貼り付けます。 (2)C列のA1~A100までにも文字列を貼り付けます。 ここで、A1の文字列がC1~C100までの どこかにあれば B1がTRUE どこにもなければ B1はFALSE となるような比較を行いたいのです。 B1~B100は、どのような関数を使えば良いのでしょうか? ちなみにEXCELは2000です。

  • Excel比較関数について教えてください。

    下記のようにA列とC列を比較して、 一致した値が存在する場合、B列とC列を比較して、 E列に一致した場合は、●一致しない場合は、空欄にしたいのですが教えてください。 A列 B列 C列 D列 E列 12345 aaa 12389 bbb A2と一致したので● 12389 bbb 22222 bbb 一致しないので空欄 33333 bbb 12345 aaa A1と一致したので●

  • 演算子

    演算子 PHPでなくても、演算子は出てくると思いますが、 $a <> $b $a != $b 両方とも 「$a $bが等しくないときにtrue」ととあるwebページに書いてありますが、 <>と!=はどう違うのでしょうか。

    • ベストアンサー
    • PHP
  • 比較演算子===と!==について

    PHP初心者です。 まず、===と!==が型が同じかどうかを比較する演算子だという事は調べて分かりました。 問題は以下のソースコードに関してです。 <?php class foo { public $a = 3; } class hoge { public $a = 3; } //真偽を文字列に変換する関数 function trueOrFalse($comp) { return $comp? 'true':'false'; } //4つの比較演算子を用いた比較の結果の表示 function compareObject($var1, $var2) { print('$var1 == $var2 --'.trueOrFalse($var1 == $var2)."\n"); print('$var1 != $var2 --'.trueOrFalse($var1 != $var2)."\n"); print('$var1 === $var2 --'.trueOrFalse($var1 === $var2)."\n"); print('$var1 !== $var2 --'.trueOrFalse($var1 !== $var2)."\n"); } //オブジェクトの生成 $f0 = new foo(); $f1 = new foo(); //$f0を代入、$f2は、$f0と同じオブジェクトを指す $f2 = $f0; $h0 = new hoge(); //結果の表示 print("同じクラス、プロパティが同じ\n"); compareObject($f0, $f1); print("同じオブジェクトを参照\n"); compareObject($f0, $f2); print("異なるクラス、プロパティは同じ\n"); compareObject($f0, $h0); ?> この結果分からないのは$f0と$f1の比較で===はfalseに!==はtrueになる事です。 型が違うとは一体どういう事なのでしょうか。 また、付け足す形になりますが、$f0と$h0の比較についても分かりません。 値は両方3です。 なのに==はfalseに!=はtrueになります。 これはどうしてでしょうか。 アドバイスどうぞ宜しくお願い致します。

    • ベストアンサー
    • PHP
  • Excel比較関数について教えてください。2

    下記のようにA列とC列を比較して、 一致した値が存在する場合、B列とC列を比較して、 E列に全て一致した場合は○、一致しない場合は×にしたいのですが教えてください。 また、A列にあってC列にない場合は、×を表示したいです。 A列 B列 C列 D列 E列 1 12345 aaa 12389 aaa A1とA3が一致&B1とD3が一致したので○ 2 12389 bbb 22222 bbb A2とC1が一致したが、B2とD1が一致しないので× 3 33333 bbb 12345 aaa A3の値がC列にないので空欄 教えてください。

  • 論理演算について教えて下さい。

    基本的な論理演算について教えて下さい。 例えば、変数aにTrueを、変数bにNullを代入し、 a and b をした場合、Nullになるのは、わかるんですが、 a or b をした場合、なんでTrueになるんですか? 又、変数aにFalseを、変数bにNullを代入し、 a or b をした場合、Nullになるのは、わかるんですが、 a and b をした場合、なんでFalseになるんですか? お願いです。教えて下さい。。。 理由がわかりません。。。。

  • 論理演算について質問

    int a=1,b=0,c=0のとき a==1 && b==0 || (a==1 && b==0) a==1 && b==0 &&c==0 && b==0 の2つの論理式あったとします 質問1:&&や||は、その間にある2つの関係式や2つの関係式の論理演算の結果同士などを論理演算するものだと思います。この認識で正しいですか? 質問2:上記の論理式の後者a==1 && b==0 &&c==0 && b==0について、trueになるプロセスの認識は以下で正しいですか? a==1 && b==0 はtrue       ↓  左から2番目の&&は、左の論理式(a==1 && b==0)の演算結果であるtrueと関係式c==0を論理演算(つまり、論理演算の結果trueと関係式の2つを演算)、、結果true ↓ 左から3番目の&&は、左の論理式(a==1 && b==0 &&c==0 )の演算結果であるtrueと右の関係式b==0を論理演算(つまり、論理演算の結果trueと関係式の2つを演算)、結果true 質問3:上記前者の論理式a==1 && b==0 || (a==1 && b==0)について、trueになるプロセスの認識は以下で正しいですか? (a==1 && b==0)はtrue      ↓ a==1 && b==0 はtrue      ↓ ||は、右の論理式((a==1 && b==0))の演算の結果trueと左の論理式(a==1 && b==0)の演算結果trueを計算し(つまり論理演算の結果同士であるtrue2つを演算)、結果true

    • ベストアンサー
    • Java
  • 論理演算について質問

    最初に、前回同じ質問に答えてくださった方へ、いろいろな人から僕の仮説のコンセンサスを得たいので、再度同じ質問しますね。 int a=1,b=0,c=0のとき a==1 && b==0 | (a==1 && b==0) a==1 && b==0 &&c==0 && b==0 の2つの論理式あったとします 質問1:&&や||は、その間にある2つの関係式や2つの関係式の論理演算の結果同士などを論理演算するものだと思います。この認識で正しいですか? 質問2:上記の論理式の後者a==1 && b==0 &&c==0 && b==0について、trueになるプロセスの認識は以下で正しいですか? a==1 && b==0 はtrue       ↓  左から2番目の&&は、左の論理式(a==1 && b==0)の演算結果であるtrueと関係式c==0を論理演算(つまり、論理演算の結果trueと関係式の2つを演算)、、結果true ↓ 左から3番目の&&は、左の論理式(a==1 && b==0 &&c==0 )の演算結果であるtrueと右の関係式b==0を論理演算(つまり、論理演算の結果trueと関係式の2つを演算)、結果true 質問3:前者の論理式、a==1 && b==0 | (a==1 && b==0)について、trueになるプロセスの認識は以下で正しいですか? (a==1 && b==0)はtrue      ↓ a==1 && b==0 はtrue      ↓ |は、右の論理式((a==1 && b==0))の演算の結果trueと左の論理式(a==1 && b==0)の演算結果trueを計算し(つまり論理演算の結果同士であるtrue2つを演算)、結果true

    • ベストアンサー
    • Java
  • if文の中で否定演算子を使うことについて

    PHPの勉強をしています。 今、基礎的な内容の本とより実践的な内容の本、コードサンプルが満載の本の 計3冊で勉強しておるのですが、 たまたまなのかわかりませんが、この三冊の中ででてくるコードを見てみると、 if文の中に否定演算子、例えば IF(!A || !B) {   A、もしくはBがfalse だったのが反転してTrueになった場合の処理 }else {   A、Bどちらともtrueだったのが反転してfalseになった場合の処理 } といった条件文に否定演算子を含めたコードサンプルがほとんどです。 。。。。三冊ともこの調子なので もしかしてPHPのコーティング作法なのかな?と思いましたが ネットで検索してもそれらしい情報は見当たらず...... 自分が何がわからないのか それ自体よくわかってないのかもしれませんが IF文を使う際、条件に否定演算子を使うべきときってのがあるんだと思います。 となると、その時を判断する基準などがあるのでしょうか? 初心者なのでなにか重大な思い違いをしてるのではないかと思ってます。 なにか気づくことがあれば教えてください。

    • ベストアンサー
    • PHP
  • php と C# の ビット演算

    PHPでビット演算をしていますが、 PHPでたとえば、 c = a >> b でビット演算した値と、 C#で演算した値と aの値を大きくした場合、 4000000000以上? は結果が違ってきます。 C#とPHPではビット演算のアルゴリズムが違うのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう