Potrjevanje podatkov v programu Excel z uporabo regularnih izrazov (Regex)

  • Deliti To
Michael Brown

V učbeniku je prikazano preverjanje podatkov v Excelu z uporabo regularnih izrazov s pomočjo funkcije RegexMatch po meri.

Ko gre za omejevanje uporabniškega vnosa v Excelovih delovnih listih, je potrjevanje podatkov nepogrešljivo. Želite v določeni celici dovoliti le številke ali datume? Ali omejiti besedilne vrednosti na določeno dolžino? Ali morda prepovedati čase zunaj določenega razpona? Ni problema, vse to lahko preprosto storite s prednastavljenimi ali prilagojenimi merili potrjevanja. Kaj pa, če želim dovoliti le veljavne e-poštne naslove ali nize, ki ustrezajo določenemuposeben vzorec? Žal to ni mogoče. Rekli ste regeks? Hmm... to bi lahko delovalo!

    Kako opraviti preverjanje podatkov v Excelu z regexom

    Žal nobena od vgrajenih funkcij programa Excel ne podpira regeksov in tudi funkcija Preverjanje podatkov ni izjema. Če želite preveriti vnos celic z uporabo regularnih izrazov, morate najprej ustvariti funkcijo Regex po meri. Dodaten zaplet je, da uporabniško definiranih funkcij VBA ni mogoče neposredno posredovati funkciji Preverjanje podatkov - potrebujete posrednika v obliki poimenovane formule.

    Glede na zgoraj navedeno na kratko opišimo korake, ki jih je treba izvesti za preverjanje podatkov v Excelu z uporabo regeksov:

    1. Ustvarite funkcijo Regex po meri, ki preveri, ali se vhodna vrednost ujema z regularnim izrazom.
    2. Določite ime za formulo Regex.
    3. Konfigurirajte pravilo za preverjanje podatkov na podlagi poimenovane formule.
    4. Nastavitve potrjevanja kopirajte v poljubno število celic.

    Zveni kot načrt? Poskusimo ga uresničiti v praksi!

    Potrjevanje podatkov v Excelu z uporabo običajnih regularnih izrazov

    Ta primer obravnava zelo pogost primer - kako dovoliti samo vrednosti določenega vzorca.

    Predpostavljajmo, da imate v delovnem listu nekaj kod SKU in želite zagotoviti, da se na seznam uvrstijo samo kode, ki ustrezajo določenemu vzorcu. Če je vsak SKU sestavljen iz dveh skupin znakov, ločenih s pomišljajem, pri čemer prva skupina vključuje 3 velike črke, druga skupina pa 3 številke, lahko takšne vrednosti določite s spodnjim regexom.

    Vzorec : ^[A-Z]{3}-\d{3}$

    Upoštevajte, da sta začetek (^) in konec ($) niza zasidrana, zato v celico ni mogoče vnesti znakov, ki niso v vzorcu.

    1. Dodajte funkcijo Regex Match po meri

    Začnite z vstavljanjem funkcije RegExpMatch v delovni zvezek. Koda je že napisana s strani naših gurujev programa Excel, zato jo morate le kopirati z zgoraj navedene strani in prilepiti v urejevalnik VBA.

    Za referenco vam je na voljo sintaksa funkcije:

    RegExpMatch(besedilo, vzorec, [match_case])

    Kje:

    • Besedilo (obvezno) - izvorni niz (v našem kontekstu - potrjena celica).
    • Vzorec (obvezno) - regularni izraz za ujemanje.
    • Match_case (neobvezno) - vrsta ujemanja. TRUE ali izpuščeno - občutljivo na velikost črk; FALSE - ne občutljivo na velikost črk.

    Nasvet: Če ste uporabnik našega paketa Ultimate Suite, lahko preverjanje podatkov Regex v Excelu izvajate brez dodajanja kode VBA v delovne zvezke. Uporabite samo prilagojeno funkcijo AblebitsRegexMatch, ki je vključena v naša orodja Regex.

    2. Ustvarite poimenovano formulo

    V ciljnem delovnem listu izberite celico A1 (ne glede na njeno vsebino in ne glede na to, katero celico boste dejansko potrdili), pritisnite kombinacijo tipk Ctrl + F3, da odprete Upravitelj imen, in določite ime za to formulo:

    =RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")

    Lahko pa vnesete regeks v neko celico (A2 v tem primeru) in kot drugi argument navedete $A$2:

    =RegExpMatch(List1!A1, List1!$A$2)

    Da bo formula delovala pravilno, se prepričajte, da je v njej uporabljena relativna referenca za besedilo argument (A1) in absolutna referenca za vzorec ($A$2).

    Ker je naša formula namenjena potrjevanju številk SKU, jo ustrezno poimenujemo: Validate_SKU .

    Pomembna opomba! Pri določanju formule dvakrat preverite, ali je prvi argument se nanaša na trenutno izbrano celico , sicer formula ne bo delovala. Če je na primer na listu izbrana celica A1, v prvi argument vnesite A1 (v skladu z našimi priporočili); če je izbrana B2, potem za prvi argument uporabite B2 in tako naprej. Pravzaprav ni pomembno, katero referenco uporabite, če se ujema s trenutno izbrano celico.

    Za navodila po korakih glejte Kako ustvariti poimenovano formulo v Excelu.

    3. Nastavitev potrjevanja podatkov

    Izberite prvo celico, ki jo je treba preveriti (v našem primeru A5), in na podlagi poimenovane formule ustvarite pravilo za preverjanje podatkov po meri. Pri tem naredite naslednje:

    1. Kliknite . Podatki zavihek> Potrjevanje podatkov .
    2. V Omogočite v spustnem seznamu izberite Po meri .
    3. V ustrezno polje vnesite spodnjo formulo.

      =Validate_SKU

    4. Odstranite izbiro Ignoriranje praznega prostora sicer vaše pravilo ne bo delovalo.

    Po želji lahko vnesete sporočilo o napaki po meri, ki se prikaže ob vnosu neveljavnih podatkov v celico.

    Če se vam zdi, da potrebujete podrobne korake, tukaj: Kako nastaviti preverjanje podatkov po meri v Excelu.

    4. Kopiranje preverjanja podatkov v več celic

    Če želite kopirati nastavitve potrjevanja v več celic, morate storiti naslednje:

    1. Izberite celico s preverjanjem podatkov in pritisnite kombinacijo tipk Ctrl + C, da jo kopirate.
    2. Izberite druge celice, ki jih želite potrditi, jih kliknite z desno tipko miške, kliknite Posebna prilepitev in izberite Potrjevanje možnost.
    3. Kliknite . V REDU .

    Več informacij je na voljo v članku Kako kopirati preverjanje podatkov.

    Zdaj se bo ob vsakem poskusu vnosa neveljavnega SKU v katero koli od potrjenih polj prikazalo naslednje opozorilno sporočilo:

    Potrjevanje e-pošte z regexom

    Če želite preveriti e-pošto, najprej napišite regularni izraz, ki ustreza e-poštnemu naslovu.

    Vzorec : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za-z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$

    Za podrobno razlago sintakse glejte poglavje Regex za ujemanje veljavnih e-poštnih naslovov.

    Zdaj določite merila za preverjanje z že znanimi koraki:

    1. Vnesite zgornji regex v B2.
    2. Izberite celico A1 in določite ime, imenovano Validate_Email ki se nanaša na:

      =RegExpMatch(List1!A1, List1!$B$2)

    3. Za celico B5 uporabite preverjanje podatkov po meri z uporabo spodnje formule. Ignoriranje praznega prostora možnost ne sme biti izbrana.

      =Validate_Email

      Poleg tega lahko konfigurirate sporočilo o napaki po meri, ki uporabnika pozove k vnosu veljavnega e-poštnega naslova.

    4. Pravilo kopirajte v spodnje celice.

    Če e-poštni naslov, ki ga vnesete v potrjeno celico, ne ustreza vzorcu regex, se prikaže naslednje opozorilo:

    Preverjanje gesel z uporabo regularnih izrazov

    Pri uporabi regularnih izrazov za preverjanje gesla se morate najprej odločiti, kaj natančno naj preverja vaš regularni izraz. Tukaj je nekaj primerov, ki vas bodo morda usmerili na pravo pot.

    Geslo mora biti dolgo vsaj 6 znakov in lahko vsebuje le črke (velike ali male) in številke:

    Vzorec : ^[A-Za-z0-9]{6,}$

    Geslo mora biti dolgo najmanj 6 znakov in mora vsebovati vsaj eno črko in eno številko:

    Vzorec : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,}$

    Geslo mora biti dolgo najmanj 6 znakov in mora vsebovati vsaj eno veliko črko, eno malo črko in eno številko:

    Vzorec : ^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$

    Geslo mora biti dolgo najmanj 6 znakov in mora vsebovati vsaj eno črko, eno številko in en poseben znak:

    Vzorec : ^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$

    Po vzpostavitvi vzorca lahko preidete na nastavitev potrjevanja podatkov:

    1. Vnesite regeks gesla v C2.
    2. Izberite celico A1 in ustvarite poimenovano formulo z imenom Validate_Password :

      =RegExpMatch(List1!A1, List1!$C$2)

    3. Za celico C5 ustvarite pravilo potrjevanja po meri s spodnjo formulo. Ne pozabite odstraniti izbire Ignoriranje praznega prostora potrditveno polje.

      =Validate_Password

    4. Pravilo kopirajte v poljubno število celic.

    Zdaj lahko na seznam varno dodajate nova gesla. Če se vhodni niz ne ujema z regexom, vas bo naslednje opozorilo opomnilo, katere vrste vrednosti so sprejete:

    Preverjanje veljavnosti podatkov regex ne deluje

    Če preverjanje podatkov z znakom Regex v Excelu ne deluje, je to najverjetneje posledica enega od naslednjih razlogov.

    Manjka funkcija RegExpMatch

    Pred uporabo funkcije Data Validation v delovni zvezek vstavite kodo funkcije RegExpMatch.

    Nepravilen regularni izraz

    Če se želite prepričati, da vaš regex deluje po pričakovanjih, lahko v neko celico vnesete formulo RegExpMatch in preverite rezultate. Za več informacij glejte Excelovo ujemanje regularnih izrazov s primeri.

    Za analizo in odpravljanje napak v regularnih izrazih lahko uporabite brezplačne spletne storitve za testiranje regeksov, kot sta RegEx101 ali RegExr.

    Napačno poimenovana formula

    Zelo pogost razlog za neuspešno preverjanje podatkov je formula z imenom Regex, ki se nanaša na napačno celico. V vseh primerih smo priporočili opredelitev formule, ki se nanaša na A1:

    =RegExpMatch(A1, regex)

    To deluje le, če celica A1 je aktiven pri opredelitvi imena in relativna referenca (brez znaka $).

    Ideja je, da se relativni sklic, določen v formuli (A1), samodejno spremeni glede na relativni položaj potrjene celice. Z drugimi besedami, celica A1 je izbrana samo zaradi priročnosti in doslednosti. Dejansko lahko izberete celico B1 in se sklicujete na B1, izberete celico C1 in se sklicujete na C1 in tako naprej. Ključna stvar je, da se referenčna celica mora biti aktivna celica .

    Če želite preveriti, ali je poimenovana formula pravilna, izberite katero koli celico v delovnem listu, odprite Upravitelja imen in preverite, na katero celico kaže formula. Če se nanaša na trenutno izbrano celico, je formula pravilna. V nasprotnem primeru morate spremeniti sklic v prvem argumentu.

    Na spodnji sliki je izbrana celica A7, kar pomeni, da mora imeti poimenovana formula v prvem argumentu A7. Drugi argument ($A$2) se nanaša na regex - ta referenca naj bi ostala konstantna, zato je zaklenjena z znakom $.

    Izbrana možnost Ignoriraj prazno

    Ko nastavljate pravilo za preverjanje podatkov po meri, je pomembno, da odkljukate možnost Ignoriranje praznega prostora V nasprotnem primeru pravilo ne bo delovalo zaradi naslednjega razloga:

    Če ujemanje ni najdeno, funkcija RegExpMatch vrne FALSE. Ignoriranje praznega prostora izbrana možnost, FALSE pomeni prazno in se ne upošteva.

    Druga rešitev je izrecna navedba, da mora formula vrniti TRUE:

    =RegExpMatch(...)=TRUE

    To je način preverjanja podatkov v Excelu z uporabo regularnih izrazov. Zahvaljujem se vam za branje in se veselim, da se naslednji teden vidimo na našem blogu!

    Praktični delovni zvezek za prenos

    Primeri potrjevanja podatkov z regeksom (.xlsm datoteka)

    Michael Brown je predan tehnološki navdušenec s strastjo do poenostavljanja kompleksnih procesov z uporabo programskih orodij. Z več kot desetletnimi izkušnjami v tehnološki industriji je svoje veščine izpopolnil v Microsoft Excelu in Outlooku ter Google Preglednicah in Dokumentih. Michaelov blog je namenjen deljenju svojega znanja in strokovnega znanja z drugimi ter ponuja preproste nasvete in vadnice za izboljšanje produktivnosti in učinkovitosti. Ne glede na to, ali ste izkušen strokovnjak ali začetnik, Michaelov blog ponuja dragocene vpoglede in praktične nasvete, kako kar najbolje izkoristiti ta osnovna programska orodja.