Declaració IF d'Excel per a la coincidència parcial de text (comodí)

  • Comparteix Això
Michael Brown

Vols crear una instrucció IF amb text comodí, però falla cada cop? El problema no està en la vostra fórmula, sinó en la funció en si: Excel IF no admet caràcters comodí. Tanmateix, hi ha una manera de fer que funcioni per a la concordança parcial de text, i aquest tutorial us ensenyarà com fer-ho.

Sempre que vulgueu fer una concordança parcial o difusa a Excel, la solució més òbvia és per utilitzar comodins. Però, què passa si una funció específica que necessiteu utilitzar no admet caràcters comodins? Malauradament, Excel IF és una d'aquestes funcions. Això és especialment decebedor tenint en compte que altres funcions "condicionals" com COUNTIF, SUMIF i AVERAGEIFS funcionen perfectament amb comodins.

Afortunadament, no és l'obstacle que pot aturar un usuari creatiu d'Excel :) En combinar IF amb altres funcions, podeu forçar-lo a avaluar una coincidència parcial i obtenir una bona alternativa a una fórmula de comodí d'Excel IF.

    Per què la funció d'Excel IF amb comodí no funciona

    A la taula de mostra següent, suposant que voleu comprovar si els identificadors de la primera columna contenen la lletra "A". Si es troba - mostra "Sí" a la columna B, si no, mostra "No".

    Sembla que incloure text comodí a la prova lògica seria una solució fàcil:

    =IF(A2="*a*","Yes", "No")

    Però lamentablement no funciona. La fórmula retorna "No" per a totes les cel·les, fins i tot les que contenen "A":

    Per quèuna declaració IF de comodí falla? Des de totes les aparences, Excel no reconeix els comodins utilitzats amb un signe igual o altres operadors lògics. Fent una ullada més de prop a la llista de funcions que admeten els comodins, notareu que la seva sintaxi suposa que un text comodí apareix directament en un argument com aquest:

    =COUNTIF(A2:A10, "*a*")

    Excel IF conté text parcial

    Ara que ja sabeu el motiu pel qual falla una fórmula IF de comodí, intentem esbrinar com fer-la funcionar. Per a això, simplement inserirem una funció que accepti comodins a la prova lògica de SI, és a dir, la funció COUNTIF:

    IF(COUNTIF( cell, "* text* "), value_if_true, value_if_false)

    Amb aquest enfocament, IF no té cap problema per entendre els comodins i identifica perfectament les cel·les que contenen "A" o "a" (ja que COUNTIF no distingeix entre majúscules i minúscules):

    =IF(COUNTIF(A2, "*a*"),"Yes", "No")

    Aquesta fórmula va a B2, o a qualsevol altra cel·la de la fila 2, i després podeu arrossegar-la a tantes cel·les com calgui:

    Aquesta solució també es pot utilitzar per localitzar cadenes d'un patró específic . Suposant que només són vàlids els identificadors formats per 2 grups de 2 caràcters separats amb un guionet, podeu utilitzar el "??-???" cadena de comodí per identificar-los:

    =IF(COUNTIF(A2, "??-??"), "Valid", "")

    Com funciona aquesta fórmula:

    Per a la prova lògica de SI, utilitzem la funció COUNTIF que compta el nombre de cel·les que coincideixen amb el comodí especificatcorda. Com que l'interval de criteris és una sola cel·la (A2), el resultat sempre és 1 (es troba la coincidència) o 0 (no es troba la coincidència). Atès que 1 equival a TRUE i 0 a FALSE, la fórmula retorna "Vàlid" (value_if_true) quan el recompte és 1 i una cadena buida (value_if_false) quan el recompte és 0.

    IF ISNUMBER Fórmula de cerca parcial coincideix

    Una altra manera de forçar Excel IF a treballar per a la coincidència parcial del text és incloure la funció TROBA o CERCAR a la prova lògica. La diferència és que FIND distingeix entre majúscules i minúscules mentre que CERCAR no ho fa.

    Així, depenent de si voleu tractar les minúscules i les majúscules com a caràcters iguals o diferents, una d'aquestes fórmules funcionarà bé:

    Fórmula que no distingeix entre majúscules i minúscules per a la concordança parcial:

    IF(ISNUMBER(SEARCH(" text", cel·la)), valor_si_cert, valor_si_fals )

    Fórmula que distingeix entre majúscules i minúscules per a la coincidència parcial:

    IF(ISNUMBER(FIND(" text", cel·la)), valor_si_cert, valor_si_fals )

    Com que ambdues funcions estan dissenyades per dur a terme un tipus de concordança "la cel·la conté", els comodins no són realment necessaris en aquest cas.

    Per exemple, per detectar identificadors que contenen "A" o "a". , la fórmula és:

    =IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")

    Per cercar només una "A" majúscula i ignorar "a", la fórmula és:

    =IF(ISNUMBER(FIND("A", A2)), "Yes", "No")

    A B6 a la captura de pantalla següent, podeu observar la diferència en el resultat:

    Com funciona aquesta fórmula:

    A la cor dela fórmula, hi ha una combinació de ISNUMBER i SEARCH (o FIND):

    ISNUMBER(SEARCH("A", A2))

    La funció SEARCH cerca el text especificat ("A" en aquest exemple) i retorna la seva posició dins una cadena en A2. Si no es troba el text, es retorna un error #VALUE. Com que SEARCH i FIND estan dissenyats per dur a terme un tipus de concordança "la cel·la conté", els comodins no són realment necessaris en aquest cas.

    La funció ISNUMBER converteix un nombre en TRUE i qualsevol altre valor inclòs l'error en FALSE . El valor lògic va directament a la prova lògica de IF. En el nostre cas, A2 conté "A", de manera que ISNUMBER retorna TRUE:

    IF(TRUE, "Yes", "No")

    Com a resultat, IF retorna el valor establert per a l'argument value_if_true , que és "Sí".

    Instrucció IF OR d'Excel amb comodins

    Necessiteu identificar les cel·les que contenen una de les cadenes de text de comodí? En aquest cas, podeu combinar la instrucció clàssica IF OR amb la fórmula COUNTIF o ISNUMBER SEARCH comentada anteriorment.

    Per exemple, per cercar "aa" O "bb" a A2 ignorant les majúscules i minúscules i retornar " Sí" si es troba alguna, utilitzeu una d'aquestes fórmules:

    =IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")

    o

    =IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")

    També funcionarà sumant dues funcions COUNTIF. En aquest cas, el signe més funciona com l'operador OR:

    =IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")

    En lloc de codificar cadenes de comodins a la fórmula, podeu introduir-les en cel·les separades, per exemple D2 i F2, tal com es mostra. a la captura de pantalla següent. Si us plau, tingueu en compte que aquestsles referències de cel·les es bloquegen amb el signe $ perquè la fórmula es copie correctament a les cel·les següents:

    =IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")

    Les fórmules anteriors funcionen bé per a 2 coincidències parcials , però si en cerqueu 3 o més, serien massa llargs. En aquest cas, és raonable abordar la tasca de manera diferent:

    Suministreu múltiples subcadenes a la funció SEARCH en una constant de matriu, compteu els nombres retornats i comproveu si el resultat és més gran que zero (la qual cosa significaria que almenys una de les subcadenes si es troba):

    =IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")

    D'aquesta manera, obtindreu exactament el mateix resultat amb una fórmula més compacta:

    Fórmula d'Excel SI I amb comodins

    Quan voleu comprovar si una cel·la conté dues o més subcadenes diferents, la manera més senzilla és utilitzar la funció COUNTIFS amb comodins per a la prova lògica.

    Suposem que voleu localitzar cel·les a la columna A que continguin tant "b" COM "2". Per fer-ho, utilitzeu "*b*" i "*2*" per als criteris de COUNTIFS i A2 per a l'interval de criteris:

    =IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")

    Una altra manera és utilitzar la fórmula SI AND junts. amb ISNUMBER SEARCH:

    =IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")

    Tot i que no incloem cap caràcter comodí en aquesta fórmula, funciona com la cerca de dues cadenes de comodí ("*b*" i "*2*" ) a la mateixa cel·la.

    Per descomptat, res no impedeix introduir els valors de cerca en cel·les predefinides, D2 i F2 en el nostre cas, i proporcionarles referències de cel·la a la fórmula:

    =IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")

    Si preferiu utilitzar fórmules més compactes sempre que sigui possible, potser us agradi més l'enfocament constant de matriu. La fórmula IF COUNT SEARCH és molt semblant a l'exemple anterior, però com que aquesta vegada les dues subcadenes han d'aparèixer en A2, comprovem si el recompte és igual a 2:

    =IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")

    Aquests són els mètodes principals d'utilitzar el comodí a la instrucció IF a Excel. Si coneixeu altres solucions, els altres usuaris us agrairan si compartiu la vostra experiència als comentaris. Us agraeixo la lectura i espero veure-us al nostre bloc la setmana vinent!

    Quader de pràctiques per descarregar

    Excels d'Excel IF de fórmules comodí (fitxer .xlsx)

    Michael Brown és un entusiasta de la tecnologia dedicat amb una passió per simplificar processos complexos mitjançant eines de programari. Amb més d'una dècada d'experiència en la indústria tecnològica, ha perfeccionat les seves habilitats en Microsoft Excel i Outlook, així com en Google Sheets i Docs. El bloc de Michael es dedica a compartir els seus coneixements i experiència amb altres persones, oferint consells i tutorials fàcils de seguir per millorar la productivitat i l'eficiència. Tant si sou un professional experimentat com si sou un principiant, el bloc de Michael ofereix valuoses idees i consells pràctics per treure el màxim profit d'aquestes eines de programari essencials.