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.
#21482
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
#21489
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.
#21497
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
#21499
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
#21501
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
#21504
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)));"")
#21505
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.
#21518
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.
#21524
Fala, Macedo.
Beleza?

Tranquilo, todos nós estamos aprendendo.

abraço
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