Página 1 de 1

Encontrar 2º, 3º valores, numa coluna.

Enviado: 18 Mar 2017 às 07:22
por nmissionario
Bom dia, pretendo saber se é possível procurar o segundo, terceiro, etc, valores numa coluna, visto que o primeiro valor que essa coluna apresenta consigo-o obter através da formula que apresento na imagem. O exercício consiste no seguinte: tenho uma coluna(B2:B14) com várias caixas de validação que ao acciona-las retornam na coluna D2:D14 o valor de C2:C14 ou então celula vazia se não for accionada. O que pretendo é que na linha G2:O2 me sejam dados sequencialmente os valores encontrados na coluna D2:D14 diferentes de célula vazia. Ou seja à célula G2 corresponderia o 1º valor encontrado diferente de célula vazia, na coluna D2:D14. À célula H2 corresponderia o 2º valor encontrado diferente de célula vazia, na coluna D2:D14 e assim sucessivamente. O valor obtido não é exactamente o da coluna D2:D14 mas sim o correspondente na coluna R1:R13.
Desde já o meu agradecimento pela atenção e os parabéns pelo excelente trabalho.
Imagem

Re: Encontrar 2º, 3º valores, numa coluna.

Enviado: 18 Mar 2017 às 10:46
por osvaldomp
Veja se ajuda. Coloque a fórmula matricial abaixo em 'G2' e arraste para a direita.

opção 1 - com base na coluna 'D'
Código: Selecionar todos
=SEERRO(ÍNDICE($R$1:$R$13;MENOR(SE($D$2:$D$14<>"";LIN($D$1:$D$13));COLUNA(A1)));"")
opção 2 - com base na coluna 'A'
Código: Selecionar todos
=SEERRO(ÍNDICE($R$1:$R$13;MENOR(SE($A$2:$A$14=VERDADEIRO;LIN($A$1:$A$13));COLUNA(A1)));"")
obs. após colar a fórmula na célula 'G2' aperte F2 e em seguida aperte juntas Ctrl+Shift+Enter e depois arraste.

Re: Encontrar 2º, 3º valores, numa coluna.

Enviado: 18 Mar 2017 às 14:45
por nmissionario
Caro Osvaldo, desde já obrigado pela sua disponibilidade, e as minhas desculpas pelo fraco entendimento de excel. Envio o print da folha após implementar a formula. Deu o erro que mostra no print q não sei ao que é que se deve. Outra questão é na parte final da formula que penso que se tem de trancar COLUNA($A$1) para não passar para COLUNA(B1) etc.

Imagem

Re: Encontrar 2º, 3º valores, numa coluna.

Enviado: 18 Mar 2017 às 14:52
por nmissionario
Envio o anexo para mais facil compreenção

Re: Encontrar 2º, 3º valores, numa coluna.

Enviado: 18 Mar 2017 às 15:13
por osvaldomp
Desculpe, é que em algumas versões do Excel o nome da função é COLUNA e em outras é COL.

1. substitua na fórmula COLUNA por COL, isto eliminará o erro que a fórmula está retornando
2. na referência COL(A1) não se deve "trancar" a coluna. Trancar a linha é opcional COL(A$1), não faz diferença, mas a coluna não pode, pois ao ser copiada para a direita ela incrementa o valor do argumento da função MENOR. Assim COL(A1) retorna 1, COL(B1) retorna 2, ...
3. no arquivo que você disponibilizou a fórmula não foi inserida como matricial, veja a obs. no meu post anterior

Encontrar 2º, 3º valores, numa coluna.

Enviado: 18 Mar 2017 às 15:42
por nmissionario
Peço desculpa mas continua a dar o mesmo erro. Inseri como matricial embora no print e no ficheiro disponibilizado não o tenha.

Re: Encontrar 2º, 3º valores, numa coluna.

Enviado: 18 Mar 2017 às 16:16
por osvaldomp
Mais uma tentativa.

1. copie este comando abaixo
ActiveCell = "=IFERROR(INDEX($R$1:$R$13,SMALL(IF($D$2:$D$14<>"""",ROW($D$1:$D$13)),COLUMN(A1))),"""")"

2. selecione a célula 'G2'

3. clique com o direito na guia da planilha "Folha1" e escolha 'Exibir Código' (irá abrir a janela do editor de VBA)

4. aperte juntas Ctrl+G e na janela que irá se abrir na parte de baixo da tela cole o comando copiado acima e em seguida com o cursor no final da linha colada aperte Enter

5. feche o editor, e com 'G2' ainda selecionada aperte F2 e em seguida Ctrl+Shift+Enter

A fórmula em 'G2' então deverá retornar 233147; aí arraste a fórmula

Re: Encontrar 2º, 3º valores, numa coluna.

Enviado: 18 Mar 2017 às 23:55
por Macedo199
Boa noite,
Na formula do Osvaldo só precisa mudar a referencia da função LIN , que estava pegando o intervalo errado.
Cola esta formula na G2 pressione CTRL + SHIFT + ENTER e depois arraste.

=SEERRO(ÍNDICE($R$1:$R$13;MENOR(SE($D$2:$D$14<>"";LIN($D$2:$D$14)-1);COL(A1)));"")

Re: Encontrar 2º, 3º valores, numa coluna.

Enviado: 19 Mar 2017 às 12:18
por osvaldomp
Macedo199 escreveu: Na formula do Osvaldo só precisa mudar a referencia da função LIN , que estava pegando o intervalo errado.
=SEERRO(ÍNDICE($R$1:$R$13;MENOR(SE($D$2:$D$14<>"";LIN($D$2:$D$14)-1);COL(A1)));"")
Errada está a sua avaliação sobre a minha fórmula!

Esta parte da minha fórmula LIN($D$1:$D$13) retorna uma matriz com os elementos 1, 2, 3, ... , 13. Que é a matriz correta.
Aí você sugere na sua fórmula LIN($D$2:$D$14) que retorna a matriz 2, 3, 4, ... , 14. Que é uma matriz incorreta. Para contornar o seu erro e obter a matriz correta você subtraiu 1 de todos os elementos da matriz LIN($D$2:$D$14)-1. :?: :?: :?:

Segue uma sugestão para você sofisticar a sua gambiarra e chegar a um resultado igual: LIN($X$58:$X$70)-57. 8-)

Ainda, o erro que está sendo apontado #NOME nada tem a ver com referência a linhas e sim com o nome de alguma das funções utilizadas na fórmula.

Encontrar 2º, 3º valores, numa coluna.

Enviado: 19 Mar 2017 às 15:41
por Macedo199
Osvaldo, sinto muito se te ofendi, meu intuito neste forum é aprender, e aprendi neste mesmo forum a fazer deste jeito, e como fazendo isso a formula funcionou achei (equivocadamente) que este seria o erro. Mais uma vez lhe peço desculpas.

Re: Encontrar 2º, 3º valores, numa coluna.

Enviado: 19 Mar 2017 às 17:20
por osvaldomp
Fala, Macedo.
Beleza?

Tranquilo, todos nós estamos aprendendo.

abraço

Re: Encontrar 2º, 3º valores, numa coluna.

Enviado: 19 Mar 2017 às 19:40
por nmissionario
Osvaldo ÉS uma maquina :lol: :lol: Obrigado por não ter desistido deu certinho grande abraço aqui de Portugal. Obrigado a todos pelo esforço.