Táboa de contidos
Estás tentando crear unha instrución IF con texto comodín, pero falla cada vez? O problema non está na túa fórmula senón na propia función: Excel IF non admite caracteres comodín. Non obstante, hai unha forma de facelo funcionar para a coincidencia de texto parcial, e este tutorial ensinarache como.
Sempre que queiras realizar unha coincidencia parcial ou difusa en Excel, a solución máis obvia é utilizar comodíns. Pero que pasa se unha función específica que necesitas usar non admite caracteres comodíns? Desafortunadamente, Excel IF é unha destas funcións. Isto é especialmente decepcionante tendo en conta que outras funcións "condicionais" como COUNTIF, SUMIF e AVERAGEIFS funcionan perfectamente con comodíns.
Por sorte, non é o obstáculo que pode deter un usuario creativo de Excel :) Ao combinar IF con outras funcións, pode obrigalo a avaliar unha coincidencia parcial e obter unha boa alternativa a unha fórmula comodín de Excel IF.
Por que a función de Excel IF con comodín non funciona
Na táboa de exemplo a continuación, supoñendo que quere comprobar se os ID da primeira columna conteñen a letra "A". Se se atopa - mostrar "Si" na columna B, se non - mostrar "Non".
Parece que incluír texto comodín na proba lóxica sería unha solución sinxela:
=IF(A2="*a*","Yes", "No")
Pero lamentablemente non funciona. A fórmula devolve "Non" para todas as celas, incluso aquelas que conteñen "A":
Por quefalla unha declaración IF de comodín? Por todas as aparencias, Excel non recoñece os comodíns usados cun signo igual ou outros operadores lóxicos. Facendo unha ollada máis atenta á lista de funcións que admiten comodíns, notarás que a súa sintaxe asume que un texto comodín aparece directamente nun argumento como este:
=COUNTIF(A2:A10, "*a*")
Excel IF contén texto parcial
Agora que sabes o motivo polo que falla unha fórmula IF comodín, imos tentar descubrir como facelo funcionar. Para iso, simplemente incorporaremos unha función que acepte comodíns na proba lóxica de IF, é dicir, a función COUNTIF:
IF(COUNTIF( cell, "* text* "), value_if_true, value_if_false)Con este enfoque, IF non ten ningún problema para comprender os comodíns e identifica perfectamente as celas que conteñen "A" ou "a" (xa que COUNTIF non distingue entre maiúsculas e minúsculas):
=IF(COUNTIF(A2, "*a*"),"Yes", "No")
Esta fórmula vai a B2 ou a calquera outra cela da fila 2 e, a continuación, pode arrastrala cara abaixo ata tantas celas como sexa necesario:
Esta solución tamén se pode usar para localizar cadeas dun patrón específico . Asumindo que só son válidos os ID que consisten en 2 grupos de 2 caracteres separados cun guión, pode usar o "??-???" cadea comodín para identificalos:
=IF(COUNTIF(A2, "??-??"), "Valid", "")
Como funciona esta fórmula:
Para a proba lóxica de SE, usamos a función COUNTIF que conta o número de celas que coinciden co comodín especificadocorda. Dado que o intervalo de criterios é unha soa cela (A2), o resultado sempre é 1 (atopouse a coincidencia) ou 0 (non se atopa a coincidencia). Dado que 1 equivale a VERDADEIRO e 0 a FALSO, a fórmula devolve "Válido" (value_if_true) cando a conta é 1 e unha cadea baleira (value_if_false) cando a conta é 0. coincidencias
Outro xeito de forzar Excel IF a traballar para a coincidencia parcial de texto é incluír a función BUSCAR ou BUSCAR na proba lóxica. A diferenza é que FIND distingue entre maiúsculas e minúsculas mentres que BUSCAR non.
Entón, dependendo de se queres tratar as minúsculas e as maiúsculas como caracteres iguais ou diferentes, unha destas fórmulas funcionará ben:
Fórmula que non distingue entre maiúsculas e minúsculas para a coincidencia parcial:
IF(ISNUMBER(SEARCH(" texto ", celda )), valor_se_verdadero, valor_se_falso )Fórmula que distingue entre maiúsculas e minúsculas para a coincidencia parcial:
IF(ISNUMBER(FIND(" texto ", celda )), valor_se_verdadeiro, valor_se_falso )Como ambas funcións están deseñadas para realizar un tipo de coincidencia "a cela contén", os comodíns non son realmente necesarios neste caso.
Por exemplo, para detectar ID que conteñan "A" ou "a" , a fórmula é:
=IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")
Para buscar só unha "A" maiúscula e ignorar "a", a fórmula é:
=IF(ISNUMBER(FIND("A", A2)), "Yes", "No")
En B6, na seguinte captura de pantalla, podes observar a diferenza no resultado:
Como funciona esta fórmula:
No corazón dea fórmula, hai unha combinación de ISNUMBER e SEARCH (ou FIND):
ISNUMBER(SEARCH("A", A2))
A función SEARCH busca o texto especificado ("A" neste exemplo) e devolve a súa posición dentro unha cadea en A2. Se non se atopa o texto, devólvese un erro #VALUE. Como tanto SEARCH como FIND están deseñados para realizar un tipo de coincidencia "a cela contén", os comodíns non son realmente necesarios neste caso.
A función ISNUMBER converte un número en VERDADEIRO e calquera outro valor incluído o erro en FALSO. . O valor lóxico vai directamente á proba lóxica de IF. No noso caso, A2 contén "A", polo que ISNUMBER devolve TRUE:
IF(TRUE, "Yes", "No")
Como resultado, IF devolve o valor definido para o argumento value_if_true , que é "Si".
Instrucción IF OR de Excel con comodíns
Necesitas identificar celas que conteñan unha das cadeas de texto comodíns? Neste caso, pode combinar a instrución clásica IF OR coa fórmula COUNTIF ou ISNUMBER SEARCH comentada anteriormente.
Por exemplo, para buscar "aa" OU "bb" en A2 ignorando a letra maiúscula e devolvendo " Si" se atopa algunha, use unha destas fórmulas:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")
ou
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")
Tamén funcionará sumando dúas funcións COUNTIF. Neste caso, o signo máis funciona como o operador OR:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")
En lugar de codificar as cadeas comodíns na fórmula, pode introducilas en celas separadas, digamos D2 e F2, como se mostra. na captura de pantalla a continuación. Teña en conta que estesas referencias das celas están bloqueadas co signo $ para que a fórmula se copie correctamente nas celas seguintes:
=IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")
As fórmulas anteriores funcionan ben para 2 coincidencias parciais , pero se buscas 3 ou máis, serían demasiado longos. Neste caso, é razoable abordar a tarefa de forma diferente:
Fornece varias subcadeas á función SEARCH nunha constante matricial, conte os números devoltos e comproba se o resultado é maior que cero (o que significaría que se atopa polo menos unha das subcadeas):
=IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")
Deste xeito, obterás exactamente o mesmo resultado cunha fórmula máis compacta:
Fórmula de Excel IF AND con comodíns
Cando quere comprobar se unha cela contén dúas ou máis subcadeas diferentes, o xeito máis sinxelo é utilizar a función COUNTIFS con comodíns para a proba lóxica.
Supoño que quere localizar celas na columna A que conteñan "b" E "2". Para facelo, use "*b*" e "*2*" para os criterios de COUNTIFS e A2 para o rango de criterios:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")
Outra forma é usar a fórmula SE E xuntos con ISNUMBER SEARCH:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")
Aínda que non incluímos ningún carácter comodín nesta fórmula, funciona como buscar dúas cadeas comodín ("*b*" e "*2*" ) na mesma cela.
Por suposto, nada lle impide introducir os valores de busca en celas predefinidas, D2 e F2 no noso caso, e proporcionaras referencias das celas á fórmula:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")
Se prefires usar fórmulas máis compactas sempre que sexa posible, quizais che guste máis o enfoque de matriz constante. A fórmula IF COUNT SEARCH é moi parecida ao exemplo anterior, pero como esta vez ambas as subcadeas deben aparecer en A2, comprobamos se o reconto é igual a 2:
=IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")
Estes son os principais métodos de usar comodíns na instrución IF en Excel. Se coñeces outras solucións, outros usuarios seguramente agradecerán que compartas a túa experiencia nos comentarios. Grazas por ler e espero verte no noso blog a próxima semana!
Practica para descargar
Exemplos de fórmulas comodín de Excel IF (ficheiro .xlsx)