Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
  • Avatar do usuário
Por smgalvao
#38364
Prezados,

Tenho a formula abaixo que esta funcionando perfeitamente, mas por ser necessário repetir toda a estrutura lógica para que o resultado seja apresentado, tenho a impressão que há uma forma mais eficiente de escrevê-la.

=SE(SE($C$9="Anual";DATAM(C6;12);SE($C$9="Semestral";DATAM(C6;6)))>C7;"ERRO";SE($C$9="Anual";DATAM(C6;12);SE($C$9="Semestral";DATAM(C6;6);0)))

As células C6 e C7 são datas. A formula deve somar 12 ou 6 meses (escolhidos através do "Anual" ou "Semestral") à data da célula C6, sendo que se a data apresentada for maior que a célula C7 deve apresentar o valor "ERRO".

Essa é uma simplificação da minha formula e há ainda outras condições a serem verificadas antes do resultado final, mas me incomoda a aparente redundância de ter muitos SE´s dentro de outro SE´s .

Há alguma forma de reescrever a formula para que ela fique mais simples?

Obg.
Avatar do usuário
Por FelipeMGarcia
Avatar
#38366
Amigo, anexa o arquivo com o resultado esperado que fica mais fácil de ajudar.

Abs
Por smgalvao
#38369
Amigo, segue planilha com o exemplo. Não tenho problemas com o resultado apresentado, ele esta correto. Minha dúvida é a sintaxe da formula, se tem como ser algo mais simples.

Se tem alguma forma de na parte do [valor_se_falso] não ser necessário repetir toda a estrutura condicional.

Algo do tipo: SE [teste] igual a FALSO então 0, SENAO resultado do [teste] //sem ser necessário em [teste], repetir toda a estrutura condicional.

Apenas no exemplo temos 5 "SE´s", mas na minha planilha original eu tenho muito mais condições para verificar, sendo muito ruim para dar manutenção, reescrever, etc. Por esse motivo gostaria de deixar a fórmula mais simples.
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por FelipeMGarcia
Avatar
#38370
=SE(C7="semestral";DATAM(C4;6);SE(C7="anual";DATAM(C4;12);SE(OU(DATAM(C4;6)>C5;DATAM(C4;12)>C5);"erro")))
Por smgalvao
#38371
Obrigado pelo retorno, mas não funcionou. Em nenhuma situação ele apresenta o valor ERRO.
De qualquer forma já me deu alguns insights e tendo algum resultado posto aqui.
Muito obrigado!
Por osvaldomp
#38375
smgalvao escreveu: ... mas me incomoda a aparente redundância de ter muitos SE´s dentro de outro SE´s .
Segue uma alternativa:
Código: Selecionar todos
=SE((C7-(DATAM(C6;12))*(C9="anual")+(DATAM(C6;6))*(C9="semestral"))<0;"ERRO";(DATAM(C6;12))*(C9="anual")+(DATAM(C6;6))*(C9="semestral"))
Por smgalvao
#38395
Boa! Essa funcionou! Nessa estrutura temos apenas um SE, me parece bem mais simples para gerenciar e incluir parâmetros.
Obg!
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord