*
działa jako AND()
i +
działa, OR()
ponieważ TRUE
ma wartość 1
i FALSE
ma wartość 0
. A ponieważ NOT()
funkcja zamienia się TRUE
w FALSE
i odwrotnie ( 1
↔ 0
), prostym sposobem realizacji arytmetycznej jest .NOT(x)
1-x
Niestety działa to tylko dla 0
i 1
. Jeśli używasz +
dla OR()
i masz dwa (lub więcej) PRAWDZIWYCH warunków połączonych w wyrażeniu, otrzymasz wartość równą 2
lub większą. Dobrą wiadomością (którą już znasz) jest to, że każda niezerowa liczba liczy się jako TRUE
. Zła wiadomość jest taka , że 1-2
jest -1
niezerowa i stąd też TRUE
.
Alternatywnym rozwiązaniem jest wyrażenie logiczne x=0
, np.
(((A1:A8="Google")*(B1:B8="Stanford")+(C1:C8="Columbia"))=0)
Jeśli x
jest 0
to logiczne wyrażenie jako TRUE
. Jeśli x
jest coś innego niż 0
, wyrażenie jest oceniane jako FALSE
. Tak więc x=0
działa jak .NOT(x)
Ostrzeżenie: jeśli połączyć wiele Boolean ( TRUE
lub FALSE
) wartości z *
, +
i -
są one konwertowane do liczb całkowitych (liczb); ale jeśli wykonasz test, otrzymasz logiczną wartość logiczną. W ten sposób możesz powiedzieć coś takiegonumber=number
=SUM((A1:A8="Google")*(B1:B8="Stanford"))
(bez użycia IF()
), ponieważ jest liczbą, ale nie możesz tego zrobićBoolean*Boolean
=SUM(((A1:A8="Google")*(B1:B8="Stanford"))=0)
ponieważ SUM()
nie działa na wartościach boolowskich. Ale możesz go użyć
- w sposób
IF()
,
- dodając 0 (
+0
) lub
- przez pomnożenie przez 1 (
*1
).
AND()
,OR()
iNOT()
funkcje, są one przydatne dla Ciebie?