Aqui está uma abordagem que aborda os diferentes comprimentos dos números de itens e códigos abreviados, bem como a possibilidade de que códigos abreviados de comprimentos diferentes compartilhem alguns números ou letras iniciais.
Ele usa três colunas auxiliares que correspondem exatamente VLOOKUPsao código abreviado dos primeiros 3, 4 e 5 caracteres, respectivamente, de cada item. Uma correspondência pode ser encontrada em qualquer uma, todas ou (no caso de dados incorretos) nenhuma dessas pesquisas de código abreviado.
A quarta coluna de cálculo contém as fórmulas selecionadas entre os resultados das três VLOOKUPs.
As regras de seleção são simples. Se uma única correspondência for encontrada na lista de códigos abreviados, o código correspondente será retornado. Se duas ou três correspondências forem encontradas, a correspondência com o maior número de caracteres será retornada. Se nenhuma correspondência for encontrada para um item, as fórmulas retornam o valor de erro # N / A.
As expressões de seleção na quarta coluna dos cálculos são fórmulas de matriz e devem ser inseridas com a combinação de teclas Control- Shift- Enter(ou seja, a fórmula na primeira linha deve ser inserida assim e, em seguida, pode ser copiada na parte inferior da lista de números de itens )
Para as fórmulas de exemplo abaixo, uma lista de números de itens completos está nas células A2:A10da Planilha 1. Uma lista de códigos abreviados está nas células A2:A10da Planilha 2. As fórmulas auxiliares estão nas colunas B-Dda Planilha1 e as fórmulas da matriz de seleção estão na coluna Edessa planilha . (A fórmula da matriz de exemplo deve estar totalmente visível movendo a barra de rolagem para a direita.)
As fórmulas
Cell B2: =VLOOKUP(LEFT($A2,3),Sheet2!$A$2:$A$10,1,0)
Cell C2: =VLOOKUP(LEFT($A2,4),Sheet2!$A$2:$A$10,1,0)
Cell D2: =VLOOKUP(LEFT($A2,5),Sheet2!$A$2:$A$10,1,0)
Cell E2: =IFERROR(INDEX($B2:$D2,1,MAX(NOT(ISERROR($B2:$D2))*TRANSPOSE(ROW($1:$3)))),#N/A)
Vou explicar brevemente como a quarta fórmula funciona.
NOT(ISERROR($B2:$D2))retorna uma matriz de três elementos de valores TRUE / FALSE, com TRUE para as colunas auxiliares (em uma linha específica) que possuem uma correspondência e FALSE caso contrário. Por exemplo, {TRUE, TRUE, FALSE}.
TRANSPOSE(ROW($1:$3)) simplesmente fornece a matriz {1, 2, 3}, cada número indicando uma das colunas auxiliares.
O produto deles - NOT(ISERROR($B2:$D2))*TRANSPOSE(ROW($1:$3)))- produz uma matriz com os valores 1, 2 ou 3 para as colunas com uma correspondência e zero caso contrário, como em {1, 2, 0}.
A MAXfunção retorna o maior número nessa matriz, que corresponde à coluna auxiliar que retornou a correspondência com o maior número de caracteres. Na matriz {1, 2, 0}, MAXretorna 2, para uma correspondência na coluna C, a segunda das colunas auxiliares.
INDEX depois seleciona o código abreviado na coluna C.
Por fim, a IFERRORfunção retornará # N / A se nenhum código abreviado correspondente foi encontrado.
Folha1

Sheet2