Formuła Excel do konwersji wartości boolowskich na {0, 1}

25

Jaka jest formuła programu Excel do konwersji wartości logicznych {FALSE, TRUE}w {0, 1}?

Załóżmy, że jest jeden krótszy niż =IF(cond,1,0).

anol
źródło
1
Co ciekawe, =a1+a2zwróci sumę liczbową logiki, ale =sum(a1:a2)nie zwróci. Excel 2013.
Carl Witthoft,

Odpowiedzi:

37

Możesz to zrobić przez casting. Funkcja „int” zaokrągla liczbę do najbliższej liczby całkowitej. Jeśli wartość logiczna jest w A1, formuła byłaby następująca:

=INT(A1)
dangowans
źródło
Podobnie do tego, =ROUND(A1,0)robi to samo w tym kontekście.
dangowans
Lub=CEILING(A1,1)
Dangowans
Dzięki, obsada była „standardowym” sposobem, którego szukałem. Nie przyszło mi do głowy, żeby tego spróbować, w rzeczywistości spodziewałem się, że będzie to „trudniejsze” ...
anol
13

--jest najczęstszym sposobem konwersji boolean na int - dlatego właśnie widzisz funkcje, które mają --je w sobie z tego właśnie powodu. zamieni tablicę {PRAWDA, FAŁSZ, FAŁSZ} w {1,0,0}, której można użyć do pomnożenia innych tablic

Przykład:

zwracając całkowitą sprzedaż z regionu, który wynosi 9 lub mniej:

Sprzedaż zespołowa
1 20 USD
2 30 USD
11 90 USD

formuła:

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

Obliczenie

=SUMPRODUCT(--(True,True,False),($20,$30,$90))
=SUMPRODUCT((1,1,0),($20,$30,$90))
=1 * $20 + 1 * $30 + 0 * $90
=$20 + $30 + $0
=$50
SeanC
źródło
@ fixer1234, Czy to pomaga w edycji?
SeanC,
--Metodę widziałem w sieci , ale muszę przyznać, że stosowanie tej formuły INTjest znacznie bardziej przejrzyste i eleganckie. :)
loved.by.Jesus
7

Pomnóż to przez „1”. dawny. Prawda * 1 = 1 i False * 1 = 0.

Na przykład, jeśli komórka A1 zawiera wartość logiczną, w sąsiedniej komórce wprowadź formułę:

=A1*1

Uwaga: - True, True + 0 i True / 1 mają ten sam efekt.

użytkownik142485
źródło
Niekoniecznie jest to bardziej czytelne, ale jest „krótsze” niż wzór w pytaniu.
dangowans
To miłe. Ale czy to oznacza, że ​​nie ma wbudowanej formuły konwersji? Coś w stylu „BOOLVAL” lub „BOOLINT”?
anol
To całkiem przydatne, ale szukałem bardziej „właściwego” rozwiązania, takiego jak @ dangowans, więc zaakceptuję jego rozwiązanie. W każdym razie dzięki!
anol
Obie odpowiedzi działają na tej samej zasadzie - zastosowanie operacji numerycznej do wartości logicznej zwróci odpowiedź numeryczną.
Excellll,