*działa jako AND()i +działa, OR()
ponieważ TRUEma wartość 1i FALSEma wartość 0. A ponieważ NOT()funkcja zamienia się TRUEw FALSE
i odwrotnie ( 1↔ 0), prostym sposobem realizacji arytmetycznej jest .NOT(x)1-x
Niestety działa to tylko dla 0i 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ą 2lub 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-2jest -1niezerowa 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 xjest 0to logiczne wyrażenie jako TRUE. Jeśli xjest coś innego niż 0, wyrażenie jest oceniane jako FALSE. Tak więc x=0działa jak .NOT(x)
Ostrzeżenie: jeśli połączyć wiele Boolean ( TRUElub 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?