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.