Notifications
Clear all

SE e PROCV não funcionam - Excel 2010

11 Posts
1 Usuários
0 Reactions
4,115 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!
Estou me deparando com um problema q meus conhecimentos de excel, e pesquisas q fiz em vários forums, não puderam sanar.
Tenho duas colunas onde a primeira é "tipo" (de despesa) e a segunda "fornecedor". Para cada tipo de despesa há uma lista de fornecedores e são listas q o usuário deve editar, recebendo-as em branco.
Criei um intervalo, dei o nome de "tipo" e fiz uma validação de dados por lista suspensa apontando para ele.
Criei 14 intervalos e dei nome de "Da" a "Dn" q correspondendo aos 14 grupos de fornecedores, um para cada tipo.
Fui lá novamente na validação de dados por lista suspensa e me deparei com os seguintes problemas:
1) como são 14 tipos, para colocar na fonte da lista uma fórmula usando SE, q só comporta 7 de cada vez, tive q juntar dois conjuntos.Eles funcionam separados mas quando os junto utilizando +SE ou &SE coloca um aviso "A Fonte atualmente resulta em erro. Deseja continuar?". Porque aqui não funciona a junção de mais de 7 SE?
2) pesquisando vi que é feio utilizar tantos SE onde se pode colocar PROCV. Está certo! Lá fui eu para o PROCV criando uma tabela com duas colunas, na primeira todos os tipos e na segunda o nome dos intervalos correspondentes. Fiz a fórmula numa célula e ela exibe o resultado correto: uma das listas de fornecedores. Copio a mesma fórmula para a fonte da lista, na validação de dados, e apresentou "A fonte da lista deve ser uma lista delimitada ou uma referência a uma unica linha ou coluna". O q estou fazendo de errado?

A arquivo de exemplo está em http://dl.dropbox.co...09/EXForum.xlsm

Abraços
Fernando

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/08/2011 4:50 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

O lnk para o seu exemplo não esta ativo, por favor disponibilize novamente (utilize o adicionar anexo logo abaixo na resposta)

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/08/2011 6:27 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia,

Quanto à primeira pergunta, o limite de níveis aninhados de funções, no Excel 2003, é de 7.
No Excel 2007 esse limite passou para 64.

Quanto à segunda, só vendo o arquivo.

Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/08/2011 7:47 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!
Obrigado pelo retorno. O link enviado estava com reticências no meio, por isso não conseguiram abrir. O mais estranho é q ao colá-lo no bloco de notas ele se apresenta direitinho.
Está agora em anexo.
JValq: só por curiosidade se nos novos Excel precisarmos aninhar mais de 64 SE como faríamos? Agora o + ou o & não funcionam mais? ou como eu juntei dois grupos de somente 7 ele deu erro para me "ensinar" q agora já pode até 64?
Abçs

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/08/2011 9:46 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Fernando, o "+" seria caso o retorno fosse em números, como é texto, é melhor o "&".

E como é texto, você esqueceu de deixar o valor de retorno entre parenteses, por isso estava retornando o erro de valor.

Tenta essa fórmula:

=SE(D40=$CL$39;"Da";SE(D40=$CL$40;"Db";SE(D40=$CL$41;"Dc";SE(D40=$CL$42;"Dd";SE(D40=$CL$43;"De";SE(D40=$CL$44;"Df";SE(D40=$CL$45;"Dg";"")))))))&SE(D40=$CL$46;"Dh";SE(D40=$CL$47;"Di";SE(D40=$CL$48;"Dj";SE(D40=$CL$49;"Dk";SE(D40=$CL$50;"Dl";SE(D40=$CL$51;"Dm";SE(D40=$CL$52;"Dn";"")))))))

Qualquer coisa da o grito.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/08/2011 10:40 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Creio que fica melhor (menor) utilizar na validação:

INDIRETO(DESLOC(Despesas!$AL$2;CORRESP(D40;DespTotal;0);1;1;1))

Veja no anexo

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/08/2011 10:50 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Aah, então pode ser assim:

="D"&CARACT(CORRESP(D40;DespTotal;0)+96)

Qualquer coisa da o grito...

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/08/2011 11:24 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Operação realizada com sucesso! Resolvido! Obrigado Reinaldo!

Mas vamos a algumas observações:
Bernardo, entendi a diferença do "+" e do "&", anotado! Mas, como descrevi, a função funcionava. Só dava problema quando eu juntava os dois grupos aninhados, mas somente um funcionava. Deveria retornar o nome de um intervalo, vc tem certeza q ele teria q estar entre aspas?
Quanto à solução final q vc deu não funcionou, deu a mesma mensagem e o mesmo "sintoma" a q me referi lá na primeira mensagem com relaçÃo ao PROVC: "A fonte da lista deve ser uma lista delimitada ou uma referência a uma unica linha ou coluna". Numa célula ela apresenta o valor correto mas na validação dá pau. Alguém sabe o motivo???
Aliás como funcionaria a tua solução?

Abçs

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/08/2011 2:23 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

O retorno tanto no Procv, como na otima alternativa proposta pelo Bernardo, e entendido pelo excel como um valor TEXTO, e não um Array definico. Usando juntamente como a função indireto(), eleas funcionam, pois ai é reconhecido o NOME do Array

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/08/2011 2:47 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Fernando, estava olhando somente a fórmula, não reparei que tinha fórmulas com aqueles nomes e que era para ser usado na validação...
Normalmente entro no planilhando no trabalho, então não tenho muito tempo de ler esses textos muito grandes...

Realmente não é necessário o parenteses...
Quanto a minha solução, basta acrescentar o indireto() assim como na sua com o procv(), deixando assim:

=INDIRETO("D"&CARACT(CORRESP(D40;DespTotal;0)+96))

ou

=INDIRETO(PROCV(D40;ListaCorresp;2;FALSO))

se não tiver o indireto() o procv retorna um texto apenas, por isso ele retorna a mensagem de que a fonte deve ser uma lista delimitada ou uma referência a uma linha ou coluna, com o indireto, ele converte o texto em uma referencia, daí ele referencia a fórmula nomeada.

Qualquer coisa da o grito...

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/08/2011 2:58 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Beleza, fim de papo!
Conhecimentos adquiridos e compilados!
Abçs

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/08/2011 4:28 pm