¿Intenta crear una declaración IF con texto comodín, pero falla siempre? El problema no está en su fórmula sino en la función en sí: Excel IF no admite caracteres comodín. Sin embargo, hay una manera de hacer que funcione para la coincidencia de texto parcial, y este tutorial le enseñará cómo hacerlo.
Siempre que desee realizar coincidencias parciales o aproximadas en Excel, la solución más obvia es usar comodines. Pero, ¿qué sucede si una función específica que necesita usar no admite caracteres comodín? Lamentablemente, Excel IF es una de esas funciones. Esto es especialmente decepcionante si se tiene en cuenta que otras funciones «condicionales» como CONTAR.SI, SUMAR.SI y PROMEDIO.SI.SI funcionan perfectamente bien con comodines.
Afortunadamente, no es el obstáculo que puede detener a un usuario creativo de Excel 🙂 Al combinar IF con otras funciones, puede forzarlo a evaluar una coincidencia parcial y obtener una buena alternativa a una fórmula de comodín IF de Excel.
Por qué la función Excel IF con comodín no funciona
En la tabla de muestra a continuación, supongamos que desea verificar si las ID en la primera columna contienen la letra «A». Si lo encuentra, muestre «Sí» en la columna B, si no, muestre «No».
Parece que incluir texto comodín en la prueba lógica sería una solución fácil:
=IF(A2="*a*","Yes", "No")
Pero lamentablemente no funciona. La fórmula devuelve «No» para todas las celdas, incluso aquellas que contienen «A»:
¿Por qué falla una instrucción IF comodín? Aparentemente, Excel no reconoce los comodines que se usan con un signo igual u otros operadores lógicos. Echando un vistazo más de cerca a la lista de funciones que admiten comodines, notará que su sintaxis asume que un texto comodín aparece directamente en un argumento como este:
=COUNTIF(A2:A10, "*a*")
Declaración IF de Excel con texto comodín
Ahora que conoce la razón por la que falla una fórmula IF comodín, intentemos descubrir cómo hacer que funcione. Para esto, simplemente incorporaremos una función que acepte comodines en la prueba lógica de IF, a saber, la función COUNTIF:
SI(CONTAR.SI(celda, «*texto*»), valor_si_verdadero, valor_si_falso)
Con este enfoque, IF no tiene problemas para comprender 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*"),"Yes", "No")
Esta fórmula va a B2, o a cualquier otra celda en la fila 2, y luego puede arrastrarla a tantas celdas como sea necesario:
Esta solución también se puede utilizar para localizar cadenas de un patrón específico. Suponiendo que solo los ID que consisten en 2 grupos de 2 caracteres separados por un guión son válidos, puede usar el «?? – ??» cadena comodín para identificarlos:
=IF(COUNTIF(A2, "??-??"), "Valid", "")
Cómo funciona esta fórmula:
Para la prueba lógica de IF, usamos la función COUNTIF que cuenta el número de celdas que coinciden con la cadena de caracteres comodín especificada. Dado que el rango de criterios es una sola celda (A2), el resultado siempre es 1 (se encuentra una coincidencia) o 0 (no se encuentra una coincidencia). Dado que 1 equivale a VERDADERO y 0 a FALSO, 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 es 0.
Fórmula IF ISNUMBER SEARCH para coincidencias parciales
Otra forma de obligar a Excel IF a trabajar para la coincidencia de texto parcial 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 BÚSQUEDA no lo es.
Entonces, dependiendo de si desea tratar las minúsculas y las mayúsculas como caracteres iguales o diferentes, una de estas fórmulas funcionará de maravilla:
no distingue entre mayúsculas y minúsculas fórmula para coincidencia parcial:
SI(ESNÚMERO(BÚSQUEDA(«texto», celda)), valor_si_verdadero, valor_si_falso)
Distingue mayúsculas y minúsculas fórmula para coincidencia parcial:
SI(ESNUMERO(ENCONTRAR(«texto», celda)), valor_si_verdadero, valor_si_falso)
Como ambas funciones están diseñadas para realizar un tipo de coincidencia de «celda contiene», los comodines no son realmente necesarios en este caso.
Por ejemplo, para detectar identificaciones que contengan «A» o «a», la fórmula es:
=IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")
Para buscar solo una «A» mayúscula e ignorar «a», la fórmula es:
=IF(ISNUMBER(FIND("A", A2)), "Yes", "No")
En B6 en la captura de pantalla a continuación, 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 ESNUMERO y BUSCAR (o ENCONTRAR):
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 SEARCH como FIND están diseñados para realizar un tipo de coincidencia de «celda contiene», los comodines no son realmente necesarios en este caso.
La función ESNUMERO convierte un número en VERDADERO y cualquier otro valor, incluido el error, en FALSO. El valor lógico va directamente a la prueba lógica de IF. En nuestro caso, A2 contiene «A», por lo que ESNUMERO devuelve VERDADERO:
IF(TRUE, "Yes", "No")
Como resultado, SI devuelve el valor establecido para el argumento valor_si_verdadero, que es «Sí».
Declaración IF OR de Excel con comodines
¿Necesita identificar las celdas que contienen una de las cadenas de texto comodín? En este caso, puede combinar la declaración clásica IF OR con la fórmula COUNTIF o ISNUMBER SEARCH discutida anteriormente.
Por ejemplo, para buscar «aa» O «bb» en A2 ignorando las mayúsculas y minúsculas y devolver «Sí» si se encuentra alguna, use una de estas fórmulas:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")
o
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")
Sumar dos funciones COUNTIF también funcionará. En este caso, el signo más funciona como el operador OR:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")
En lugar de codificar cadenas comodín en la fórmula, puede ingresarlas en celdas separadas, digamos D2 y F2, como se muestra en la captura de pantalla a continuación. Tenga en cuenta que estas referencias de celda están bloqueadas con el signo $ para que la fórmula se copie correctamente en las siguientes celdas:
=IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")
Las fórmulas anteriores funcionan bien para 2 coincidencias parciales, pero si está buscando 3 o más, se volverán demasiado largas. En este caso, es lógico abordar la tarea de manera diferente:
Proporcione varias subcadenas a la función BUSCAR en una constante de matriz, cuente los números devueltos y verifique si el resultado es mayor que cero (lo que significaría que al menos una de las subcadenas se encuentra):
=IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")
De esta forma, obtendrás exactamente el mismo resultado con una fórmula más compacta:
Fórmula Excel IF AND con comodines
Cuando desee verificar si una celda contiene dos o más subcadenas diferentes, la forma más fácil es usar la función COUNTIFS con comodines para la prueba lógica.
Supongamos que desea ubicar celdas en la columna A que contengan tanto «b» como «2». Para hacerlo, use «*b*» y «*2*» para los criterios de COUNTIFS y A2 para el rango de criterios:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")
Otra forma es usar la fórmula IF AND junto con ISNUMBER SEARCH:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")
Aunque no incluimos ningún carácter comodín en esta fórmula, funciona como buscar dos cadenas comodín («*b*» y «*2*») en la misma celda.
Por supuesto, nada le impide ingresar los valores de búsqueda en celdas predefinidas, D2 y F2 en nuestro caso, y proporcionar las referencias de celda a la fórmula:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")
Si prefiere usar fórmulas más compactas siempre que sea posible, es mejor que le guste el enfoque de matriz constante. La fórmula IF COUNT SEARCH es muy parecida al 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, "Yes", "")
Estos son los métodos principales para usar comodines en la instrucción IF en Excel. Si conoce otras soluciones, otros usuarios sin duda apreciarán si comparte su experiencia en los comentarios. ¡Gracias por leer y espero verte en nuestro blog la próxima semana!
Cuaderno de ejercicios para descargar
(archivo .xlsx)