"Excel" IF teiginys daliniam teksto atitikimui (pakaitinis simbolis)

  • Pasidalinti
Michael Brown

Mėginate sukurti teiginį IF su pakaitiniu tekstu, bet kiekvieną kartą nepavyksta? Problema yra ne jūsų formulėje, o pačioje funkcijoje - "Excel IF" nepalaiko pakaitinių simbolių. Tačiau yra būdas, kaip ją paleisti, kad ji veiktų daliniam teksto atitikimui, ir šioje pamokoje sužinosite, kaip tai padaryti.

Kai "Excel" programoje norite atlikti dalinį arba neaiškų atitikimą, akivaizdžiausias sprendimas - naudoti pakaitinius simbolius. Tačiau ką daryti, jei konkreti funkcija, kurią reikia naudoti, nepalaiko pakaitinių simbolių? Deja, viena iš tokių funkcijų yra "Excel IF". Tai ypač apmaudu, nes kitos "sąlyginės" funkcijos, tokios kaip COUNTIF, SUMIF ir AVERAGEIFS, puikiai veikia su pakaitiniais simboliais.

Laimei, tai nėra kliūtis, galinti sustabdyti kūrybingą "Excel" naudotoją :) Derindami IF su kitomis funkcijomis galite priversti ją įvertinti dalinį atitikimą ir gauti gražią alternatyvą "Excel" IF pakaitinio simbolio formulei.

    Kodėl neveikia "Excel" funkcija IF su pakaitiniu ženklu

    Toliau pateiktoje pavyzdinėje lentelėje, tarkime, norite patikrinti, ar pirmajame stulpelyje esančiuose ID yra raidė "A". Jei randama - B stulpelyje rodomas "Taip", jei ne - rodomas "Ne".

    Atrodo, kad loginį testą būtų lengva išspręsti įtraukiant pakaitinį tekstą:

    =IF(A2="*a*", "Taip", "Ne")

    Tačiau, deja, tai neveikia. Formulė grąžina "Ne" visuose langeliuose, net ir tuose, kuriuose yra "A":

    Kodėl nepavyksta įrašyti pakaitinio ženklo IF teiginio? Iš pažiūros "Excel" neatpažįsta pakaitinių ženklų, naudojamų su lygybės ženklu ar kitais loginiais operatoriais. Atidžiau pažvelgę į funkcijų, palaikančių pakaitinius ženklus, sąrašą, pastebėsite, kad jų sintaksėje daroma prielaida, jog pakaitinis tekstas turi būti tiesiogiai argumente, pvz:

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

    "Excel IF" yra dalinis tekstas

    Dabar, kai jau žinote, kodėl formulė IF su pakaitiniais ženklais neveikia, pabandykime išsiaiškinti, kaip priversti ją veikti. Tam paprasčiausiai įterpsime funkciją, kuri priima pakaitinius ženklus, į loginį IF testą, t. y. funkciją COUNTIF:

    IF(COUNTIF( ląstelė , "* tekstas *"), value_if_true, value_if_false)

    Taikant šį metodą, IF nesusiduria su problemomis, kai reikia suprasti pakaitinius simbolius, ir nepriekaištingai nustato langelius, kuriuose yra "A" arba "a" (nes COUNTIF neatsižvelgia į mažąsias ir didžiąsias raides):

    =IF(COUNTIF(A2, "*a*"), "Taip", "Ne")

    Ši formulė perkeliama į B2 arba bet kurią kitą 2 eilutės ląstelę, o tada ją galite vilkti žemyn į tiek ląstelių, kiek reikia:

    Šis sprendimas taip pat gali būti naudojamas ieškant tam tikro modelio eilutės . Darant prielaidą, kad galioja tik tie ID, kuriuos sudaro 2 ženklų grupės, atskirtos brūkšneliu, jiems nustatyti galite naudoti "??-???" pakaitinio simbolio eilutę:

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

    Kaip veikia ši formulė:

    Loginiam IF testui atlikti naudojame funkciją COUNTIF, kuri skaičiuoja langelių, atitinkančių nurodytą pakaitinio simbolio eilutę, skaičių. Kadangi kriterijų intervalas yra vienas langelis (A2), rezultatas visada yra 1 (atitikmuo rastas) arba 0 (atitikmuo nerastas). Atsižvelgiant į tai, kad 1 reiškia TRUE, o 0 - FALSE, formulė grąžina "Valid" (value_if_true), kai skaičius yra 1, ir tuščią eilutę (value_if_false), kaiskaičius yra 0.

    IF ISNUMBER dalinių atitikmenų paieškos formulė

    Kitas būdas priversti "Excel IF" veikti daliniam teksto atitikimui - į loginį testą įtraukti funkciją FIND arba SEARCH. Skirtumas tas, kad funkcija FIND yra jautri didžiosioms raidėms, o funkcija SEARCH - ne.

    Taigi, priklausomai nuo to, ar norite mažąsias ir didžiąsias raides laikyti tais pačiais, ar skirtingais ženklais, viena iš šių formulių bus tinkama:

    Didžiųjų ir mažųjų raidžių neatsižvelgiama dalinio atitikimo formulė:

    IF(ISNUMBER(SEARCH(" tekstas ", ląstelė )), value_if_true, value_if_false)

    Taisyklės dalinio atitikimo formulė:

    IF(ISNUMBER(FIND(" tekstas ", ląstelė )), value_if_true, value_if_false)

    Kadangi abi funkcijos yra skirtos atlikti "celė yra" tipo atitikmenis, šiuo atveju pakaitinių simbolių tikrai nereikia.

    Pavyzdžiui, norint aptikti ID, kuriuose yra raidė "A" arba "a", formulė yra tokia:

    =IF(ISNUMBER(SEARCH("A", A2)), "Taip", "Ne")

    Jei norite ieškoti tik didžiosios raidės "A" ir ignoruoti raidę "a", formulė yra tokia:

    =IF(ISNUMBER(FIND("A", A2)), "Taip", "Ne")

    Toliau pateiktoje B6 ekrano kopijoje galite pastebėti rezultatų skirtumą:

    Kaip veikia ši formulė:

    Formulės esmė - ISNUMBER ir SEARCH (arba FIND) derinys:

    ISNUMBER(SEARCH("A", A2))

    Funkcija SEARCH ieško nurodyto teksto ("A" šiame pavyzdyje) ir grąžina jo vietą eilutėje A2. Jei tekstas nerandamas, grąžinama klaida #VALUE. Kadangi tiek funkcija SEARCH, tiek funkcija FIND yra skirtos atlikti "celė yra" tipo atitikimą, šiuo atveju pakaitinių simbolių iš tikrųjų nereikia.

    Funkcija ISNUMBER konvertuoja skaičių į TRUE, o bet kurią kitą reikšmę, įskaitant klaidą, į FALSE. Loginė reikšmė patenka tiesiai į loginį IF testą. Mūsų atveju A2 yra "A", todėl ISNUMBER grąžina TRUE:

    IF(TRUE, "Taip", "Ne")

    Kaip rezultatą IF grąžina nustatytą reikšmę value_if_true argumentas yra "Taip".

    "Excel" IF ARBA teiginys su pakaitiniais ženklais

    Reikia nustatyti langelius, kuriuose yra viena iš pakaitinių teksto eilučių? Tokiu atveju galite derinti klasikinį teiginį IF ARBA su pirmiau aptarta COUNTIF arba ISNUMBER paieškos formule.

    Pavyzdžiui, norėdami ieškoti "aa" ARBA "bb" A2 langelyje, neatsižvelgdami į raidžių atvejus ir grąžindami "Taip", jei randama viena iš šių formulių:

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

    arba

    =IF(ARBA(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Taip", "")

    Taip pat galima sudėti dvi COUNTIF funkcijas. Šiuo atveju pliuso ženklas veikia kaip OR operatorius:

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

    Užuot formulėje užkodavę simbolines eilutes, galite jas įvesti į atskiras ląsteles, pavyzdžiui, D2 ir F2, kaip parodyta toliau pateiktoje ekrano kopijoje. Atkreipkite dėmesį, kad šios ląstelių nuorodos yra užrakintos ženklu $, kad formulė būtų teisingai nukopijuota į toliau esančias ląsteles:

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

    Pirmiau pateiktos formulės gerai tinka 2 daliniams atitikmenims, tačiau jei ieškote 3 ar daugiau atitikmenų, jos taps per ilgos. Tokiu atveju logiška, kad užduotį reikia spręsti kitaip:

    Pateikite keletą posistemių funkcijos SEARCH masyvo konstantoje, suskaičiuokite grąžintus skaičius ir patikrinkite, ar rezultatas yra didesnis už nulį (tai reikštų, kad rasta bent viena iš posistemių):

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

    Tokiu būdu gausite lygiai tokį patį rezultatą, bet kompaktiškesnę formulę:

    "Excel" IF IR formulė su pakaitiniais ženklais

    Kai norite patikrinti, ar ląstelėje yra dvi ar daugiau skirtingų posistemių, paprasčiausia naudoti funkciją COUNTIFS, o loginiam testui - pakaitinius simbolius.

    Tarkime, norite surasti A stulpelio ląsteles, kuriose yra ir "b", ir "2". Norėdami tai padaryti, COUNTIFS kriterijams naudokite "*b*" ir "*2*", o kriterijų intervalui - A2:

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

    Kitas būdas - naudoti formulę IF AND kartu su ISNUMBER SEARCH:

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

    Nors į šią formulę neįtraukiame jokių pakaitinių simbolių, ji veikia kaip dviejų pakaitinių eilučių ("*b*" ir "*2*") paieška toje pačioje ląstelėje.

    Žinoma, niekas netrukdo paieškos reikšmes įrašyti į iš anksto nustatytas ląsteles, mūsų atveju - D2 ir F2, ir į formulę įrašyti ląstelių nuorodas:

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

    Jei jums labiau patinka naudoti kompaktiškesnes formules, kai tik įmanoma, tuomet jums gali labiau patikti masyvo konstantos metodas. IF COUNT SEARCH formulė labai panaši į ankstesnio pavyzdžio formulę, tačiau kadangi šį kartą A2 turi būti abi posistemės, tikriname, ar skaičius lygus 2:

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

    Tai yra pagrindiniai metodai, kaip naudoti pakaitinį ženklą "Excel" IF sakinyje. Jei žinote kitų sprendimų, kiti naudotojai tikrai bus dėkingi, jei pasidalinsite savo patirtimi komentaruose. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!

    Atsisiųsti praktikos sąsiuvinį

    "Excel" IF pakaitinio simbolio formulės pavyzdžiai (.xlsx failas)

    Michaelas Brownas yra atsidavęs technologijų entuziastas, mėgstantis supaprastinti sudėtingus procesus naudojant programinės įrangos įrankius. Turėdamas daugiau nei dešimtmetį patirtį technologijų pramonėje, jis patobulino savo įgūdžius „Microsoft Excel“ ir „Outlook“, taip pat „Google“ skaičiuoklėse ir dokumentuose. Michaelio tinklaraštis skirtas dalytis savo žiniomis ir patirtimi su kitais, jame pateikiami lengvai įgyvendinami patarimai ir vadovėliai, kaip pagerinti produktyvumą ir efektyvumą. Nesvarbu, ar esate patyręs profesionalas, ar pradedantysis, Michaelo tinklaraštyje rasite vertingų įžvalgų ir praktinių patarimų, kaip išnaudoti visas šių pagrindinių programinės įrangos įrankių galimybes.