Encontre texto parcial no Excel 2013

Encontre texto parcial no Excel 2013

No Excel 2013 eu gostaria de encontrar o valor na coluna B na linha onde uma string corresponde a uma string na coluna A. O que complica é que as strings na coluna A podem ser menores que a string de valor procurada. Exemplo:

Column A    Column B
ABCD-       Result1
EF          Result2
BCD         Result3

Agora, exemplos de strings que devem retornar...

"Result1": "ABCD-", "ABCD-EFG", "ABCD-H"
"Result2": "EF", "EFG", "EFGHIIJKL"
"Result3": "BCD", "BCDXY"

"ABCD" não deve retornar nenhum resultado.

Suponha que a string procurada esteja na célula C1.

Tenho que recorrer a uma macro ou existe uma fórmula para isso?

Atualização: Haverá várias strings procuradas que estarão localizadas em uma coluna de outra planilha e não haverá curingas no início. O valor que procuro pode ser colocado na coluna ao lado da coluna com as strings procuradas.

UPD2: Suponha o conteúdo da Coluna A e da Coluna B na Planilha1 e o conteúdo da Planilha2 abaixo:

SoughtString    ResultFound
ABCD-           Result1
EF              Result2
BCD             Result3
BCDXY           Result3
EFG             Result2
ABCD-EFG        Result1
EFGHIIJKL       Result2
ABCD-H          Result1
ABCD            No match

Tendo a fórmula de matriz ligeiramente modificada da resposta aceita na célula B2 copiada:

=IFERROR(INDEX(Sheet1!B$2:B$4;MATCH(1;COUNTIF(A2;Sheet1!A$2:A$4&"*")*(Sheet1!A$2:A$4<>"");0));"No match")

Responder1

Supondo que você tenha dados nas linhas 2 a 10, você pode usar esta "fórmula de matriz"

=IFERROR(INDEX(B$2:B$10,MATCH(1,COUNTIF(C1,A$2:A$10&"*")*(A$2:A$10<>""),0)),"No match")

confirmado com CTRL+ SHIFT+ENTER

Responder2

Não está claro qual o papel que C1 desempenha. Se as strings procuradas já existirem em uma coluna, você poderá usá-las como o que mostra como Col A da Planilha2. Se eles estiverem em outro lugar, você poderá construir a Col A apenas referenciando a célula associada na outra lista. Por exemplo, se a lista estiver na coluna Z, começando na linha 2, A2 seria =Z2, e você poderia copiar essa fórmula para a coluna A para preencher previamente mais células do que o necessário (elas permanecerão em branco até que seja necessário).

Se a lista de strings procurada estiver sendo criada com uma nova entrada de cada vez, você poderá simplesmente colocar as novas entradas na próxima posição em qualquer uma das listas (Coluna Z ou Coluna A). Se as novas entradas precisarem ir para C1 e cada nova entrada substituir a anterior, você precisará de uma macro ou de um programa VBA para construir a lista a partir das entradas C1.

Começando do ponto em que as strings procuradas estarão em uma lista na Col A por meio de qualquer um desses métodos, isso é o que aconteceria na Col B. Suponha que o Resultado1 esteja em B2. A fórmula em B2 seria:

    =IF(ISERROR(FIND(Sheet1!A2,A2)),"NO MATCH",IF(FIND(Sheet1!A2,A2)=1,A2,"NO MATCH"))

Copie a fórmula na coluna B para quantos você precisar. Você pode preencher previamente a coluna B com um grande número arbitrário de entradas e elas permanecerão em branco até que haja um valor na célula associada na coluna A que produza um resultado.

informação relacionada