• ベストアンサー

エクセルの式 =(A1>A2)*5*10

エクセルの式でタイトルのような式を見ました。 初めて見たものです。 自分なりに理解したことは A1>A2 を満たす時、5*10 の数値を持ってくる。(5*10で50になる) A1>A2 を満たさない場合、0になる。 通常、 =(A1>A2) という式ではTRUEかFALSEになるのですが「*」で挟むと条件を示す式になるようなのです。 ここまでが自分なりにわかったことです。 このように関数を使わないで条件を示す式があるということに少し驚きました。また新たな発見にちょっと勉強してみたいと思ったのですが、このような式を紹介しているサイトがあれば是非教えてください。 自分なりに探してみたのですが、見つかりませんでした。 宜しくお願いします。

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

  • ベストアンサー
  • A88No8
  • ベストアンサー率52% (834/1602)
回答No.3

こんにちは  事例はプログラミングの世界ではプログラミング言語によって扱いが異なるのでお奨めできないのですがエクセルの世界ではよく使われます。 >通常、 =(A1>A2) という式ではTRUEかFALSEになるのですが「*」で挟むと条件を示す式になるようなのです。  書かれているように論理式といってTRUE(真=成立)かFALSE(偽=不成立)の2値のいずれかが返されます。  プログラミング言語の内部ではこの2つの値を0と1または0と-1、あるいは1と-1といった値で区別しています。  たまたまエクセルはシステム内部でTRUEが1、FALSEを0で持っているため上記のような式が成り立ちます。  どの言語でも成り立つように書くなら例えば IF A1>A2 THEN LET B1=5*10 ELSE LET B1=0 のような構文(BASIC言語の場合)にするのが普通です。  

hatena_orz
質問者

お礼

遅くなってしまい申し訳ございません。 そうだったんですね。スッキリしました。 BASIC言語にも興味を持ちました。奥が深いですね。。。 ありがとうございます!!!

その他の回答 (3)

  • yone_sk
  • ベストアンサー率34% (58/167)
回答No.4

TRUE = 1 FALSE = 0 で扱われます。 逆に VLOOKUP() などを使うときに  VLOOKUP(検索値, 範囲, 列番号, 検索の型) (1) = VLOOKUP(A1, B:C, 2, FALSE) (2) = VLOOKUP(A1, B:C, 2, 0) のような書き方もできます。 ((1) と (2) は同じ意味です。)

hatena_orz
質問者

お礼

私はいつも関数を使っているので(2)のやり方なんですが、今回初めてそんなことができるってことを知りました。。。 ありがとうございます!

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

実際やってみたところ、どうも不等号式だけだとhatena_orzさんのいうとおりTRUEかFALSE表示になりますが、そのあとに続けて数式がついた場合は、TRUEは1、FALSEは0と認識されるようです。よって、条件を満たす場合は1*5*10=50となり、そうでない場合は0*5*10=0となるようです。 私も初めて知りました。エクセルはおくが深い。

  • pasocom
  • ベストアンサー率41% (3584/8637)
回答No.1

私が自分で試したところ、おっしゃるようにはなりませんでした。 A3セルに「=(A1>A2)*5*10」を入力し、 A1セルに0、A2セルに3を入れた場合 → A3セルは、0 A1セルに1、A2セルに3を入れた場合 → A3セルは、50 A1セルに5、A2セルに3を入れた場合 → A3セルは、50  ・・・。 おかしいですね。そもそもご提示のような式は聞いたことないのですが。

