Operacja typu boolean w programie Excel

1

W Excelu, jeśli mam operację logiczną formularza

{=SUM(IF((A1:A8="Google")*(B1:B8="Stanford")+(C1:C8="Columbia"),1,0))}

Wiem, że *środki AND()i +oznacza OR()więc, że szukamy dla nich w kolumnach A i B jest „Google” i „Stanford” lub odpowiednio tych w kolumnie C jest „Columbia”.

Ale czy istnieje symbol NOT()?

domoremath
źródło
1
Excel ma AND(), OR()i NOT()funkcje, są one przydatne dla Ciebie?
Tom Carpenter,
Nie. Jeśli zamienię wnętrze IF na OR (AND (A: A, B: B), C: C) skracając argumenty, to nie zadziała. Szukam symbolu reprezentującego NOT (), jeśli istnieje, którego można użyć w powyższym wyrażeniu.
domoremath

Odpowiedzi:

3

*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 ( 10), 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).
G-Man
źródło