Combine duas instruções IF longas no Excel em uma fórmula

0

Por meio da cópia de outras fórmulas / alguma ajuda nesse fórum, eu consegui escrever uma fórmula para um relatório que criei, que basicamente pega a data de início e a duração da entrada de linha e retorna o número 0,33 em colunas de mês separadas que caem entre a data de início e a data de término.

Dependendo da categoria da entrada de linha, também preciso que algumas das entradas retornem 0,2 para os meses relevantes, em vez de 0,33. Consegui alterar as partes relevantes da fórmula para fazer isso, então posso copiar manualmente essa fórmula para as células relevantes, mas, idealmente, eu gostaria de combinar essas duas em uma fórmula que pode ser aplicada a toda a planilha para torná-la automatizada que possível. Eu tentei combinar isso sozinho, mas tudo o que tentei retorna um erro.

As duas fórmulas diferentes são:

=IF($L2=1,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.33,""),"")

=IF($L2=3,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.2,""),"")

Basicamente, se o número na coluna L for 1, quero que as colunas do mês relevantes retornem 0,33 e, se o número da coluna L for 3, quero que as colunas do mês relevantes retornem 0,2. Se o número não for 1 ou 3, quero que as células do mês fiquem em branco.

Por favor, você pode me ajudar a combinar estas IF declarações?

Deixe-me saber se você precisar de mais alguma informação.

    
por JH86 16.05.2017 / 11:33

1 resposta

0

Uma abordagem simples seria usar o SWITCH função.

Parece que você está usando $L2 como um interruptor, dependendo de quando é 1 ou 3. Sem investigar sua fórmula, o seguinte deve funcionar:

=SWITCH($L2,1,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.33,""),3,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.2,""))

Note que eu não testei e é apenas uma condição para executar a instrução IF . Pode haver uma maneira melhor de combiná-los.

A abordagem mais clássica é apenas aninhar as instruções if. Você pode lê-lo da seguinte maneira: Se não for 1, verifique se é 3 e se não é 3, não faça nada.

=IF($L2=1,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.33,""),IF($L2=3,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.2,""),""))
    
por 16.05.2017 / 12:05