Sua pergunta
Sua pergunta é um caso especial porque a saída desejada é 1
ou 0
. Você não precisa realmente de uma instrução IF para fazer isso; O Excel trata valores verdadeiros e falsos como 1
e 0
. Você nem precisa de AND ou OR. É referido como lógica booleana.
Começarei com a solução publicada por Tyson e Panhandel (observe os comentários de EBGreen e TECHIE007 sobre a ordem das operações e ajuste a fórmula se sua intenção for diferente).
Se você remover a função IF, você verá:
=AND(OR(A1>0,B1>0),C1>0)
Se você usar isso em um cálculo, ele será tratado como 1
se verdadeiro ou 0
se falso. Nesse formulário, ele será exibido na célula como TRUE ou FALSE. Se você quiser que seja exibido como 1
ou 0
, use-o em um cálculo que não altere seu valor:
=AND(OR(A1>0,B1>0),C1>0)+0
Apenas por interesse
Então, como você elimina o AND e o OR? Cada comparação de componente é verdadeira ou falsa, então você pode tirar proveito da matemática básica usando zeros e uns. Se duas coisas devem ser verdadeiras (o caso AND), use:
1 * 1 = 1 (both true)
1 * 0 = 0 (one true, one false)
0 * 0 = 0 (both false)
Qualquer combinação diferente de duas resultará em 0.
A situação de OR pode ser expressa em sentido inverso.
A=true OR B=true
é o mesmo que
NOT( A=false AND B=false )
Assim, você pode expressar OR como AND. Você cria o NOT usando 1 - result
.
Assim, sua expressão pode estar no formato:
=(1-(A1<=0)*(B1<=0))*(C1>0)
Sem IFs, ANDs ou ORs.