Ynhâldsopjefte
Besykje jo in IF-ferklearring te bouwen mei jokertekentekst, mar it mislearret elke kear? It probleem sit net yn jo formule, mar yn 'e funksje sels - Excel IF stipet gjin jokertekens. D'r is lykwols in manier om it oan it wurk te krijen foar in part-tekstoerienkomst, en dizze tutorial sil jo leare hoe.
As jo in part of fuzzy matching wolle útfiere yn Excel, is de meast foar de hân lizzende oplossing jokertekens te brûken. Mar wat as in spesifike funksje dy't jo moatte brûke gjin jokertekens stipet? Spitigernôch is Excel IF ien fan sokke funksjes. Dit is foaral teloarstellend, yn betinken nommen dat oare "betingsten" funksjes lykas COUNTIF, SUMIF, en AVERAGEIFS perfekt goed wurkje mei jokertekens.
Gelokkich is it net it obstakel dat in kreative Excel-brûker stopje kin :) Troch IF te kombinearjen mei oare funksjes kinne jo it twinge om in partoerienkomst te evaluearjen en in moai alternatyf te krijen foar in Excel IF-jokertekenformule.
Wêrom Excel IF-funksje mei jokerteken net wurket
Yn de foarbyldtabel hjirûnder, stel dat jo wolle kontrolearje oft de ID's yn 'e earste kolom de letter "A" befetsje. As fûn - werjaan "Ja" yn kolom B, as net - werjaan "Nee".
It liket derop dat it opnimmen fan jokertekentekst yn 'e logyske test in maklike oplossing wêze soe:
=IF(A2="*a*","Yes", "No")
Mar spitigernôch wurket it net. De formule jout "Nee" werom foar alle sellen, sels de sellen dy't "A" befetsje:
Wêrom dochtin jokerteken IF ferklearring fail? Fan alle optredens herkent Excel gjin jokertekens brûkt mei in lykweardich teken of oare logyske operators. Troch de list mei funksjes dy't jokertekens stypje, sille jo merke dat har syntaksis derfan útgiet dat in jokertekentekst direkt ferskynt yn in argumint lykas dit:
=COUNTIF(A2:A10, "*a*")
Excel IF befettet in parttekst
No't jo de reden witte wêrom't in jokerteken IF-formule mislearret, litte wy besykje út te finen hoe't jo it oan it wurk krije kinne. Hjirfoar sille wy gewoan in funksje ynbêde dy't jokertekens akseptearret yn 'e logyske test fan IF, nammentlik de COUNTIF-funksje:
IF(COUNTIF( sel, "* tekst* "), value_if_true, value_if_false)Mei dizze oanpak hat IF gjin probleem mei it begripen fan jokertekens en identifisearret feilloos de sellen dy't "A" of "a" befetsje (omdat COUNTIF net hoofdlettergefoelich is):
=IF(COUNTIF(A2, "*a*"),"Yes", "No")
Dizze formule giet nei B2, of in oare sel yn rige 2, en dan kinne jo it nei ûnderen slepe nei safolle sellen as nedich:
Dizze oplossing kin ek brûkt wurde om strings fan in spesifyk patroan te finen . Oannommen dat allinich de ID's dy't besteane út 2 groepen fan 2 tekens skieden mei in koppelteken jildich binne, kinne jo de "??-??" jokertekenstring om se te identifisearjen:
=IF(COUNTIF(A2, "??-??"), "Valid", "")
Hoe wurket dizze formule:
Foar de logyske test fan IF brûke wy de COUNTIF-funksje dy't it oantal sellen telt dat oerienkomt mei de opjûne jokertekenstring. Sûnt de kritearia berik is in inkele sel (A2), it resultaat is altyd 1 (oerienkomst is fûn) of 0 (oerienkomst is net fûn). Jûn dat 1 is lyk oan TRUE en 0 oan FALSE, jout de formule "Jildich" (value_if_true) werom as de telling 1 is en in lege tekenrige (value_if_false) as de telling 0 is.
IF ISNUMBER SEARCH formule foar in part oerienkomt
In oare manier om Excel IF te twingen om te wurkjen foar in part tekstoerienkomst is om de funksje FYN of SEARCH op te nimmen yn 'e logyske test. It ferskil is dat FIND haadlettergefoelich is wylst SEARCH dat net is.
Dus, ôfhinklik fan oft jo lytse letters en haadletters as deselde of ferskillende tekens behannelje wolle, sil ien fan dizze formules in traktaasje wurkje:
Hoofdletter-ûngefoelige formule foar in part oerienkomst:
IF(ISNUMBER(SEARCH(" tekst", sel)), value_if_true, value_if_false )Hoofdlettergefoelige formule foar in part oerienkomst:
IF(ISNUMBER(FIND(" tekst", sel)), value_if_true, value_if_false )Om't beide funksjes ûntworpen binne om in "sel befettet" type oerienkomst út te fieren, binne jokertekens yn dit gefal net echt nedich.
Bygelyks om ID's te ûntdekken mei "A" of "a" , de formule is:
=IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")
Om allinnich nei in haadletter "A" te sykjen en "a" te negearjen, is de formule:
=IF(ISNUMBER(FIND("A", A2)), "Yes", "No")
Yn B6 yn 'e skermôfbylding hjirûnder kinne jo it ferskil yn it resultaat observearje:
Hoe wurket dizze formule:
By de hert fande formule, d'r is in kombinaasje fan ISNUMBER en SEARCH (of FYN):
ISNUMBER(SEARCH("A", A2))
De funksje SEARCH siket nei de spesifisearre tekst ("A" yn dit foarbyld) en jout syn posysje werom binnen in string yn A2. As de tekst net fûn wurdt, wurdt in #VALUE-flater weromjûn. Om't sawol SEARCH as FIND ûntworpen binne om in "sel befettet" type oerienkomst út te fieren, binne jokertekens yn dit gefal net echt nedich.
De funksje ISNUMBER konvertearret in getal nei TRUE en elke oare wearde ynklusyf flater nei FALSE . De logyske wearde giet direkt nei de logyske test fan IF. Yn ús gefal befettet A2 "A", dus ISNUMBER jout TRUE:
IF(TRUE, "Yes", "No")
As resultaat jout IF de wearde werom foar it argumint value_if_true , dat is "Ja".
Excel IF OR statement mei jokertekens
Sellen identifisearje dy't ien fan jokertekenteksttekens befetsje? Yn dit gefal kinne jo de klassike IF OR statement kombinearje mei de COUNTIF of ISNUMBER SEARCH formule dy't hjirboppe besprutsen is.
Bygelyks, om te sykjen nei "aa" OF "bb" yn A2, negearje de letter case en return " Ja" as ien fan beide is fûn, brûk dan ien fan dizze formules:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")
of
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")
Twa COUNTIF-funksjes tafoegje sil ek wurkje. Yn dit gefal wurket it plusteken lykas de OR-operator:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")
Ynstee fan hardkodearjen fan jokertekentekens yn 'e formule, kinne jo se ynfiere yn aparte sellen, sis D2 en F2, lykas werjûn yn 'e skermprint hjirûnder. Tink derom dat dizzeselferwizings wurde beskoattele mei it teken $, sadat de formule korrekt kopiearret nei de ûndersteande sellen:
=IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")
De boppesteande formules wurkje goed foar 2 diellike oerienkomsten , mar as jo nei 3 of mear sykje, soene se te lang wurde. Yn dit gefal is it logysk om de taak oars oan te pakken:
Lear meardere substrings oan de SEARCH-funksje yn in arraykonstante, tel de weromjûne nûmers en kontrolearje oft it resultaat grutter is as nul (wat soe betsjutte dat op syn minst ien fan de substrings fûn is):
=IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")
Op dizze manier krije jo krekt itselde resultaat mei in kompakter formule:
Excel IF EN formule mei jokertekens
As jo kontrolearje wolle oft in sel twa of mear ferskillende substrings befettet, is de maklikste manier om de COUNTIFS-funksje mei jokertekens te brûken foar de logyske test.
Stel dat jo sellen yn kolom A fine wolle dy't sawol "b" EN "2" befetsje. Om it dien te meitsjen, brûk "*b*" en "*2*" foar de kritearia fan COUNTIFS en A2 foar it kriteariaberik:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")
In oare manier is om de IF EN formule tegearre te brûken mei ISNUMBER SEARCH:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")
Alhoewol't wy gjin jokertekens yn dizze formule opnimme, wurket it as sykjen nei twa jokertekentekens ("*b*" en "*2*" ) yn deselde sel.
Fansels hinderet neat dat jo de sykwearden yn foarôf definieare sellen ynfiere, yn ús gefal D2 en F2, en leverjede selferwizings nei de formule:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")
As jo leaver mear kompakte formules brûke wêr't it mooglik is, dan kinne jo de array-konstante oanpak better hâlde. De formule IF COUNT SEARCH is in protte lykas yn it foarige foarbyld, mar om't dizze kear beide substrings moatte ferskine yn A2, kontrolearje wy oft it oantal gelyk is oan 2:
=IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")
Dit binne de wichtichste metoaden foar it brûken fan jokerteken yn IF-ferklearring yn Excel. As jo in oare oplossing kenne, sille oare brûkers it grif wurdearje as jo jo ûnderfining diele yn opmerkings. Ik tankje jo foar it lêzen en hoopje jo nije wike op ús blog te sjen!
Oefeningswurkboek om te downloaden
Excel IF jokertekenformulefoarbylden (.xlsx-bestân)