ブール値を{0、1}に変換するExcel式


回答:


37

キャストすることでできます。「int」関数は、最も近い整数に丸めます。ブール値がA1にある場合、式は次のようになります。

=INT(A1)

これと同様に=ROUND(A1,0)、このコンテキストでも同じことを行います。
-dangowans

または=CEILING(A1,1)
dangowans

おかげで、キャストは私が探していた「標準的な」方法でした。私が実際に「難しい」ことを期待していた、それをしようとする私には発生しなかった...
ノール

13

--ブール値をintに変換する最も一般的な方法です--。これが、まさにこの理由でそれらに含まれている関数を見る理由です。{TRUE、FALSE、FALSE}の配列を{1,0,0}に変換し、他の配列を乗算するために使用できます

例:

9以下の地域からの総売上を返します。

チームセールス
1 20ドル
2 $ 30
11 $ 90

式:

=SUMPRODUCT(--(A2:A4<=9),B2:B4)

計算

=SUMPRODUCT(--(True,True,False),($20,$30,$90))
=SUMPRODUCT((1,1,0),($20,$30,$90))
=1 * $20 + 1 * $30 + 0 * $90
=$20 + $30 + $0
=$50

@ fixer1234、その編集は役立ちますか?
SeanC

私はこの--方法をウェブで見ましたが、式の使用INTははるかに明確でエレガントであることを認めなければなりません。:)
loves.by.Jesus

7

'1'で乗算します。例 True * 1 = 1およびFalse * 1 = 0。

たとえば、セルA1にブール値が含まれている場合、隣接セルに次の式を入力します。

=A1*1

注: --True、True + 0、およびTrue / 1は同じ効果があります。


これは必ずしも読みやすいとは限りませんが、問題の式よりも「短い」ものです。
dangowans

それはすばらしい。しかし、それは変換のための組み込み式がないことを意味しますか?「BOOLVAL」または「BOOLINT」のようなものですか?
アルコール

これは非常に便利ですが、@ dangowansのようなより「適切な」ソリューションを探していたので、彼のソリューションを受け入れます。とにかくありがとう!
アルコール

どちらの答えも同じ原理で機能します。ブール値に数値演算を適用すると、数値の答えが返されます。
Excellll
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.