Shembuj Excel RegEx: përdorimi i shprehjeve të rregullta në formula

  • Shperndaje Kete
Michael Brown

Nuk mund ta kuptoni kurrë pse shprehjet e rregullta nuk mbështeten në formulat e Excel? Tani, ata janë :) Me funksionet tona të personalizuara, ju mund të gjeni lehtësisht, zëvendësoni, ekstraktoni dhe hiqni vargjet që përputhen me një model specifik.

Në pamje të parë, Excel ka gjithçka që ju nevojitet për vargun e tekstit manipulimet. Hmm… po në lidhje me shprehjet e rregullta? Mos, nuk ka funksione të integruara Regex në Excel. Por askush nuk thotë se ne nuk mund të krijojmë ato tona :)

    Çfarë është shprehja e rregullt?

    Një shprehje e rregullt (aka regex ose regexp ) është një sekuencë e koduar posaçërisht e karaktereve që përcakton një model kërkimi. Duke përdorur atë model, mund të gjeni një kombinim karakteresh që përputhen në një varg ose të vërtetoni hyrjen e të dhënave. Nëse jeni njohur me një shënim të shkronjave të egra, mund të mendoni për regjimet si një version të avancuar të shkronjave të egra.

    Shprehjet e rregullta kanë sintaksën e tyre të përbërë nga karaktere, operatorë dhe konstruksione të veçanta. Për shembull, [0-5] përputhet me çdo shifër të vetme nga 0 në 5.

    Shprehjet e rregullta përdoren në shumë gjuhë programimi duke përfshirë JavaScript dhe VBA. Ky i fundit ka një objekt të veçantë RegExp, të cilin ne do ta përdorim për të krijuar funksionet tona të personalizuara.

    A e mbështet Excel regex?

    Fatkeqësisht, nuk ka funksione të integruara Regex në Excel. Për të qenë në gjendje të përdorni shprehje të rregullta në formulat tuaja, do t'ju duhet të krijoni funksionin tuaj të përcaktuar nga përdoruesi (VBAargumentet:

    =IF(RegExpMatch(A5, $A$2), "Yes", "No")

    Për më shumë shembuj të formulave, ju lutemi shihni:

    • Si të përputhen vargjet duke përdorur shprehje të rregullta
    • Vleresimi i te dhenave ne Excel me regexes

    Funksioni Excel Regex Extract

    Funksioni RegExpExtract kërkon për nënvargje që përputhen me një shprehje të rregullt dhe nxjerr të gjitha përputhjet ose përputhje specifike.

    RegExpExtract(tekst, model, [numri_shembulli], [match_case])

    Ku:

    • Tekst (kërkohet) - vargu i tekstit për të kërkuar in.
    • Modeli (kërkohet) - shprehja e rregullt që të përputhet.
    • Numri_shembulli (opsionale) - një numër serial që tregon se cilin shembull duhet ekstrakt. Nëse hiqet, kthen të gjitha përputhjet e gjetura (parazgjedhja).
    • Ndeshja_rasti (opsionale) - përcakton nëse duhet të përputhet (E vërtetë ose e hequr) ose të injorohet (FALSE) rasti i tekstit.

    Ju mund të merrni kodin e funksionit këtu.

    Shembull: si të nxjerrim vargjet duke përdorur shprehje të rregullta

    Duke marrë shembullin tonë pak më tej, le të nxjerrim numrat e faturave. Për këtë, ne do të përdorim një regex shumë të thjeshtë që përputhet me çdo numër 7-shifror:

    Modeli : \b\d{7}\b

    Vendos modeli në A2 dhe do ta kryeni punën me këtë formulë kompakte dhe elegante:

    =RegExpExtract(A5, $A$2)

    Nëse një model përputhet, formula nxjerr një numër faturë, nëse nuk gjendet asnjë përputhje - asgjë nuk është kthyer.

    Për më shumë shembuj, ju lutemi shikoni: Si të nxjerrni vargjet në Excelduke përdorur regex.

    Excel Regex Replace Funksioni

    Funksioni RegExpReplace zëvendëson vlerat që përputhen me një regex me tekstin që specifikoni.

    RegExpReplace(tekst, model, zëvendësim , [numri_shembull], [match_case])

    Ku:

    • Tekst (kërkohet) - vargu i tekstit për të kërkuar.
    • Modeli (kërkohet) - shprehja e rregullt për t'u përputhur.
    • Zëvendësimi (kërkohet) - teksti për të zëvendësuar nënvargjet që përputhen me.
    • Numri_shembull (opsionale) - shembulli për të zëvendësuar. Parazgjedhja është "të gjitha ndeshjet".
    • Përputhja_rasti (opsionale) - kontrollon nëse do të përputhet (E vërtetë ose e lënë jashtë) ose të injorohet (FALSE) rasti i tekstit.

    Kodi i funksionit është i disponueshëm këtu.

    Shembull: si të zëvendësoni ose hiqni vargjet duke përdorur regexes

    Disa nga regjistrimet tona përmbajnë numra të kartës së kreditit. Ky informacion është konfidencial dhe mund të dëshironi ta zëvendësoni me diçka ose ta fshini fare. Të dyja detyrat mund të realizohen me ndihmën e funksionit RegExpReplace . Si? Në një skenar të dytë, ne do të zëvendësojmë me një varg bosh.

    Në tabelën tonë të mostrës, të gjithë numrat e kartave kanë 16 shifra, të cilat janë shkruar në 4 grupe të ndara me hapësira. Për t'i gjetur ato, ne përsërisim modelin duke përdorur këtë shprehje të rregullt:

    Modeli : \b\d{4} \d{4} \d{4} \d{4}\ b

    Për zëvendësim, përdoret vargu i mëposhtëm:

    Zëvendësimi : XXXX XXXX XXXXXXXX

    Dhe këtu është një formulë e plotë për të zëvendësuar numrat e kartës së kreditit me informacione të pandjeshme:

    =RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "XXXX XXXX XXXX XXXX")

    Me regex dhe tekstin zëvendësues në qeliza të veçanta ( A2 dhe B2), formula funksionon po aq mirë:

    Në Excel, "heqja" është një rast i veçantë i "zëvendësimit". Për të hequr numrat e kartës së kreditit, thjesht përdorni një varg bosh ("") për argumentin zëvendësues :

    =RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "")

    Këshillë. Për të marrë linjat boshe në rezultate, mund të përdorni një funksion tjetër RegExpReplace siç tregohet në këtë shembull: Si të hiqni linjat bosh duke përdorur regex.

    Për më shumë informacion, ju lutemi shikoni:

    • Si të zëvendësoni vargjet në Excel duke përdorur regex
    • Si të hiqni vargjet duke përdorur regex
    • Si të hiqni hapësirën e bardhë duke përdorur regex

    Mjetet Regex për t'u përputhur, nxjerrë , zëvendësoni dhe hiqni nënvargjet

    Përdoruesit e Suite tonë Ultimate mund të marrin të gjithë fuqinë e shprehjeve të rregullta pa futur një rresht të vetëm kodi në librat e tyre të punës. I gjithë kodi i nevojshëm shkruhet nga zhvilluesit tanë dhe integrohet pa probleme në Excel gjatë instalimit.

    Ndryshe nga funksionet VBA të diskutuara më sipër, funksionet e Ultimate Suite janë të bazuara në .NET, gjë që jep dy përparësi kryesore:

    1. Mund të përdorni shprehje të rregullta në librat normalë të punës .xlsx pa shtuar asnjë kod VBA dhe pa pasur nevojë t'i ruani ato si skedarë të aktivizuar me makro.
    2. . Motori NET Regex mbështet klasikët me funksione të plotashprehje të rregullta, të cilat ju lejojnë të ndërtoni modele më të sofistikuara.

    Si të përdorni Regex në Excel

    Me të instaluar Ultimate Suite, përdorimi i shprehjeve të rregullta në Excel është po aq i thjeshtë sa këto dy hapa :

    1. Në skedën Ablebits Data , në grupin Text , kliko Regex Tools .

    2. Në panelin Regex Tools , bëni sa më poshtë:
      • Zgjidhni të dhënat burimore.
      • Futni modelin tuaj regex.
      • Zgjidhni të dhënat e burimit. 24>Zgjidhni opsionin e dëshiruar: Përputh , Nxjerrja , Hiq ose Zëvendëso .
      • Për të marrë rezultatin si formulë dhe jo vlerë, zgjidhni kutinë e kontrollit Fut si formulë .
      • Shtypni butonin e veprimit.

      Për shembull, për të hequr numrat e kartës së kreditit nga qelizat A2:A6, ne konfigurojmë këto cilësime:

    Menjëherë, një funksion AblebitsRegex do të futet në një kolonë të re në të djathtë të origjinalit tuaj të dhëna. Në rastin tonë, formula është:

    =AblebitsRegexRemove(A2, "\b\d{4} \d{4} \d{4} \d{4}\b")

    Pasi të jetë aty formula, mund ta modifikoni, kopjoni ose zhvendosni atë si çdo formulë origjinale.

    Si të futni një formulë Regex drejtpërdrejt në një qelizë

    Funksionet AblebitsRegex gjithashtu mund të futen drejtpërdrejt në një qelizë pa përdorur ndërfaqen e shtesës. Ja se si:

    1. Klikoni butonin fx në shiritin e formulave ose Fut Funksionin në skedën Formulat .
    2. Në kutinë e dialogut Fut Funksionin , zgjidhni AblebitsUDFs kategorinë, zgjidhni funksionin e interesit dhe klikoni OK.

    3. Përcaktoni argumentet e funksionit siç bëni zakonisht dhe klikoni OK. U krye!

    Për më shumë informacion, ju lutemi shikoni Regex Tools për Excel.

    Kjo është mënyra se si të përdorni shprehjet e rregullta për të përputhur, nxjerrë, zëvendësuar dhe hequr tekstin në qelizat e Excel. Ju falënderoj që lexoni dhe mezi pres t'ju shohim në blogun tonë javën e ardhshme!

    Shkarkimet e disponueshme

    Excel Regex - shembuj formulash (skedari .xlsm)

    Ultimate Suite - versioni i provës (skedari .exe)

    ose bazuar në .NET) ose instaloni mjete të palëve të treta që mbështesin regexes.

    Fletë mashtrimi Excel Regex

    Pavarësisht nëse një model regex është shumë i thjeshtë ose jashtëzakonisht i sofistikuar, ai ndërtohet duke përdorur sintaksën e zakonshme. Ky tutorial nuk synon t'ju mësojë shprehje të rregullta. Për këtë, ka shumë burime në internet, nga mësimet falas për fillestarët deri te kurset premium për përdoruesit e avancuar.

    Më poshtë ofrojmë një referencë të shpejtë për modelet kryesore RegEx që do t'ju ndihmojnë të kuptoni bazat. Mund të funksionojë gjithashtu si fleta juaj e mashtrimit kur studioni shembuj të mëtejshëm.

    Nëse jeni të kënaqur me shprehjet e rregullta, mund të kaloni drejtpërdrejt te funksionet RegExp.

    Personazhet

    Këto janë modelet më të përdorura për të përputhur disa karaktere.

    Modeli Përshkrim Shembull Përputhje
    . Karakteri i shkrehtë: përputhet me çdo karakter të vetëm përveç një ndërprerjeje rreshti .ot pika , hot , pot , @ot
    \d Karakteri shifror: çdo shifër e vetme nga 0 në 9 \d a1b , përputhet me 1
    \D Çdo karakter që NUK është një shifër \D a1b , përputhet me a dhe b
    \s Karakteri i hapësirës së bardhë: hapësira, skeda, rreshti i ri dhe kthimi i karrocës .\s. 3 cent , përputhet 3 c
    \S Çdokarakter pa hapësirë ​​të bardhë \S+ Me 30 cent , përputhet me 30 dhe cent
    \w Karakteri i fjalës: çdo shkronjë, shifër ose nënvizim ASCII \w+ 5_cats*** , përputhet me 5_cats
    \W Çdo karakter që NUK është një karakter alfanumerik ose nënvizim \W+ 5_cats*** , përputhet me ***
    \t Tab
    \n Rreshti i ri \n\d+ Në dy rreshta vargu më poshtë, përputhet me 10

    5 mace

    10 qen

    \ I shpëton kuptimit të veçantë të një karakteri, kështu që mund të kërko për të \.

    \w+\.

    I shpëton një pikë që të mund të gjesh fjalë për fjalë "." karakter në një varg

    Z. , Znj. , Prof.

    Klasat e personazheve

    Duke përdorur këto modele, mund të përputhësh elementë të grupeve të ndryshme të karaktereve.

    Modeli Përshkrim Shembull Përputhet
    [karaktere] Përputhet me çdo karakter të vetëm në kllapa d[oi]g dog dhe dig
    [^personazhe] Përputhet me ndonjë karakter të vetëm JO në kllapa d[^oi]g Përputhet dag, dug , d1g

    Nuk përputhet me qen dhe dig

    [nga–në] Përputhet me çdo karakter në diapazonin midiskllapa [0-9]

    [a-z]

    [A-Z]

    Çdo shifër e vetme nga 0 në 9

    Çdo shkronjë e vetme e vogël

    Çdo shkronjë e vetme e madhe

    Quantifikuesit

    Quantifikuesit janë shprehje të veçanta që përcaktojnë numrin e karaktereve që duhet të përputhen. Një sasior zbatohet gjithmonë për karakterin përpara tij.

    Modeli Përshkrim Shembull Përputhje
    * Zero ose më shumë dukuri 1a* 1, 1a , 1aa, 1aaa , etj.
    + Një ose më shumë ndodhi po+ tenxhere , përputhet po

    poor , përputhet poo

    ? Zero apo një dukuri roa?d rrugë, shufër
    *? Zero ose më shumë dukuri, por sa më pak të jetë e mundur 1a*? 1a , 1aa dhe 1aaa , përputhen 1a
    +? Një ose më shumë dukuri, por sa më pak të jetë e mundur po+? tenxhere dhe poor , përputhet me po
    ?? Zero ose një dukuri , por sa më pak të jetë e mundur roa?? rrugë dhe shkopi , përputhet ro
    {n} Përputhet me modelin e mëparshëm n herë \d{3} Saktësisht 3 shifra
    {n ,} Përputhet me modelin e mëparshëm n ose më shumë herë \d{3,} 3 ose më shumë shifra
    {n,m} Përputhet memodeli i mëparshëm ndërmjet n dhe m herë \d{3,5} Nga 3 deri në 5 shifra

    Grupimi

    Konstruktet e grupimit përdoren për të kapur një nënvarg nga vargu burimor, kështu që mund të kryeni disa veprime me të.

    Sintaksa Përshkrimi Shembull Përputhje
    (modeli) Grupi i kapjes: kap një nënvarg që përputhet dhe i cakton një numër rendor (\d+) 5 mace dhe 10 qen , kap 5 (grupi 1) dhe 10 (grupi 2)
    (?:pattern) Grupi që nuk kap: përputhet me një grup, por nuk e kap atë (\d+)(?: qentë) 5 mace dhe 10 qen , kapet 10
    \1 Përmbajtja e grupit 1 (\d+)\+(\d+)=\2\+\1 Përputhet 5+10=10+5 dhe kap 5 dhe 10 , të cilat janë në kapjen e grupeve
    \2 Përmbajtja e grupit 2

    Spirancat

    Spirancat përcaktojnë një pozicion në vargun e hyrjes ku të kërkohet një ndeshje.

    Spirancë Përshkrim Shembull Ndeshjet
    ^ Fillimi i vargut

    Shënim: [^brenda kllapave] do të thotë "jo"

    ^\d+ Çdo numër shifrash në fillimi i vargut.

    5 mace dhe 10 qen , përputhet me 5

    $ Fundi i vargut \d+$ Çdo numër shifrash në fund të vargut.

    10Y

    (?<=) Vështrim pozitiv nga pas (?<=Y)X Përputhet me shprehjen X kur paraprihet nga Y (d.m.th. nëse ka Y prapa X-së)
    (? Shikim negativ nga pas (? Përputhet shprehja X kur NUK paraprihet nga Y

    Tani që i dini gjërat thelbësore, le të kalojmë në pjesën më interesante - duke përdorur regexes në të dhëna reale për të analizuar vargjet dhe për të gjetur informacionin e kërkuar. Nëse keni nevojë për më shumë detaje rreth sintaksës, udhëzuesi i Microsoft për gjuhën e shprehjes së rregullt mund të jetë i dobishëm.

    Funksionet e personalizuara RegEx për Excel

    Siç është përmendur tashmë, Microsoft Excel nuk ka funksione të integruara RegEx. Për të aktivizuar shprehjet e rregullta, ne kemi krijuar tre funksione të personalizuara VBA (aka funksione të përcaktuara nga përdoruesi). Ju mund të kopjoni kodet nga faqet e lidhura më poshtë ose nga mostra jonë librin e punës dhe më pas ngjisni në skedarët tuaj të Excel.

    Si funksionojnë funksionet e VBA RegExp

    Ky seksion shpjegon mekanikën e brendshme dhe mund të jetë i jashtëzakonshëm u shkon atyre që duan të dinë saktësisht se çfarë ndodh në fund.

    Për të filluar përdorimin e shprehjeve të rregullta në VBA, ju duhet ose të aktivizoni bibliotekën e referencës së objekteve RegEx ose të përdorni funksionin CreateObject. Për t'ju kursyer nga telashet e vendosjes së referencës në redaktuesin VBA, ne zgjodhëm qasjen e fundit.

    Objekti RegExp ka 4 veti:

    • Modeli - eshte modeli për t'u përputhur në vargun e hyrjes.
    • Global - kontrollon nëse do të gjenden të gjitha përputhjet në vargun e hyrjes ose vetëm në atë të parën. Në funksionet tona, është vendosur në "E vërtetë" për të marrë të gjitha ndeshjet .
    • Multiline - përcakton nëse modeli do të përputhet me ndërprerjet e rreshtave në vargjet me shumë rreshta apo vetëm në rreshtin e parë. Në kodet tona, është vendosur në True për të kërkuar në çdo rresht .
    • IgnoreCase - përcakton nëse një shprehje e rregullt është e ndjeshme ndaj shkronjave të vogla (parazgjedhur) ose shkronjave- i pandjeshëm (i vendosur në E vërtetë). Në rastin tonë, kjo varet nga mënyra se si e konfiguroni parametrin opsional match_case . Si parazgjedhje, të gjitha funksionet janë ndjeshme ndaj shkronjave të vogla .

    Kufizimet e VBA RegExp

    Excel VBA zbaton modelet thelbësore regex, por i mungojnë shumë veçori të avancuara disponueshme në .NET, Perl, Java dhe motorë të tjerë regex. Për shembull, VBA RegExp nuk mbështet modifikues inline si (?i) për përputhjen e pandjeshme ndaj shkronjave ose (?m) për modalitetin me shumë rreshta, lookbehinds, klasa POSIX, për të përmendur disa.

    Excel Regex Funksioni i përputhjes

    Funksioni RegExpMatch kërkon një varg hyrje për tekstin që përputhet me një shprehje të rregullt dhe kthen TRUE nëse gjendet një përputhje, FALSE ndryshe.

    RegExpMatch(tekst, model, [ match_case])

    Ku:

    • Tekst (kërkohet) - një ose më shumë vargje për të kërkuar.
    • Modeli ( kërkohet) - i rregulltshprehje që të përputhet.
    • Përputhja_rasti (opsionale) - lloji i përputhjes. E VËRTETË ose e lënë pas dore - e ndjeshme ndaj shkronjave; E FALSE - e pandjeshme ndaj shkronjave të vogla

    Kodi i funksionit është këtu.

    Shembull: si të përdoren shprehje të rregullta për të përputhur vargjet

    Në grupin e mëposhtëm të të dhënave, supozoni se dëshironi për të identifikuar hyrjet që përmbajnë kodet SKU.

    Duke pasur parasysh se çdo SKU fillon me 2 shkronja të mëdha, e ndjekur nga një vizë ndarëse, e ndjekur nga 4 shifra, mund t'i përputhni ato duke përdorur shprehjen e mëposhtme.

    Modeli : \b[A-Z]{2}-\d{4}\b

    Ku [A-Z]{2} nënkupton çdo 2 shkronja të mëdha nga A në Z dhe \d{4 } do të thotë çdo 4 shifër nga 0 në 9. Kufiri i fjalës \b tregon se një SKU është një fjalë e veçantë dhe jo pjesë e një vargu më të madh.

    Me modelin e vendosur, filloni të shkruani një formulë siç bëni zakonisht , dhe emri i funksionit do të shfaqet në listën e sugjeruar nga AutoComplete e Excel:

    Duke supozuar se vargu origjinal është në A5, formula shkon si më poshtë:

    =RegExpMatch(A5, "\b[A-Z]{2}-\d{3}\b")

    Për lehtësi, mund të futni shprehjen e rregullt në një qelizë të veçantë dhe të përdorni një referencë absolute ($A$2) për argumentin modeli t. Kjo siguron që adresa e qelizës do të mbetet e pandryshuar kur kopjoni formulën në qeliza të tjera:

    =RegExpMatch(A5, $A$2)

    Për të shfaqur etiketat tuaja të tekstit në vend të TRUE dhe FALSE, vendosni RegExpMatch në funksionin IF dhe specifikoni tekstet e dëshiruara në value_if_true dhe value_if_false plus 5 jep 15 , përputhet me 15

    \b Kufiri i fjalës \bjoy\b Përputhet gëzim si fjalë më vete, por jo në të këndshme . \B JO një kufi fjalësh \Bjoy\B Përputhet gëzim të këndshme , por jo si fjalë më vete.

    Konstruksioni i Alternimit (OR)

    Operandi i alternimit mundëson logjikën OR, kështu që ju mund të përputheni me këtë ose atë element.

    Ndërtimi Përshkrim Shembull Përputhje

    Michael Brown është një entuziast i përkushtuar i teknologjisë me një pasion për thjeshtimin e proceseve komplekse duke përdorur mjete softuerike. Me më shumë se një dekadë përvojë në industrinë e teknologjisë, ai ka përmirësuar aftësitë e tij në Microsoft Excel dhe Outlook, si dhe Google Sheets dhe Docs. Blogu i Michael është i përkushtuar ndaj ndarjes së njohurive dhe ekspertizës së tij me të tjerët, duke ofruar këshilla dhe mësime të thjeshta për t'u ndjekur për të përmirësuar produktivitetin dhe efikasitetin. Pavarësisht nëse jeni një profesionist me përvojë apo fillestar, blogu i Michael ofron njohuri të vlefshme dhe këshilla praktike për të përfituar sa më shumë nga këto mjete softuerike thelbësore.