Operação não booleana no Excel

1

No Excel, se eu tiver alguma operação booleana do formulário

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

Eu sei que * significa AND() e + significa OR() , de modo que estamos procurando por aqueles nas colunas A e B sendo "Google" e "Stanford", respectivamente, ou na coluna C, "Columbia ".

Mas existe um símbolo para NOT() ?

    
por domoremath 13.11.2015 / 02:42

1 resposta

3

* funciona como AND() e + funciona como OR() porque TRUE tem um valor de 1 e FALSE tem um valor de 0 . E, como a função NOT() transforma TRUE em FALSE e vice-versa ( 10 ), uma maneira simples de implementar NOT(x) aritmeticamente é 1-x .

Infelizmente, isso funciona apenas para 0 e 1 . Se você estiver usando + para OR() , e você tem duas (ou mais) condições VERDADEIRAS combinadas em uma expressão, você obterá um valor de 2 ou maior. A boa notícia (que você já conhece) é que qualquer número diferente de zero conta como TRUE . A má notícia é que 1-2 é -1 , que é diferente de zero e, portanto, também TRUE .

Uma solução alternativa é a expressão lógica x=0 , por exemplo,

(((A1:A8="Google")*(B1:B8="Stanford")+(C1:C8="Columbia"))=0)

Se x for 0 , essa expressão lógica será avaliada como TRUE . Se x for algo diferente de 0 , a expressão será avaliada como FALSE . Assim, x=0 funciona como NOT(x) .

Aviso: se você combinar vários valores booleanos ( TRUE ou FALSE ) com * , + e - , eles são convertidos em números inteiros (números); mas se você fizer um teste number=number , você acaba com um booleano. Assim, você poderia dizer algo como

=SUM((A1:A8="Google")*(B1:B8="Stanford"))

(sem usar IF() ) porque Boolean*Boolean é um número mas você não pode fazer

=SUM(((A1:A8="Google")*(B1:B8="Stanford"))=0)

porque SUM() não funciona em valores booleanos. Mas você pode usá-lo

  • em IF() ,
  • adicionando 0 ( +0 ) ou
  • multiplicando por 1 ( *1 ).
por 13.11.2015 / 05:32