関連するQ&A

  • Excelの数式バーより条件式関数について

    Excelを勉強しております。 条件式関数IFで数式バーよりTRUEやFALSEに処理を追加したいのですが出来ますでしょうか。 例)=IF(A1=A2,"OK","NG" セルの色を変更する)                   ~~~~~~~~~~~~~~~~~~~ 実際に上記の例で試したのですがエラーになります。 他の条件式関数でもOKです。 ご教授よろしくお願いします。

  • エクセルの関数式を教えて下さい

    下記の条件を設定したいのですが、エクセル関数はどのような式になりますか? A1に入力したい式: 条件: IF(B1 = 0 or C1 = 0)→ None と入力 False D1の数値が 0 →draft 1 →archive 2 →データなし 5→ published 9→ データなし と入力。

  • 【エクセル】セルの情報

    エクセルで、セルの内容が「数値」か、「数式あるいは関数」かを返す関数ないし方法があれば、教えてください。 TYPE, ISTEXTなどのヘルプを見たのですが、そのような機能はないようです。 (同じく「数値」として返されます) 具体的には、 単なる数値の「100」などが入力されていれば「TRUE(FALSE)」を返す、 他のセルからの参照(=A1*A2など)であれば「FALSE(TRUE)」を返す、 というようなことをしたいのですが。

  • エクセルの関数でTRUE False 数値

    エクセルの関数でTRUE とかFalseがありますが、 これらを数値にすると、 Falseは0で、 TRUEは何になるのでしょうか?

  • 3っの条件式の書き方をお聞きします。

    複数条件の式の書き方をお聞きします。 A.B.C の3っの条件式です。 Aが空白のときtrue、falseを○、 Bが空白のときtrue、falseを△、 Cが空白のときtrue、falseをとします。 A B C D E F G 1○△=false:false:false=◇ 2○△=false:false:false=◇ 3○△=false:false:false=◇、 trueを1、falseを0とし、 これを DEF G 111:空白"" 110: 101:△ 011:○ 100:И 010:Е 001:Ш 000:◇ と表示したときの、 この場合のG 1.2.3の式を教えていただきたい。 式が長すぎてどうすれば良いのか分かりません。 A.B.C3っの条件式は、どう書くのでしょうか。 エ2010。

  • Excelの関数式を教えてください。

    C1に入るExcelの関数式を教えてください。 A1には甲、乙、丙が入ります。B1は数値です。C1に数値の1.2%増しか1.2%減の数値を入れたいと思います。 条件は次の通りです。 『A1が甲または乙のとき、C1に1.2%増しの数値。A1が丙のとき、C1に1.2%減の数値。』 何卒、よろしくお願いいたします。

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

    よわい70歳弱のもうろくジジーです 教えてください 郵便番号付き住所とついてない住所の列から郵便番号を取りだす式を調べているうちに次のような式が見つかりました。 =IF(ISNUMBER(LEFT(A1,1)*1),LEFT(A1,8),"") このうち、 ISNUMBER(LEFT(A1,1)*1)の意味を教えてください。 ISNUMBER関数は、対象の文字列が数値の場合にTRUEを返し、それ以外の時はFALSEを返すと言うことまではわかったのですが 左に数値?(郵便番号は数値か?)を含むセルから数値を判定する時に 引数として「LEFT(A1,1)*1」すなわち「A1セルの左から1文字」に「1」を乗じると「TRUE」を返し、乗じない場合「FALSE」を返すのかを教えてください。 説明不十分の場合補足しますよろしく御願いします

  • エクセルのネストについて

    エクセルでアンケート表を作った際に、2つのセルの値の内容に対して2つとも同じ値の場合は◎、それ以外は空白としたい場合にIF、AND関数を使っての入力はどうしたらよいでしょうか? 検証1 検証2 結果 TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE   ◎   わかりにくかったらすいません。上記のような感じで結果の欄への関数を教えてください。 IF関数について今ひとつ理解できておらず教えていただければ幸いです。 よろしくお願いします。

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

    エクセル関数式を教えてほしいのですが、 あるセル値Aが100未満の場合は、セルを空白(表示なし)に設定し あるセル値Aが100以上の場合は、他のセルB値の数値を表示させる。 初心者で関数式がわかりません、誰か教えてください。 お願いします。

  • ifの条件式 !について

    以下処理があります。 1.宣言、初期化 var A = new Array(); A[1] = A[2] = A[3] = false; 2.条件判断 if(!A[1] && !A[2] && !A[3]){ A[1] = $A[2] = A[3] = true; }else{ 処理 } } 質問:宣言⇒ifに処理が流れた時、条件式の内容は ・A[1]の否定⇒A1は、falseが格納されているので、否定でtrue。 ・A[2]の否定⇒A1は、falseが格納されているので、否定でtrue。 ・A[3]の否定⇒A1は、falseが格納されているので、否定でtrue。 よって、 if(true && true && true){ A[1] = $A[2] = A[3] = true; } で結果、配列の1~3は、全てfalseから、trueに変更されるという考えで間違っていないでしょうか? よろしくお願いします。

専門家に質問してみよう