Procure uma célula que contenha uma parte de outra célula - procurando para cima

0

Estou preso a este problema do excel e procurei uma solução sem sucesso. Espero que você possa ajudar!

Na Coluna A, tenho uma lista de clientes e na Coluna B tenho uma lista ainda maior de Faturas. Basicamente, o que estou tentando fazer é combinar a fatura mais recente para o cliente. Eu tentei usar =INDEX(B:B, MATCH(1,IF(ISERR(FIND(A1,B:B)),0,1),0)) Essa fórmula procura o nome do cliente 1 na lista de faturas e traz de volta a primeira fatura que encontra para C1.

Esta fórmula funciona maravilhosamente - desde que o cliente tenha apenas uma fatura. Depois disso, a fórmula é inútil porque eu preciso da fatura mais recente, não da primeira que encontrar.

O que estou tentando realizar está na tabela abaixo. Observe que o cliente 4 tem fatura # 002 e # 003, e eu preciso do mais recente (ou o mais próximo ao fundo) correspondido a esse cliente.

+------------------------------------------------------------------------+
| Customers      Invoices                      Recent Invoice            |
+------------------------------------------------------------------------+
| Customer 1     [Invoice #001] Customer 3     [Invoice #004] Customer 1 |
| Customer 2     [Invoice #002] Customer 4     N/A                       |
| Customer 3     [Invoice #003] Customer 4     [Invoice #001] Customer 3 |
| Customer 4     [Invoice #004] Customer 1     [Invoice #003] Customer 4 | 
+------------------------------------------------------------------------+

Parecia tão simples para mim ... começar de baixo e procurar para cima ... mas acho que não é tão simples.

Qualquer ajuda seria muito apreciada!

-J

    
por Joseph 11.08.2017 / 13:45

1 resposta

0

Esta encontrará a última entrada para cada cliente:

=INDEX(B:B,AGGREGATE(14,6,ROW($B$2:INDEX(B:B,MATCH("zzz",B:B)))/(ISNUMBER(SEARCH(A2,$B$2:INDEX(B:B,MATCH("zzz",B:B))))),1))

Se você quiser que o segundo mude por último o último 1 para 2 .

    
por 11.08.2017 / 15:30