Tabla de contenido
¿Intenta construir una sentencia IF con texto comodín, pero falla cada vez? El problema no está en su fórmula, sino en la propia función - Excel IF no admite caracteres comodín. Sin embargo, hay una manera de conseguir que funcione para la coincidencia parcial de texto, y este tutorial le enseñará cómo.
Siempre que desee realizar una comparación parcial o difusa en Excel, la solución más obvia es utilizar caracteres comodín. Pero, ¿qué ocurre si una función específica que necesita utilizar no admite caracteres comodín? Lamentablemente, Excel IF es una de esas funciones. Esto es especialmente decepcionante teniendo en cuenta que otras funciones "condicionales" como COUNTIF, SUMIF y AVERAGEIFS funcionan con caracteres comodín perfectamente bien.
Por suerte, no es el obstáculo que puede detener a un usuario creativo de Excel :) Combinando IF con otras funciones, puede forzarlo a evaluar una coincidencia parcial y obtener una bonita alternativa a una fórmula comodín IF de Excel.
¿Por qué no funciona la función IF de Excel con comodines?
En la tabla de ejemplo que aparece a continuación, supongamos que desea comprobar si los ID de la primera columna contienen la letra "A". Si la encuentran - mostrar "Sí" en la columna B, si no - mostrar "No".
Parece que incluir texto comodín en la prueba lógica sería una solución fácil:
=IF(A2="*a*", "Sí", "No")
Pero lamentablemente no funciona. La fórmula devuelve "No" para todas las celdas, incluso las que contienen "A":
¿Por qué falla una sentencia IF comodín? Por lo que parece, Excel no reconoce los comodines utilizados con un signo igual u otros operadores lógicos. Si examina más detenidamente la lista de funciones que admiten comodines, observará que su sintaxis supone que un texto comodín aparece directamente en un argumento como éste:
=COUNTIF(A2:A10, "*a*")
Excel IF contiene texto parcial
Ahora que conoce la razón por la que falla una fórmula IF con comodines, vamos a intentar averiguar cómo hacer que funcione. Para ello, simplemente incrustaremos una función que acepte comodines en la prueba lógica de IF, concretamente la función COUNTIF:
IF(COUNTIF( célula , "* texto *"), value_if_true, value_if_false)Con este enfoque, IF no tiene problemas para entender los comodines e identifica perfectamente las celdas que contienen "A" o "a" (ya que COUNTIF no distingue entre mayúsculas y minúsculas):
=IF(COUNTIF(A2, "*a*"), "Sí", "No")
Esta fórmula va a B2, o a cualquier otra celda de la fila 2, y luego puedes arrastrarla hacia abajo a tantas celdas como necesites:
Esta solución también puede utilizarse para localizar cadenas de un patrón específico Suponiendo que sólo sean válidos los ID formados por 2 grupos de 2 caracteres separados por un guión, puede utilizar la cadena de caracteres comodín "??-??" para identificarlos:
=IF(COUNTIF(A2, "??-??"), "Válido", "")
Cómo funciona esta fórmula:
Para la prueba lógica de IF, utilizamos la función COUNTIF que cuenta el número de celdas que coinciden con la cadena comodín especificada. Dado que el rango de criterios es una única celda (A2), el resultado es siempre 1 (se encuentra la coincidencia) o 0 (no se encuentra la coincidencia). Dado que 1 equivale a TRUE y 0 a FALSE, la fórmula devuelve "Válido" (valor_si_verdadero) cuando el recuento es 1 y una cadena vacía (valor_si_falso) cuando el recuento eses 0.
IF ISNUMBER Fórmula de búsqueda de coincidencias parciales
Otra forma de forzar a Excel IF a trabajar para la coincidencia parcial de texto es incluir la función FIND o SEARCH en la prueba lógica. La diferencia es que FIND distingue entre mayúsculas y minúsculas mientras que SEARCH no.
Así que, dependiendo de si quieres tratar las minúsculas y las mayúsculas como caracteres iguales o diferentes, una de estas fórmulas funcionará a las mil maravillas:
No distingue entre mayúsculas y minúsculas fórmula para la coincidencia parcial:
IF(ISNUMBER(SEARCH(" texto ", célula )), value_if_true, value_if_false)Mayúsculas y minúsculas fórmula para la coincidencia parcial:
IF(ISNUMBER(FIND(" texto ", célula )), value_if_true, value_if_false)Como ambas funciones están diseñadas para realizar una coincidencia del tipo "la celda contiene", los comodines no son realmente necesarios en este caso.
Por ejemplo, para detectar ID que contengan "A" o "a", la fórmula es:
=IF(ISNUMBER(SEARCH("A", A2)), "Sí", "No")
Para buscar sólo una "A" mayúscula e ignorar la "a", la fórmula es:
=IF(ISNUMBER(FIND("A", A2)), "Sí", "No")
En B6, en la captura de pantalla siguiente, puede observar la diferencia en el resultado:
Cómo funciona esta fórmula:
En el corazón de la fórmula, hay una combinación de ISNUMBER y SEARCH (o FIND):
ISNUMBER(SEARCH("A", A2))
La función BUSCAR busca el texto especificado ("A" en este ejemplo) y devuelve su posición dentro de una cadena en A2. Si no se encuentra el texto, se devuelve un error #VALOR. Como tanto BUSCAR como ENCONTRAR están diseñadas para realizar una coincidencia del tipo "la celda contiene", los comodines no son realmente necesarios en este caso.
La función ISNUMBER convierte un número a TRUE y cualquier otro valor incluyendo error a FALSE. El valor lógico va directamente a la prueba lógica de IF. En nuestro caso, A2 contiene "A", por lo que ISNUMBER devuelve TRUE:
IF(TRUE, "Sí", "No")
Como resultado, IF devuelve el valor establecido para el value_if_true que es "Sí".
Sentencia IF OR de Excel con comodines
¿Necesita identificar celdas que contengan una de las cadenas de texto comodín? En este caso, puede combinar la clásica sentencia IF OR con la fórmula COUNTIF o ISNUMBER SEARCH comentada anteriormente.
Por ejemplo, para buscar "aa" O "bb" en A2 ignorando las mayúsculas y minúsculas y devolver "Sí" si se encuentra cualquiera de ellas, utilice una de estas fórmulas:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Sí", "")
o
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Sí", "")
La suma de dos funciones COUNTIF también funciona. En este caso, el signo más funciona como el operador OR:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Sí", "")
En lugar de codificar cadenas de caracteres comodín en la fórmula, puede introducirlas en celdas separadas, por ejemplo D2 y F2, como se muestra en la captura de pantalla siguiente. Observe que estas referencias de celda están bloqueadas con el signo $ para que la fórmula se copie correctamente en las celdas siguientes:
=IF(OR(COUNTIF(A2, "*"&$D$2& "*"), COUNTIF(A2, "*"&$F$2& "*")), "Sí", "")
Las fórmulas anteriores funcionan bien para 2 coincidencias parciales, pero si busca 3 o más, se alargarían demasiado. En este caso, es lógico enfocar la tarea de otra manera:
Suministre varias subcadenas a la función BUSCAR en una constante de matriz, cuente los números devueltos y compruebe si el resultado es mayor que cero (lo que significaría que se ha encontrado al menos una de las subcadenas):
=IF(COUNT(SEARCH({"aa", "bb"}, A2))>0, "Sí", "")
De este modo, obtendrá exactamente el mismo resultado con una fórmula más compacta:
Fórmula IF AND de Excel con comodines
Cuando desee comprobar si una celda contiene dos o más subcadenas diferentes, la forma más sencilla es utilizar la función COUNTIFS con comodines para la prueba lógica.
Supongamos que desea localizar celdas en la columna A que contengan tanto "b" COMO "2". Para hacerlo, utilice "*b*" y "*2*" para los criterios de COUNTIFS y A2 para el rango de criterios:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Sí", "")
Otra forma es utilizar la fórmula IF AND junto con ISNUMBER SEARCH:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Sí", "")
Aunque no incluimos ningún carácter comodín en esta fórmula, funciona como la búsqueda de dos cadenas comodín ("*b*" y "*2*") en la misma celda.
Por supuesto, nada te impide introducir los valores de búsqueda en celdas predefinidas, D2 y F2 en nuestro caso, y suministrar las referencias de celda a la fórmula:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2)), "Sí", "")
Si prefiere utilizar fórmulas más compactas siempre que sea posible, puede que le guste más el enfoque de la constante de matriz. La fórmula IF COUNT SEARCH es muy parecida a la del ejemplo anterior, pero como esta vez ambas subcadenas deben aparecer en A2, comprobamos si el recuento es igual a 2:
=IF(COUNT(SEARCH({"b", "2"}, A2))=2, "Sí", "")
Estos son los principales métodos para utilizar comodines en la sentencia IF en Excel. Si conoces alguna otra solución, seguro que otros usuarios agradecerán que compartas tu experiencia en los comentarios. Te agradezco tu lectura y ¡espero verte en nuestro blog la semana que viene!
Cuaderno de prácticas para descargar
Ejemplos de fórmulas comodín IF de Excel (archivo .xlsx)