Fórmula do Excel para obter o último valor não zero na linha e no cabeçalho da coluna de retorno

1

Atualmente, tenho uma planilha de transações e quero escrever uma fórmula que me ajude a extrair de cada linha a transação mais recente de um cliente.

Além disso, quero puxar o cabeçalho da coluna associado a cada transação mais recente, para isolar a data em que a transação ocorreu.

Eu encontrei a fórmula:

=INDEX($E$1:$CO$1, MATCH(TRUE,INDEX(E2:CO2<>0,),0)) 

Isso está me dando a transação mais recente; ele está pesquisando cada linha para a primeira instância diferente de zero.

Eu preciso da última instância não zero. Ou, alternativamente, preciso saber como fazer essa fórmula funcionar da direita para a esquerda, em vez da esquerda para a direita.

Qualquer ajuda é muito apreciada!

    
por user466699 07.07.2015 / 18:35

2 respostas

6

Não há necessidade de alterar seus dados, você pode usar uma função LOOKUP para encontrar o último diferente de zero e obter o cabeçalho como este

=LOOKUP(2,1/(E2:CO2<>0),E$1:CO$1)

Isso funciona porque a parte 1/(E2:CO2<>0) retorna uma matriz de 1s em que a célula não é zero ...... ou #DIV/0! erros onde está. LOOKUP , então, não encontrará 2 nessa matriz, de modo que coincida com a última 1, ou seja, a última coluna com um valor diferente de zero ..... e, em seguida, retorna o valor correspondente de a linha de cabeçalho.

Se você realmente quiser o último número em uma linha (incluindo zero), isso é ainda mais simples, apenas

=LOOKUP(9.99E+307,E2:CO2,E$1:CO$1)

    
por 08.07.2015 / 00:20
2

Com base em aqui e aqui , a resposta rápida é que você provavelmente precisará reverter seus dados. O Excel não possui nenhuma função que se mova da direita para a esquerda.

Supondo que os dados que você deseja reverter estendam-se de A2 para E2:

=INDEX($A$2:$E$2,6-COLUMNS($A$2:A2))

Onde 6 é o seu número de colunas (5) + 1. Se você preferir não usar um valor codificado (6), como apontado nos comentários do segundo link, você pode usar algo como COUNTA ($ A $ 2 : $ E $ 2) +1. A fórmula seria assim:

=INDEX($A$2:$E$2,COUNTA($A$2:$E$2)+1-COLUMNS($A2:A2))

Observe que a fórmula depende do valor final de COLUMNS (A2 para iniciar) para derivar o valor correto da célula. Supondo que você copie e cole, você acabaria com uma linha de células da seguinte maneira (supondo que você quisesse exibir todas as 5 partes de dados):

=INDEX($A$2:$E$2,6-COLUMNS($A$2:A2))
[...]
=INDEX($A$2:$E$2,6-COLUMNS(A$2:$E2))

Um exemplo de como isso é:

Incluindoafórmulaparaencontraroprimeirovalordiferentedezero:

    
por 07.07.2015 / 20:28