- ベストアンサー
excelのtrue関数、false関数
excel2003を使っています。 true関数、false関数の具体的な使い方が分かりません。 ヘルプやネットで確認しても、 「他の表計算アプリケーションとの互換性を維持するために用意されている関数です。」 とあるだけなので、抽象的で困っています。 具体例で教えて頂けると有り難いです。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
> =TRUE()*1の演算の意味がよく分かりません。 __A__ 1 =TRUE() 2 =TRUE() 3 =TRUE() 4 =TRUE() 5 =SUM(A1:A4) としてもTRUE()がブーリアン値なので、「=SUM(A1:A4)」は計算できず0となってしまいます。 しかし以下のようにして __A__ 1 =TRUE()*1 2 =TRUE()*1 3 =TRUE()*1 4 =TRUE()*1 5 =SUM(A1:A4) 「=TRUE()*1」と計算させれば、「TRUE()」が自動的に型変換され数値として計算され「1」となるため、 「=SUM(A1:A4)」が「4」と計算できるのです。 ただし「=TRUE()*1」自体は計算式としては意味がないですが...
その他の回答 (4)
#3です。追加します。 TRUE関数やFALSE関数は直接SUM関数では演算できませんが、 =TRUE()*1 などと一度演算させれば可能です。
お礼
vizzar様、ご丁寧に有難うございます。 Accessでは True = -1 ,False = 0でexcelとは違うというのは理解できるのですが、=TRUE()*1の演算の意味がよく分かりません。 お手数ですが、もう少々詳しく教えて頂けると有り難いです。
直接の回答ではありませんが、TRUE、FALSEは1、0の数値として利用できますよ。 エクセルの場合、IF関数を使って、 =IF(A1>=30,9000.1000) と書かなくても、 =1000+(A1>=30)*8000 と書けます。 これがACCESSだと TRUE=-1、FALSE=0なので、 =1000-(A1>=30)*8000 と「+」を「-」に変える必要があります。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 あまり、そのこと自体は、Lotus1-2-3と共用しなければ、気にしなくてよいと思います。「他の表計算アプリケーション」というのは、Lotus1-2-3のことを指します。 TRUE /FALSE のことを「ブール値」といいますが、Lotus1-2-3の場合は、数値として評価しますが、Excelのはあくまでも、ブーリン値のTRUE/FALSE です。ブール値は、演算(足し算、掛け算など)をさせれば、数値には変わりますが、ブール値は、そのままでは、数字として評価してくれません。 Excel → Lotus1-2-3 に数式を移行した場合に、不都合が出るのかと思います。理由は、ブール値を認識してくれないからだと思うのです。 =IF(A1=1,1) たとえば、Excelの場合は、A1 に「1」を入れれば、1が出ますが、それ以外では、FALSE と出ます。ところが、Lotus1-2-3では、それが、0 と出ます。 だから、TRUE をSUM関数で合計を出そうとしても、Excelでは、あくまでも、0ですが、Lotus1-2-3では、数値としてカウントされます。 いずれにしても、Excelでは、この TRUE(), FALSE() は、仮に関数として用いていても、そのままでは数値とは認識しませんので、まったく役には立っていないはずです。 なお、TRUE が、-1と出る仕様は、理屈は簡単なのですが、まったく違う言語形態です。(2byte の255は、-1として表示されるからです)
お礼
とても分かり易くご説明頂いて、有難うございます。 Lotusは名前こそ知っていますが、見た事もなく、仕様が分からなかったのですが、理解できました。
- mshr1962
- ベストアンサー率39% (7417/18945)
Accessでは True = -1 ,False = 0 Excel,Lotus1-2-3では True = 1 ,FAlse = 0 のように論理値の使い方に差があるためではないかと... 例えれば、日本の東西の500Hzと600Hzの電気規格と同じで 販売開始時に統一していなかった為に、起きた悲劇です。
お礼
ご解答有難うございます。 Accessとtrue関数、false関数を交えた互換性が必要なケースって、どんな場合でしょうか? 何か思いつくのがあれば、是非教えて下さい。
お礼
今度は分かりました。 お手を煩わさせて済みません。有難うございました。