Buscar texto parcial en Excel 2013

Buscar texto parcial en Excel 2013

En Excel 2013, me gustaría encontrar el valor en la columna B en la fila donde una cadena coincide con una cadena en la columna A. Lo que complica esto es que las cadenas en la columna A pueden ser más cortas que la cadena de valor buscada. Ejemplo:

Column A    Column B
ABCD-       Result1
EF          Result2
BCD         Result3

Ahora, ejemplos de cadenas que deberían devolver...

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

"ABCD" no debería devolver ningún resultado.

Supongamos que la cadena buscada está en la celda C1.

¿Tengo que recurrir a una macro o hay alguna fórmula para ello?

UPD: Habrá varias cadenas buscadas que en realidad estarán ubicadas en una columna de otra hoja y no habrá comodines al principio. El valor que estoy buscando podría colocarse en la columna al lado de la columna con las cadenas buscadas.

UPD2: Supongamos el contenido de las columnas A y B en la Hoja 1 y el contenido de la Hoja 2 a continuación:

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

Copiar la fórmula matricial ligeramente modificada de la respuesta aceptada en la celda B2:

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

Respuesta1

Suponiendo que tiene datos en las filas 2 a 10, puede usar esta "fórmula matricial"

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

confirmado con CTRL+ SHIFT+ENTER

Respuesta2

No está claro qué papel juega C1. Si las cadenas buscadas ya existen en una columna, puede usarlas como lo que muestra como Col A de la Hoja2. Si están en otro lugar, puede crear la Col A simplemente haciendo referencia a la celda asociada en la otra lista. Por ejemplo, si la lista está en la columna Z, comenzando en la fila 2, A2 sería =Z2y podría copiar esa fórmula en la columna A para completar previamente más celdas de las que necesita (estas permanecerán en blanco hasta que las necesite).

Si la lista de cadenas buscadas se crea una nueva entrada a la vez, puede simplemente colocar las nuevas entradas en la siguiente posición en cualquiera de las listas (Col Z o Col A). Si las nuevas entradas deben ir a C1 y cada nueva entrada reemplaza a la anterior, necesitará una macro o un programa VBA para crear la lista a partir de las entradas C1.

Comenzando desde el punto donde las cadenas buscadas estarán en una lista en la Col A mediante cualquiera de estos métodos, esto es lo que iría en la Col B. Supongamos que Result1 está en B2. La fórmula en B2 sería:

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

Copie la fórmula en la columna B para tantas como necesite. Puede completar previamente la Col B con una gran cantidad arbitraria de entradas y estas permanecerán en blanco hasta que haya un valor en la celda asociada en la Col A que produzca un resultado.

información relacionada