Como incluir várias instruções IF em uma célula no Planilhas Google

17

Estou tentando alterar o valor de uma célula no Planilhas Google com base no valor de uma célula adjacente. Essa célula adjacente obtém seu valor da cor da célula adjacente a ela usando a fórmula desta resposta do Quora. Portanto, o valor da célula deve mudar com base no código hexadecimal obtido da cor da primeira célula. Existem quatro valores hexadecimais possíveis no momento, então eu estava tentando colocar quatro instruções IF diferentes na mesma célula, então seu valor é alterado com base nisso.

Minha primeira tentativa levou a um erro de análise de fórmula:

=if((J2="#00ff00","Read"), if(j2="#ff0000", "Unread"), if(j2="#ff9900","In Progress"), if(j2="#000000", "Not Applicable"))

É claro que você não pode simplesmente separar as declarações if com vírgulas. Com base nesta questão de estouro de pilha, tentei este código, com instruções IF aninhadas:

=if((J2="#00ff00","Read", if(j2="#ff0000", "Unread", if(j2="#ff9900","In Progress",if(j2="#000000", "Not Applicable")))))

Isso também leva a um erro de análise de fórmula.

Existe alguma maneira de simplesmente incluir várias instruções IF na mesma célula que funcionarão para o meu código?

Jack Graveney
fonte
Você pode combiná-los em um = OR ou algo semelhante?
AccioBooks

Respostas:

19

Use em lookupvez de if:

=lookup(B7,
       {"#000000","#00ff00","#ff0000","#ff9900"},
       {"Not applicable", "Read","Unread","In Progress"}
  ) 

Observe que o segundo parâmetro deve ser uma lista classificada.

daniel
fonte
1
Note-se que esta não funciona se os itens na 3ª argumento são expressão
Christiaan Westerbeek
1
Observe que a primeira matriz (a matriz "chave") deve ser classificada (funcionou quando a minha foi classificada em ordem alfabética ascendente) para que ela funcionasse como pretendido.
fgblomqvist
@ChristiaanWesterbeek, existe uma maneira de contornar isso, ou você apenas precisa usar aninhado ifs?
28418 Andrew
23

Resposta curta

O problema nos exemplos fornecidos são os parênteses. Aplique-os corretamente.

Explicação

IF() A função deve ter dois parâmetros e, opcionalmente, um terceiro.

IF(logical_expression, value_if_true, value_if_false)

O problema específico com

  • o primeiro exemplo fornecido é que o externo IF()possui muitos parâmetros.
  • o segundo exemplo é que logical_expressiono exterior IF()não retorna TRUEouFALSE

No Planilhas Google, os parâmetros das funções são separados por vírgulas (ou ponto-e-vírgula, se sua planilha usa vírgula como separador decimal). Quando parênteses são usados ​​para incluir várias operações e funções dentro de uma função, eles são considerados como um parâmetro da função que os contém.

Uma prática comum é colocar o interior IF()como o value_if_false, mas isso pode ser feito de várias maneiras. Adicionando IF()dentro de outro outro como value_if_truee value_if_falseé chamado IF() logical test nestingou apenas IF() nesting.

Abaixo está um exemplo de uma fórmula que possui três IF(), dois deles usados ​​para determinar value_if_falseo pai IF(). Um alinhamento vertical e multilinha do estilo entre parênteses é aplicado para facilitar a leitura

 =IF(logical_expression, value_if_true, 
     IF(logical_expression, value_if_true, 
        IF(logical_expression, value_if_true, value_if_false
          )
       )
    )

O estilo acima pode ser usado na redação de fórmulas do Planilhas Google. Eu achei útil para depuração de fórmulas.

Referência

Rubén
fonte
1
Muito útil, especialmente a amostra multilinha formatada - tornou muito mais fácil entender e implementar.
Lucas
4

Acabei de descobrir como combinar se e ou.

Exemplo:

=IF(OR(B3>49,C3>49,D3>49),”Passed”,”Failed”)
=IF(AND(B3>49,C3>49,D3>49),”Passed”,”Failed”)
=IF(OR(AND(B3>49,C3>49),AND(B3>49,D3>49),AND(C3>49,D3>49)),”Won”,”Failed”)

Então, para o seu exemplo:

= if(OR(J2="#00ff00",j2="#ff0000",j2="#ff9900"),"True","False")

Fonte: Uso combinado de funções lógicas IF, AND ou OR na planilha do Google Doc .

Geoffrey Derry
fonte
1

Você pode aninhar instruções IF, por exemplo

If(if(if(when all 3 equal true)))

Podia funcionar

OU

você poderia usar um IFAND aninhado, por exemplo

IF(AND(AND()))

Também funcionaria.

TechnicalTophat
fonte
A função IF () requer pelo menos dois parâmetros. Veja webapps.stackexchange.com/a/89068/88163
Rubén
1

Foi-lhe oferecida teoria e melhores abordagens, mas para responder especificamente:

Existe alguma maneira de simplesmente incluir várias instruções IF na mesma célula que funcionarão para o meu código?

tente por favor:

=if(J2="#00ff00","Read", if(J2="#ff0000", "Unread", if(J2="#ff9900","In Progress",if(J2="#000000", "Not Applicable"))))

Ou seja, sua segunda tentativa sem o primeiro parêntese de abertura e sem o último parêntese de fechamento.

nozes
fonte