Excel RegEx adibideak: formuletan adierazpen erregularrak erabiltzea

  • Partekatu Hau
Michael Brown

Inoiz ezin da ulertu zergatik ez diren adierazpen erregularrak onartzen Excel formuletan? Orain, hauek dira :) Gure funtzio pertsonalizatuekin, eredu zehatz batekin bat datozen kateak erraz aurkitu, ordezkatu, atera eta kendu ditzakezu.

Lehen begiratuan, Excel-ek testu-katerako behar duzun guztia dauka. manipulazioak. Hmm... zer gertatzen da adierazpen erregularekin? Aupa, ez dago Excel-en Regex funtzio integraturik. Baina inork ez du esaten ezin ditugunik geureak sortu :)

    Zer da adierazpen erregularra?

    Adierazpen erregularra ( regex edo <8)>regexp ) bilaketa-eredu bat definitzen duen karaktere-sekuentzia berezia da. Eredu hori erabiliz, kate batean bat datorren karaktere konbinazio bat aurki dezakezu edo datuak balioztatu. Komodinen idazkera ezagutzen baduzu, erregimenak komodinen bertsio aurreratu gisa pentsa ditzakezu.

    Adierazpen erregularrek karaktere, operadore eta eraikuntza bereziz osatutako sintaxi propioa dute. Adibidez, [0-5] 0tik 5era arteko edozein zifra bat dator.

    Adierazpen erregularrak programazio hizkuntza askotan erabiltzen dira JavaScript eta VBA barne. Azken honek RegExp objektu berezi bat du, gure funtzio pertsonalizatuak sortzeko erabiliko duguna.

    Excel-ek onartzen al du regex-a?

    Tamalez, Excel-en ez dago barneratutako RegEx funtziorik. Zure formuletan adierazpen erregularrak erabili ahal izateko, zure erabiltzaileak definitutako funtzio propioa sortu beharko duzu (VBAargumentuak:

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

    Formula adibide gehiago lortzeko, ikus:

    • Nola lotu kateak adierazpen erregularrak erabiliz
    • Excel datuen baliozkotzea regexeekin

    Excel Regex Extract funtzioa

    RegExpExtract funtzioak adierazpen erregular batekin bat datozen azpikateak bilatzen ditu eta bat-etortze guztiak ateratzen ditu edo bat-etortze zehatza.

    RegExpExtract(testua, eredua, [instantzia_zenbakia], [match_case_match])

    Non:

    • Testua (beharrezkoa) - bilatu beharreko testu-katea in.
    • Eredua (beharrezkoa) - bat datorren adierazpen erregularra.
    • Instantzia_zenbakia (aukerakoa) - zein instantzia adierazten duen serie-zenbakia. atera. Baztertu ezkero, aurkitutako bat-etortze guztiak (lehenetsia) itzultzen ditu.
    • Match_case (aukerakoa) - bat (EGIA ala ezabatu) edo ez ikusi (FALSE) testuaren maiuskulak eta minuskulak bat etorri behar den definitzen du.

    Funtzioaren kodea hemen lor dezakezu.

    Adibidea: nola atera kateak adierazpen erregularrak erabiliz

    Gure adibidea pixka bat harago hartuta, atera ditzagun faktura-zenbakiak. Horretarako, 7 zifrako edozein zenbakirekin bat datorren adierazpen erregular sinple bat erabiliko dugu:

    Eredua : \b\d{7}\b

    Jarri A2ko eredua eta formula trinko eta dotore honekin lana egingo duzu:

    =RegExpExtract(A5, $A$2)

    Eredu bat bat datorrena bada, formulak faktura-zenbaki bat ateratzen du, bat ez bada aurkitzen. - ez da ezer itzultzen.

    Adibide gehiagorako, ikus: Nola atera kateak Excel-enregex erabiliz.

    Excel Regex Ordezkatu funtzioa

    RegExpReplace funtzioak adierazten duen testuarekin bat datozen balioak ordezkatzen ditu regex bat.

    RegExpReplace(testua, eredua, ordezkapena) , [instantzia_zenbakia], [match_case])

    Non:

    • Testua (beharrezkoa) - bilatu beharreko testu-katea.
    • Eredua (beharrezkoa) - bat datozen adierazpen erregularra.
    • Ordezpena (beharrezkoa) - bat datozen azpikateak ordezkatzeko testua.
    • Instantzia_zenbakia (aukerakoa) - ordezkatu beharreko instantzia. Lehenetsia "bat-etortze guztiak" da.
    • Match_case (aukerakoa) - bat (EGIA ala ezabatu) edo ez ikusi (FALSE) testuaren maiuskulak eta minuskulak bat etortzea kontrolatzen du.

    Funtzioaren kodea hemen dago eskuragarri.

    Adibidea: nola ordezkatu edo kendu kateak erregimenak erabiliz

    Gure erregistro batzuek kreditu-txartelen zenbakiak dituzte. Informazio hau isilpekoa da, eta baliteke zerbaitekin ordeztu edo guztiz ezabatu nahi izatea. Bi zereginak RegExpReplace funtzioaren laguntzaz bete daitezke. Nola? Bigarren eszenatoki batean, kate huts batekin ordezkatuko dugu.

    Gure lagin-taulan, txartel-zenbaki guztiek 16 zifra dituzte, zuriunez bereizita dauden 4 taldetan idatzita. Horiek aurkitzeko, eredua errepikatuko dugu adierazpen erregular hau erabiliz:

    Eredua : \b\d{4} \d{4} \d{4} \d{4}\ b

    Ordezkatzeko, kate hau erabiltzen da:

    Ordezkatzea : XXXX XXXX XXXXXXXX

    Eta hona hemen formula osoa ordezkatzeko kreditu-txartelen zenbakiak sentikortasunik gabeko informazioarekin:

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

    Erregulazioarekin eta ordezko testuarekin gelaxka bereizietan ( A2 eta B2), formulak berdin funtzionatzen du:

    Excel-en, "kentzea" "ordezkatzea" kasu jakin bat da. Kendu kreditu-txartelen zenbakiak, erabili kate huts ("") ordezpena argumenturako:

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

    Aholkua. Emaitzetan lerro hutsak konpontzeko, beste RegExpReplace funtzio bat erabil dezakezu adibide honetan erakusten den bezala: Nola kendu lerro hutsak regex erabiliz.

    Informazio gehiago lortzeko, ikus:

    • Nola ordezkatu kateak Excel-en regex erabiliz
    • Nola kendu kateak regex erabiliz
    • Nola kendu zuriuneak arau erregularrak erabiliz

    Regex Tresnak bat etortzeko, atera , ordezkatu eta kendu azpikateak

    Gure Ultimate Suite-ko erabiltzaileek adierazpen erregularren ahalmen guztia lor dezakete beren lan-liburuetan kode lerro bakar bat sartu gabe. Beharrezko kode guztia gure garatzaileek idazten dute eta zure Excel-en erraz integratzen dute instalazioan.

    Goian aipatu ditugun VBA funtzioak ez bezala, Ultimate Suite-ren funtzioak .NET oinarritutakoak dira, eta horrek bi abantaila nagusi ematen ditu:

    1. Adierazpen erregularrak erabil ditzakezu .xlsx lan-liburu arruntetan VBA koderik gehitu gabe eta makro-gaitutako fitxategi gisa gorde beharrik gabe.
    2. .NET Regex motorrak ezaugarri osoko klasikoak onartzen ditu.adierazpen erregularrak, eredu sofistikatuagoak eraikitzeko aukera ematen duena.

    Nola erabili Regex Excel-en

    Ultimate Suite instalatuta dagoenez, Excel-en adierazpen erregularrak erabiltzea bi urrats hauek bezain erraza da. :

    1. Ablebits Data fitxan, Testua taldean, sakatu Regex Tresnak .

    2. Regex Tresnak panelean, egin hau:
      • Hautatu iturburuko datuak.
      • Sartu zure regex eredua.
      • Aukeratu nahi duzun aukera: Lotu , Atera , Kendu edo Ordezkatu .
      • Emaitza gisa lortzeko formula eta ez balioa, hautatu Txertatu formula gisa kontrol-laukia.
      • Sakatu ekintza-botoia.

      Adibidez, kreditu-txartelen zenbakiak gelaxketatik kentzeko. A2:A6, ezarpen hauek konfiguratzen ditugu:

    Laster batean, AblebitsRegex funtzio bat zure jatorrizkoaren eskuinean dagoen zutabe berri batean txertatuko da. datuak. Gure kasuan, formula hau da:

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

    Formula bertan dagoenean, jatorrizko edozein formula bezala editatu, kopiatu edo mugitu dezakezu.

    Nola txertatu Regex formula bat zuzenean gelaxka batean

    AblebitsRegex funtzioak ere zuzenean txertatu daitezke gelaxka batean gehigarriaren interfazea erabili gabe. Hona hemen nola:

    1. Egin klik formula-barrako fx botoian edo Txertatu funtzioa Formulak fitxan.
    2. Txertatu funtzioa elkarrizketa-koadroan, hautatu AblebitsUDFs kategorian, aukeratu interes-funtzioa eta sakatu Ados.

    3. Definitu funtzioaren argumentuak normalean egiten duzun bezala eta sakatu Ados. Eginda!

    Informazio gehiago lortzeko, ikusi Regex tresnak Excel-erako.

    Horrela da adierazpen erregularrak nola erabili Excel gelaxketako testua parekatzeko, ateratzeko, ordezkatzeko eta kentzeko. Eskerrik asko irakurtzeagatik eta hurrengo astean gure blogean ikustea espero dut!

    Deskarga erabilgarri

    Excel Regex - formula adibideak (.xlsm fitxategia)

    Ultimate Suite - probako bertsioa (.exe fitxategia)

    edo .NET oinarritutako) edo instalatu erregulazio-erreginak onartzen dituzten hirugarrenen tresnak.

    Excel Regex cheat-orria

    Erregulazio-eredua oso sinplea edo oso sofistikatua den ala ez, sintaxi arrunta erabiliz eraikitzen da. Tutorial honek ez du adierazpen erregularrak irakastea helburu. Horretarako, baliabide ugari daude sarean, hasiberrientzako doako tutorialetatik hasi eta erabiltzaile aurreratuentzako premium ikastaroetara.

    Oinarrizkoak ulertzen lagunduko dizuten RegEx eredu nagusien erreferentzia azkar bat eskaintzen dizugu jarraian. Adibide gehiago aztertzerakoan ere zure tranpa-orri gisa funtziona dezake.

    Espresio erregularrekin gustura bazaude, zuzenean RegExp funtzioetara joan zaitezke.

    Pertsonaiak

    Hauek karaktere batzuekin bat etortzeko gehien erabiltzen diren ereduak dira.

    bat datoz
    Eredua Deskribapena Adibidea Batekaketak
    . Komodina: edozein karaktere bat dator lerro-jauzi batekin izan ezik .ot puntu , beroa , pot , @ot
    \d Digit-karakterea: edozein digitu bakarra 0tik 9ra \d a1b -n, 1
    \D Zifra bat EZ den edozein karaktere \D a1b -n, a eta b<2 bat dator>
    \s Zuzen karakterea: zuriunea, tabulazioa, lerro berria eta orga-itzulera .\s. In 3 zentimo , partidak 3 c
    \S Edozeinzuriunerik gabeko karakterea \S+ 30 zentimo tan, 30 eta zentimo
    \w Hitz karakterea: edozein ASCII letra, zifra edo azpimarra \w+ 5_cats*** -n, bat dator 5_cats
    \W Kaktere alfanumerikoa edo azpimarra EZ ez den edozein karaktere \W+ 5_cats*** atalean, ***
    \t Tab bat datoz>
    \n Marra berria \n\d+ Bi lerroan beheko katea, 10

    5 katu

    10 txakurrekin bat dator

    \ Caraktere baten esanahi berezitik ihes egiten du, beraz, bilatu \.

    \w+\.

    Punto batetik ihes egiten du "." literala aurki dezazun. kate bateko karakterea

    Jauna , Andrea , Prof.

    Karaktere-klaseak

    Eredu hauek erabiliz, karaktere-multzo ezberdinetako elementuak pareka ditzakezu.

    Eredua Deskribapena Adibidea Etortzen da
    [karaktereak] Karetxen artean dagoen edozein karaktere bat dator d[oi]g txakurra eta dig
    [^karaktereak] Parentesi artean EZ daukan edozein karaktere bat dator d[^oi]g Etorkizunak dag, dug , d1g

    Ez dator bat txakurra eta dig

    [from–to] Edozein karaktere bat datorrela arteko barrutian.parentesi [0-9]

    [a-z]

    [A-Z]

    Edozein zifra bakarra 0tik 9ra

    Edozein letra minuskula bakarra

    Edozein letra larriz

    Kantifikatzaileak

    Kantifikatzaileak bat etorriko den karaktere kopurua zehazten duten adierazpen bereziak dira. Zenbatzaile bat beti aplikatzen zaio aurreko karaktereari.

    Eredua Deskribapena Adibidea Bat-etortzeak
    * Zero agerraldi edo gehiago 1a* 1, 1a , 1aa, 1aaa , etab.
    + Agerraldi bat edo gehiago po+ potean , partidak po

    pobre -n, partidak poo

    ? Zero edo agerraldi bat roa?d errepide, haga
    *? Zero edo agerraldi gehiago, baina ahalik eta gutxiago 1a*? 1a , 1aa eta 1aaa -etan, bat-etortzeak 1a
    +? Agerraldi bat edo gehiago, baina ahalik eta gutxiago po+? pot eta eskasa -n, po
    ?? Zero edo agerraldi bat da , baina ahalik eta gutxiago roa?? errepidea eta rod -n, ro
    {n} Aurreko ereduarekin bat egiten du n aldiz \d{3} Zehazki 3 zifra
    {n ,} Aurreko ereduarekin n edo gehiagotan bat egiten du \d{3,} 3 zifra edo gehiago
    {n,m} Batortzen dan eta m aldiz arteko aurreko eredua \d{3,5} 3 zifratik 5era

    Taldekatzea

    Taldekatze-eraikuntzak iturburu-katetik azpikate bat harrapatzeko erabiltzen dira, horrekin eragiketaren bat egin dezakezu.

    Sintaxia Deskribapena Adibidea Etorkizunak
    (eredua) Capturing taldea: bat datorren azpikate bat hartzen du eta zenbaki ordinal bat esleitzen dio (\d+) 5 katu eta 10 txakur tan, 5 (1. taldea) eta 10 (2. taldea) harrapatzen ditu. 15>
    (?:eredua) Harrapatzen ez duen taldea: talde batekin bat dator baina ez du harrapatzen (\d+)(?: txakurrak) 5 katu eta 10 txakur tan, 10
    \1 Taldearen edukia harrapatzen du. 1 (\d+)\+(\d+)=\2\+\1 5+10=10+5 bat etortzen du eta 5 ateratzen ditu eta 10 , harrapatzeko taldeetan daudenak
    \2 2. taldearen edukia

    Aingurak

    Aingurak sarrerako katearen posizioa zehazten du non bilatu behar den partida bat.

    <14 bat datoz>Katearen amaiera
    Aingura Deskribapena Adibidea Partekadak
    ^ Katearen hasiera

    Oharra: [^kortxeteen barruan] "ez" esan nahi du

    ^\d+ Edozein zifren zenbakian. katearen hasiera.

    5 katu eta 10 txakur -n, 5

    $ \d+$ Katearen amaieran dagoen edozein zifra.

    10eanY

    (?<=) Begirada positiboa (?<=Y)X X adierazpenarekin bat dator Y-ren aurretik dagoenean (hau da, X-ren atzean Y badago)
    (? Begirada negatiboa (? X esamoldea lotzen du Y-ren aurretik EZ duenean

    Orain funtsezkoak ezagutzen dituzunean, joan gaitezen interesgarrienera - erabiliz datu errealetan kateak analizatzeko eta beharrezko informazioa aurkitzeko. Sintaxiari buruzko xehetasun gehiago behar badituzu, Adierazpen Erregularreko Hizkuntzari buruzko Microsoft-en gida lagungarria izan daiteke.

    Excel-erako RegEx funtzio pertsonalizatuak

    Esan bezala, Microsoft Excel-ek ez du barneratu RegEx funtziorik. Adierazpen erregularrak gaitzeko, hiru VBA funtzio pertsonalizatu sortu ditugu (erabiltzaileak definitutako funtzioak ere). Kodeak kopiatu ditzakezu beheko estekatutako orrietatik edo gure laginetatik. lan-liburua, eta gero itsatsi zure Excel fitxategiak.

    VBA RegExp funtzioek nola funtzionatzen duten

    Atal honek barneko mekanika azaltzen du eta agian int Backend-ean zer gertatzen den zehatz-mehatz jakin nahi dutenentzat.

    VBA-n adierazpen erregularrak erabiltzen hasteko, RegEx objektuaren erreferentzia-liburutegia aktibatu edo CreateObject funtzioa erabili behar duzu. VBA editorean erreferentzia ezartzeko arazoak aurrezteko, azken ikuspegia aukeratu dugu.

    RegExp objektuak 4 propietate ditu:

    • Eredua - da eredua sarrera-katean bat etortzeko.
    • Global - sarrerako katean bat-etortze guztiak edo lehenengoa bakarrik aurkitu behar diren kontrolatzen du. Gure funtzioetan, True gisa ezartzen da etorkizun guztiak lortzeko.
    • MultiLine - lerro anitzeko kateetan lerro-jauzietan eredua bat etorriko den zehazten du edo soilik. lehen lerroan. Gure kodeetan, True gisa ezartzen da lerro guztietan bilatzeko.
    • IgnoreCase - Adierazpen erregular bat maiuskulak eta minuskulak bereizten dituen (lehenetsia) edo maiuskulak eta minuskulak bereizten ditu. sentikorra (Egia gisa ezarrita). Gure kasuan, aukerako match_case parametroa konfiguratzen duzunaren araberakoa da. Lehenespenez, funtzio guztiak maiuskulak eta minuskulak bereizten dituzte .

    VBA RegExp mugak

    Excel VBA-k ezinbesteko regex ereduak ezartzen ditu, baina ezaugarri aurreratu asko falta ditu. .NET, Perl, Java eta beste regex motor batzuetan eskuragarri. Adibidez, VBA RegExp-ek ez du onartzen lerroko modifikatzailerik (?i) maiuskulak eta minuskulak bereizten ez duten bat etortzeko edo (?m) lerro anitzeko modurako, begiradarako, POSIX klaseetarako, batzuk aipatzearren.

    Excel Regex Match funtzioa

    RegExpMatch funtzioak sarrerako kate batean bilatzen du adierazpen erregular batekin bat datorren testua eta EGIA itzultzen du bat-etortze bat aurkitzen bada, FALSE bestela.

    RegExpMatch(testua, eredua, [ match_case])

    Non:

    • Testua (beharrezkoa) - bilatu beharreko kate bat edo gehiago.
    • Eredua ( beharrezkoa) - erregularrabat etortzeko adierazpena.
    • Match_case (aukerakoa) - bat-etortze mota. EGIA edo baztertua - maiuskulak eta minuskulak bereizten ditu; FALSE - maiuskulak eta minuskulak bereizten ditu

    Funtzioaren kodea hemen dago.

    Adibidea: nola erabili adierazpen erregularrak kateak bat etortzeko

    Beheko datu multzoan, demagun nahi duzula SKU kodeak dituzten sarrerak identifikatzeko.

    SKU bakoitza 2 letra larriz hasten dela kontuan hartuta, marratxo batekin jarraian, eta ondoren 4 zifrarekin, bat egin dezakezu honako esapide hau erabiliz.

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

    Non [A-Z]{2} edozein letra larriz esan nahi du Atik Z eta \d{4 } 0tik 9ra bitarteko edozein 4 zifra esan nahi du. \b hitzaren mugak SKU bat hitz bereizia dela eta ez kate handiago baten parte dela adierazten du.

    Eredua ezarrita, hasi formula bat idazten ohi duzun bezala. , eta funtzioaren izena Excel-en Osatze automatikoak iradokitako zerrendan agertuko da:

    Jatorrizko katea A5-n dagoela suposatuz, formula honela doa:

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

    Erosotasunerako, adierazpen erregularra beste gelaxka batean sar dezakezu eta erreferentzia absolutu bat ($A$2) erabil dezakezu eredua argumenturako t. Honek bermatzen du gelaxka-helbidea aldatu gabe geratuko dela formula beste gelaxka batzuetara kopiatzen duzunean:

    =RegExpMatch(A5, $A$2)

    Zure testu-etiketak EGIA eta GEZURRA izan beharrean, habiatu RegExpMatch IF funtzioan eta zehaztu nahi dituzun testuak value_if_true eta value_if_false ataleangehi 5ek 15 ematen du, 15 bat dator

    \b Hitz muga \bjoy\b Etortzen da poza hitz bereizi gisa, baina ez gozagarri n. \B EZ da hitzaren muga \Bjoy\B Etortzen da joy enjoyable -n, baina ez hitz bereizi gisa.

    Alternazio (OR) eraikuntza

    Alternazio-eragigaiak OR logika gaitzen du, beraz, elementu hau edo beste bat egin dezakezu.

    Eraiki Deskribapena Adibidea Parteenketak

    Michael Brown teknologia-zale dedikatua da, software-tresnak erabiliz prozesu konplexuak sinplifikatzeko grina duena. Hamarkada bat baino gehiagoko esperientzia duen teknologia-industrian, Microsoft Excel eta Outlook-en eta Google Sheets eta Docs-en trebetasunak landu ditu. Michael-en bloga bere ezagutzak eta esperientziak besteekin partekatzera zuzenduta dago, produktibitatea eta eraginkortasuna hobetzeko aholku eta tutorial errazak eskaintzen ditu. Profesional ondua edo hasiberria izan, Michael-en blogak informazio baliotsuak eta aholku praktikoak eskaintzen ditu funtsezko software-tresna horiei etekinik handiena ateratzeko.