電子書籍の厳選無料作品が豊富!

エクセルの式でタイトルのような式を見ました。
初めて見たものです。

自分なりに理解したことは
A1>A2 を満たす時、5*10 の数値を持ってくる。(5*10で50になる)
A1>A2 を満たさない場合、0になる。

通常、 =(A1>A2) という式ではTRUEかFALSEになるのですが「*」で挟むと条件を示す式になるようなのです。

ここまでが自分なりにわかったことです。
このように関数を使わないで条件を示す式があるということに少し驚きました。また新たな発見にちょっと勉強してみたいと思ったのですが、このような式を紹介しているサイトがあれば是非教えてください。
自分なりに探してみたのですが、見つかりませんでした。

宜しくお願いします。

A 回答 (4件)

こんにちは


 事例はプログラミングの世界ではプログラミング言語によって扱いが異なるのでお奨めできないのですがエクセルの世界ではよく使われます。
>通常、 =(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言語の場合)にするのが普通です。
 
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/11 21:04

TRUE = 1


FALSE = 0

で扱われます。


逆に VLOOKUP() などを使うときに
 VLOOKUP(検索値, 範囲, 列番号, 検索の型)

(1) = VLOOKUP(A1, B:C, 2, FALSE)
(2) = VLOOKUP(A1, B:C, 2, 0)

のような書き方もできます。
((1) と (2) は同じ意味です。)
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/11 21:06

実際やってみたところ、どうも不等号式だけだとhatena_orzさんのいうとおりTRUEかFALSE表示になりますが、そのあとに続けて数式がついた場合は、TRUEは1、FALSEは0と認識されるようです。

よって、条件を満たす場合は1*5*10=50となり、そうでない場合は0*5*10=0となるようです。
私も初めて知りました。エクセルはおくが深い。
    • good
    • 0

私が自分で試したところ、おっしゃるようにはなりませんでした。


A3セルに「=(A1>A2)*5*10」を入力し、
A1セルに0、A2セルに3を入れた場合 → A3セルは、0
A1セルに1、A2セルに3を入れた場合 → A3セルは、50
A1セルに5、A2セルに3を入れた場合 → A3セルは、50  ・・・。

おかしいですね。そもそもご提示のような式は聞いたことないのですが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!