Excel datu validēšana, izmantojot regulārās izteiksmes (Regex)

  • Dalīties Ar Šo
Michael Brown

Šajā pamācībā ir parādīts, kā veikt datu validāciju programmā Excel, izmantojot regulārās izteiksmes, izmantojot pielāgotu RegexMatch funkciju.

Kad runa ir par lietotāja ievades ierobežošanu Excel darblapās, datu validēšana ir neaizstājama. Vēlaties atļaut tikai skaitļus vai datumus noteiktā šūnā? Vai ierobežot teksta vērtības līdz noteiktam garumam? Vai varbūt aizliegt laikus ārpus noteikta diapazona? Nav problēmu, to visu var viegli izdarīt, izmantojot iepriekš iestatītus vai pielāgotus validēšanas kritērijus. Bet ko darīt, ja es vēlos atļaut tikai derīgas e-pasta adreses vai virknes, kas atbilst kādamkonkrēts modelis? Diemžēl, tas nav iespējams. Jūs sakāt, regekss? Hmm... tas varētu darboties!

    Kā veikt Excel datu validāciju ar Regex

    Diemžēl neviena no iebūvētajām Excel funkcijām neatbalsta regeksus, un datu validēšana nav izņēmums. Lai varētu validēt šūnu ievaddatus, izmantojot regulārās izteiksmes, vispirms ir jāizveido pielāgota Regex funkcija. Vēl viens sarežģījums ir tas, ka VBA lietotāja definētās funkcijas nevar tieši izmantot datu validēšanā - jums būs nepieciešams starpnieks nosauktas formulas veidā.

    Ņemot vērā iepriekš minēto, īsumā izklāstīsim darbības, kas jāveic, lai pārbaudītu datus programmā Excel, izmantojot regekses:

    1. Izveidojiet pielāgotu Regex funkciju, kas pārbauda, vai ievades vērtība atbilst regulārajai izteiksmei.
    2. Definējiet Regex formulas nosaukumu.
    3. Konfigurējiet datu validēšanas noteikumu, pamatojoties uz nosaukto formulu.
    4. Kopējiet validācijas iestatījumus uz tik daudzām šūnām, cik vien vēlaties.

    Izklausās pēc plāna? Mēģināsim to īstenot praksē!

    Excel datu validēšana, izmantojot pielāgotas regulārās izteiksmes

    Šajā piemērā aplūkots ļoti bieži sastopams gadījums - kā atļaut tikai konkrēta parauga vērtības.

    Pieņemsim, ka darblapā glabājat dažus SKU kodus un vēlaties būt pārliecināts, ka sarakstā nonāk tikai tie kodi, kas atbilst noteiktam paraugam. Ja katrs SKU sastāv no 2 rakstzīmju grupām, kas atdalītas ar defisi, un pirmajā grupā ir 3 lieli burti, bet otrajā - 3 cipari, varat identificēt šādas vērtības, izmantojot tālāk norādīto regeksi.

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

    Lūdzu, ņemiet vērā, ka virknes sākums (^) un beigas ($) ir nostiprinātas, tāpēc šūnā nevar ievadīt citas rakstzīmes, kas nav šablona rakstzīmes.

    1. Pievienojiet pielāgotu Regex Match funkciju

    Sāciet ar RegExpMatch funkcijas ievietošanu savā darbgrāmatā. Kodu jau ir uzrakstījuši mūsu Excel guru, tāpēc jums tikai jānokopē tas no iepriekš norādītās lapas un jāievieto savā VBA redaktorā.

    Šeit ir funkcijas sintakse, lai uz to varētu atsaukties:

    RegExpMatch(teksts, modelis, [match_case])

    Kur:

    • Teksts (obligāts) - avota virkne (mūsu kontekstā - apstiprināta šūna).
    • Modelis (obligāts) - regulārā izteiksme, kurai jāatbilst.
    • Match_case (nav obligāti) - atbilstības tips. TRUE vai izlaists - ja tiek ņemti vērā lieli un mazi burti; FALSE - ja netiek ņemti vērā lieli un mazi burti.

    Padoms. Ja esat mūsu Ultimate Suite lietotājs, varat veikt Regex datu validāciju programmā Excel, nepievienojot darbgrāmatām VBA kodu. Vienkārši izmantojiet pielāgotu funkciju AblebitsRegexMatch, kas ir iekļauta mūsu Regex rīkos.

    2. Izveidojiet formulu ar nosaukumu

    Mērķa darblapā atlasiet šūnu A1 (neatkarīgi no tās satura un neatkarīgi no tā, kuru šūnas faktiski apstiprināsiet), nospiediet Ctrl + F3, lai atvērtu nosaukumu pārvaldnieku, un definējiet šīs formulas nosaukumu:

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

    Varat arī ievadīt regeksus kādā šūnā (šajā piemērā A2) un kā otro argumentu norādīt $A$2:

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

    Lai formula darbotos pareizi, pārliecinieties, ka izmantojat relatīvo atsauci uz teksts arguments (A1) un absolūtā atsauce uz modelis ($A$2).

    Ņemot vērā, ka mūsu formula ir paredzēta SKU numuru apstiprināšanai, mēs to attiecīgi nosaucam: Validate_SKU .

    Svarīga piezīme! Definējot formulu, divreiz pārbaudiet, vai pirmais arguments attiecas uz pašlaik atlasīto šūnu , citādi formula nedarbosies. Piemēram, ja lapā ir atlasīta šūna A1, pirmajā argumentā ierakstiet A1 (saskaņā ar mūsu ieteikumiem); ja ir atlasīta B2, tad kā pirmo argumentu izmantojiet B2, un tā tālāk. Patiesībā nav nozīmes, kuru konkrēto atsauci izmantojat, ja vien tā atbilst pašlaik atlasītajai šūnai.

    Lai soli pa solim iepazītos ar norādījumiem, skatiet sadaļu Kā izveidot formulu ar nosaukumu programmā Excel.

    3. Iestatiet datu validāciju

    Izvēlieties pirmo pārbaudāmo šūnu (mūsu gadījumā A5) un izveidojiet pielāgotu datu validēšanas noteikumu, pamatojoties uz nosaukto formulu. Šim nolūkam veiciet šādu darbību:

    1. Noklikšķiniet uz Dati cilne> Datu validēšana .
    2. In the Atļaut nolaižamajā sarakstā atlasiet Pielāgots .
    3. Attiecīgajā lodziņā ievadiet tālāk norādīto formulu.

      =Validate_SKU

    4. Atcelt atlasīto Ignorēt tukšu opcija, citādi jūsu noteikums nedarbosies.

    Pēc izvēles varat ievadīt pielāgotu kļūdas ziņojumu, kas tiks parādīts, ja šūnā ir ievadīti nederīgi dati.

    Ja jums šķiet, ka jums ir nepieciešami detalizēti soļi, šeit atradīsiet: Kā iestatīt pielāgotu datu validēšanu programmā Excel.

    4. Datu validācijas kopēšana uz vairākām šūnām

    Lai kopētu apstiprināšanas iestatījumus uz vairākām šūnām, ir jādara tas, kas jādara:

    1. Atlasiet šūnu ar datu validāciju un nospiediet Ctrl + C, lai to kopētu.
    2. Atlasiet citas šūnas, kuras vēlaties apstiprināt, noklikšķiniet uz tām ar peles labo pogu, noklikšķiniet uz Īpašais ielīmēšanas veids un izvēlieties Apstiprināšana iespēja.
    3. Noklikšķiniet uz LABI .

    Vairāk informācijas skatiet sadaļā Kā kopēt datu validāciju.

    Tagad ikreiz, kad kāds mēģinās ievadīt nederīgu SKU kādā no apstiprinātajām šūnām, tiks parādīts šāds brīdinājuma ziņojums:

    E-pasta apstiprināšana ar Regex

    Lai veiktu e-pasta apstiprināšanu, vispirms jāuzraksta regulārā izteiksme, kas atbilst e-pasta adresei.

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

    Sīkāku sintakses skaidrojumu skatiet sadaļā Regex, lai saskaņotu derīgas e-pasta adreses.

    Tagad norādiet validācijas kritērijus, veicot jau zināmos soļus:

    1. Ievadiet iepriekš minēto regekss B2.
    2. Izvēlieties šūnu A1 un definējiet nosaukumu Validate_Email kas attiecas uz:

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

    3. Šūnai B5 piemērojiet pielāgotu datu validāciju, izmantojot tālāk norādīto formulu. Ir svarīgi, lai Ignorēt tukšu opcijai jābūt neizvēlētai.

      =Validate_Email

      Turklāt varat konfigurēt pielāgotu kļūdas ziņojumu, kurā lietotājam tiek piedāvāts ievadīt derīgu e-pasta adresi.

    4. Nokopējiet šo noteikumu uz tālāk redzamajām šūnām.

    Ja e-pasta adrese, ko ievadāt apstiprinātajā šūnā, neatbilst regeksas šablonam, tiks parādīts šāds brīdinājums:

    Paroļu validēšana, izmantojot regulārās izteiksmes

    Izmantojot regex paroles apstiprināšanai, vispirms ir jāizlemj, ko tieši regulārajai izteiksmei ir jāpārbauda. Šeit ir daži piemēri, kas varētu palīdzēt jums atrast pareizo ceļu.

    Parolei jābūt vismaz 6 rakstzīmju garai, un tajā drīkst būt tikai burti (lielie vai mazie) un cipari:

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

    Parolei jābūt vismaz 6 rakstzīmju garai, un tajā jāietver vismaz viens burts un viens cipars:

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

    Parolei jābūt vismaz 6 rakstzīmju garai, un tajā jāietver vismaz viens lielais burts, viens mazais burts un viens cipars:

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

    Parolei jābūt vismaz 6 rakstzīmju garai, un tajā jāietver vismaz viens burts, viens cipars un viena speciālā rakstzīme:

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

    Kad modelis ir izveidots, varat pāriet pie datu validēšanas iestatīšanas:

    1. Ievadiet savu paroles regekss vienumu C2.
    2. Atlasiet šūnu A1 un izveidojiet formulu ar nosaukumu Validate_Password :

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

    3. Šūnai C5 izveidojiet pielāgotu validācijas noteikumu ar tālāk norādīto formulu. Neaizmirstiet atcelt atlases iespēju. Ignorēt tukšu izvēles rūtiņu.

      =Validate_Password

    4. Kopējiet noteikumu uz tik daudzām šūnām, cik vien vēlaties.

    Tagad varat droši pievienot jaunas paroles sarakstam. Ja ievades virkne neatbilst regeksam, šāds brīdinājums atgādinās, kāda veida vērtības ir pieņemamas:

    Nedarbojas Regex datu validēšana

    Ja programmā Excel nedarbojas regekss Datu validēšana, visticamāk, tas ir kāda no šiem iemesliem dēļ.

    Trūkst funkcijas RegExpMatch

    Pirms datu validācijas piemērošanas noteikti ievietojiet RegExpMatch funkcijas kodu savā darbgrāmatā.

    Nepareiza regulārā izteiksme

    Lai pārliecinātos, ka regekss darbojas, kā paredzēts, varat ievadīt RegExpMatch formulu kādā šūnā un pārbaudīt rezultātus. Lai iegūtu plašāku informāciju, skatiet Excel regulārās izteiksmes saskaņošana ar piemēriem.

    Lai analizētu un atkļūdotu regulārās izteiksmes, varat izmantot bezmaksas tiešsaistes regex testēšanas pakalpojumus, piemēram, RegEx101 vai RegExr.

    Nepareizi nosaukta formula

    Ļoti biežs datu validēšanas neveiksmes iemesls ir Regex formulas nosaukums, kas attiecas uz nepareizu šūnu. Visos piemēros mēs ieteicām definēt formulu, kas attiecas uz A1:

    =RegExpMatch(A1, regex)

    Tas darbojas tikai tad, ja šūna A1 ir aktīvs definējot nosaukumu un relatīvā atsauce (bez zīmes $).

    Ideja ir tāda, ka formulā (A1) norādītā relatīvā atsauce automātiski mainīsies atkarībā no validētās šūnas relatīvās pozīcijas. Citiem vārdiem sakot, šūna A1 ir izvēlēta tikai ērtības un konsekvences labad. Patiesībā varat atlasīt šūnu B1 un atsaukties uz B1, atlasīt šūnu C1 un atsaukties uz C1 u. t. t. Galvenais ir tas, ka Atsauces šūna jābūt aktīvā šūna .

    Lai pārbaudītu, vai jūsu nosauktā formula ir pareiza, atlasiet jebkuru darblapas šūnu, atveriet vārdu pārvaldnieku un skatiet, uz kuru šūnu formula norāda. Ja tā norāda uz pašlaik atlasīto šūnu, tad formula ir pareiza. Pretējā gadījumā jāmaina atsauce pirmajā argumentā.

    Tālāk redzamajā ekrānšāviņas attēlā ir atlasīta šūna A7, kas nozīmē, ka nosauktajai formulai pirmajā argumentā ir jābūt A7. Otrais arguments ($A$2) attiecas uz regeksiem - šai atsaucei ir jāpaliek nemainīgai, tāpēc tā ir bloķēta ar zīmi $.

    Izvēlēta iespēja Ignorēt tukšo

    Iestatot pielāgotu datu validēšanas noteikumu, ir svarīgi atcelt izvēles Ignorēt tukšu Pretējā gadījumā noteikums nedarbosies šāda iemesla dēļ:

    Ja atbilstība nav atrasta, funkcija RegExpMatch atgriež FALSE. Ignorēt tukšu atlasīta opcija, FALSE ir vienāds ar tukšu un tiek ignorēts.

    Alternatīvs risinājums ir skaidri norādīt, ka formulai jāatgriež TRUE:

    =RegExpMatch(...)=TRUE

    Lūk, kā veikt datu validāciju programmā Excel, izmantojot regulārās izteiksmes. Paldies, ka izlasījāt, un ar nepacietību gaidīsim jūs mūsu blogā nākamnedēļ!

    Prakses darba burtnīca lejupielādei

    Regex datu validēšanas piemēri (.xlsm fails)

    Maikls Brauns ir īpašs tehnoloģiju entuziasts, kura aizraušanās ir sarežģītu procesu vienkāršošana, izmantojot programmatūras rīkus. Ar vairāk nekā desmit gadu pieredzi tehnoloģiju nozarē viņš ir pilnveidojis savas prasmes programmās Microsoft Excel un Outlook, kā arī Google izklājlapās un dokumentos. Maikla emuārs ir veltīts tam, lai dalītos savās zināšanās un pieredzē ar citiem, sniedzot viegli izpildāmus padomus un pamācības produktivitātes un efektivitātes uzlabošanai. Neatkarīgi no tā, vai esat pieredzējis profesionālis vai iesācējs, Maikla emuārs piedāvā vērtīgas atziņas un praktiskus padomus, kā maksimāli izmantot šos būtiskos programmatūras rīkus.