Precisa de ajuda para criar uma função IF aninhada no Excel

0

Estou planejando um planejador de encolhimento. A necessidade é lançar a saída com base no valor de uma célula.

Requerimento

Preciso do valor da célula com base no nome do funcionário e no tipo de encolhimento. Esta é a fórmula que escrevi.

=if(F10="January",VLOOKUP(F13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,4,0,(if(f10="February",VLOOKUP(F13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AD,6,0,(if(f10="March",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,8,0,(if(f10="April",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,10,0,(if(f10="May",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,12,0,(if(10="June",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,14,0,(f10="July",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,16,0,(iff10="August",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,18,0,(if(f10="September",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,20,0,(if(f10="October",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,22,0,(iff10="November",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,24,0,(VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,26,0)))))))))))

Lançando um erro que eu inseri muitos argumentos para esta função.

Ramji Ramadurai
fonte
Muitos argumentos significa que você está perdendo um )lugar.
Michael Frank
Olhando através de sua fórmula, existem vários erros. Você deve reservar um tempo para dividi-la linha por linha no Bloco de Notas e verificar se cada instrução possui os colchetes e o número de argumentos corretos.
Michael Frank
2
Além disso, sua fórmula atual tem ~ 30 (e apenas 14 ). Eles precisam se equilibrar ou isso nunca funcionará.
Michael Frank
1
Use CHOOSE(MonthNumber, ColumnNumForJan, ColumnNumForFeb, ...) no VLOOKUPargumento em vez da IFcadeia -s. Ou absolutamente simples MonthNumber*2+2no seu caso particular. Para converter o nome do mês em seu número, você pode usar um truque simples - adicione 1º num e em qualquer ano, converta o valor da data da data em data (usando a função DATEVALUE) e extraia o número do mês a partir dessa data.
Akina
2
Quando você obtém um aninhamento tão complicado, é difícil solucionar problemas ou manter. É hora de olhar para uma abordagem diferente de aninhar IFs. Comece com uma tabela de verdade de suas condições e resultados. Poste isso e será mais fácil para as pessoas sugerirem uma abordagem melhor. Não é realista esperar que as pessoas passem pelo seu muro de fórmulas para descobrir o que você está tentando realizar.
fixer1234

Respostas:

0

Eu posso ver alguns problemas.

Para iniciantes, suas funções SE possuem apenas dois argumentos. Por exemplo, o estado IF mais externo possui os seguintes parâmetros:

F10="January",
VLOOKUP( ... )

Para ser formatado corretamente, você deve ter uma condição, um valor de aprovação e um valor de falha.

Além disso, suas funções VLOOKUP possuem 5 parâmetros. Por exemplo, o primeiro VLOOKUP possui os seguintes parâmetros:

F13,
'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,
4,
0,
(IF( f10 = "February", .... ))

Eu acho que o que você pretendia é que o VLOOKUP seja o valor de aprovação e a próxima instrução IF seja o valor de falha. Se estiver correto, você deve estruturá-lo assim:

=IF(F10="January",VLOOKUP(F13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,4,0), IF(F10="February", <next VLOOKUP>, <next IF>))

Em particular, verifique se você está fechando os VLOOKUPs em vez de incorporar acidentalmente o próximo IF dentro deles.

Além disso, existem vários erros de digitação e funções ausentes na sua expressão. Em um ponto você avalia 10="June"e outro lugar você avalia iff10="August".

NightSicarius
fonte
Fantástico. NightSicaruis. Você é um salvador. Funcionou!! Muito obrigado.
Ramji Ramadurai 26/10
Acabei de reler esta resposta e fico feliz pelo OP que, de alguma forma, ajudou, mas não consigo entender como isso teria ajudado. Tem tantas falsidades que é confuso. Como exemplo, o primeiro VLOOKUP não possui 5 parâmetros e, embora você esteja afirmando que as instruções IF devem ter um parâmetro de falha, ele possui (o próximo IF a seguir). É que esta parte tem problemas de estrutura (ver minha resposta)
Chris Rogers
O primeiro VLOOKUP conforme o OP escreveu possui 5 parâmetros. O primeiro IF aninhado é um dos parâmetros VLOOKUP. O principal problema do qual eles se queixaram foi "muitos argumentos", causados ​​principalmente pelo uso incorreto de vírgulas e colchetes. Para que o primeiro IF aninhado seja o parâmetro de falha, eles primeiro precisam fechar o VLOOKUP, pois compreende a condição "pass" do IF externo.
NightSicarius
E foi o que você disse em sua resposta (faltando colchetes no VLOOKUP), então não sei por que você está argumentando contra a minha resposta.
NightSicarius
0

Conforme mencionado nos comentários, você precisa dividir a fórmula no bloco de notas ou similar e sua fórmula é facilmente dividida digitando-a da seguinte maneira ...

=if(F10="January",VLOOKUP(F13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,4,0,

(if(f10="February",VLOOKUP(F13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AD,6,0,

(if(f10="March",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,8,0,

(if(f10="April",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,10,0,

(if(f10="May",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,12,0,

(if(10="June",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,14,0,

(f10="July",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,16,0,

(iff10="August",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,18,0,

(if(f10="September",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,20,0,

(if(f10="October",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,22,0,

(iff10="November",VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,24,0,

(VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,26,0)))))))))))

Para fins de depuração, retire todos os colchetes no final, deixando

(VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,26,0

Dessa forma, ele corresponde às seções anteriores.

A primeira seção fornece suas condições se a célula F10for igual a "January". A segunda seção em diante é se não for.

A segunda seção fornece suas condições se a célula F10for igual a "February". A terceira seção é se não for .... e assim por diante.

Vamos dar uma olhada na sua primeira seção. Parece bom, exceto que o seu VLOOKUPnão está fechado. Você precisa de um suporte próximo no final para fechá-lo. Adicione isso antes da vírgula no final para fazer

=if(F10="January",VLOOKUP(F13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,4,0),

Você tem o mesmo problema nas outras seções. Faça o mesmo em todas as seções, exceto na última seção, na qual você precisa de um suporte apertado no final.

Na segunda seção, retire todos os colchetes abertos no início. Você não precisa deles e eles aumentam a confusão.

O resto é direto quando percorrer o restante das seções da seção 2 em diante.

Seção 6 (junho), você não tem Fna referência de célula para célulaF10

Seção 7 (julho) você não tem IFno início

Seção 8 (agosto), você não abriu a IF()função; portanto, você precisa de um colchete aberto depois IF. O mesmo vale para a seção 11 (novembro).

Agora, suas seções parecem boas. Você precisa fechar todas as IF()funções, pois todas ainda estão abertas (não há colchetes nas extremidades).

Conte suas IFdeclarações e adicione muitos colchetes ao final da última seção. Você tem 11 IFinstruções neste caso, portanto, com o colchete fechado já lá, você precisa ter 12 colchetes no final, deixando

VLOOKUP(f13,'[Team Spartans Attendance Planner - Data Extaction File.xlsm]Rep Wise Shrinkage Mthly'!$C:$AC,26,0))))))))))))

Agora você fica juntando as seções novamente para formar uma IF()fórmula aninhada que deve funcionar.

Chris Rogers
fonte