Use esta fórmula:
=INDEX(Table1[ID],SMALL(IF(A2=Table1[name],ROW(Table1[name])-ROW(Table1[[#Headers],[name]]),10^9),COUNTIF(Sheet2!$A$1:A2,A2)))
Claro que esta é também uma fórmula de matriz.
-
%código%
- retorna o número da linha para as linhas na tabela de origem que contém o nome real
(corrigido pelo número da linha do cabeçalho da tabela, para funcionar corretamente na função de índice) - devolve
IF(A2=Table1[name],ROW(Table1[name])-ROW(Table1[[#Headers],[name]]),10^9)
para os outros (só para obter um grande número que não confunda a função10^9
, talvezSMALL
funcione também)
- retorna o número da linha para as linhas na tabela de origem que contém o nome real
-
""
- conta o número de nomes acima da linha atual -
COUNTIF(Sheet2!$A$1:A2,A2)
- retorna o menor número de linha (corrigido) -
SMALL(IF(...),10^9),COUNTIF(...))
- retorna o ID
Para melhor legibilidade da fórmula que converti seu primeiro intervalo em uma tabela, é claro que você também pode usar endereços.