Sadržaj
Vodič pokazuje kako izvršiti provjeru valjanosti podataka u Excelu koristeći regularne izraze uz pomoć prilagođene funkcije RegexMatch.
Kada je u pitanju ograničavanje korisničkog unosa u Excel radnim listovima, Validacija podataka je neophodan. Želite li dozvoliti samo brojeve ili datume u datoj ćeliji? Ili ograničiti tekstualne vrijednosti na određenu dužinu? Ili možda zabraniti vremena izvan određenog raspona? Nema problema, sve se to može lako uraditi uz unaprijed postavljene ili prilagođene kriterije validacije. Ali što ako želim dozvoliti samo važeće adrese e-pošte ili nizove koji odgovaraju određenom uzorku? Avaj, to nije moguće. Regex kažeš? Hmm… to bi moglo upaliti!
Kako izvršiti provjeru valjanosti podataka u Excelu pomoću Regex-a
Nažalost, nijedna od ugrađenih funkcija Excela ne podržava regekse, a Validacija podataka nije izuzetak. Da biste mogli provjeriti valjanost unosa ćelije pomoću regularnih izraza, prvo morate kreirati prilagođenu funkciju Regex. Još jedna komplikacija je to što VBA korisnički definirane funkcije ne mogu biti servirane direktno za Validaciju podataka - trebat će vam posrednik u obliku imenovane formule.
S obzirom na gore navedeno, dopustite da ukratko opišemo korake koje treba poduzeti za provjeru valjanosti podataka u Excelu pomoću regularnih izraza:
- Kreirajte prilagođenu funkciju Regex koja provjerava da li se ulazna vrijednost podudara s regularnim izrazom.
- Definirajte ime za svoju formulu Regex.
- Konfigurirajte pravilo za provjeru valjanosti podataka na osnovu imenovane formule.
- Kopirajtepostavke validacije na onoliko ćelija koliko želite.
Zvuči kao plan? Pokušajmo to implementirati u praksi!
Provjera valjanosti Excel podataka korištenjem prilagođenih regularnih izraza
Ovaj primjer se bavi vrlo čestim slučajem - kako dozvoliti samo vrijednosti određenog uzorka.
Pretpostavimo da držite neke SKU kodove u svom radnom listu i želite da budete sigurni da samo kodovi koji odgovaraju datom uzorku dođu na listu. Pod uslovom da se svaki SKU sastoji od 2 grupe znakova razdvojenih crticom, prva grupa uključuje 3 velika slova, a druga grupa - 3 cifre, takve vrijednosti možete identificirati koristeći donji regularni izraz.
Obrazac : ^[A-Z]{3}-\d{3}$
Primijetite da su početak (^) i kraj ($) niza usidreni, tako da nema drugih znakova osim u uzorak se može unijeti u ćeliju.
1. Dodajte prilagođenu funkciju Regex Match
Počnite s umetanjem funkcije RegExpMatch u vašu radnu knjigu. Kôd su već napisali naši Excel gurui, tako da ga samo trebate kopirati sa gore povezane stranice i zalijepiti u svoj VBA editor.
Evo sintakse funkcije za vašu referencu:
RegExpMatch(tekst , uzorak, [match_case])Gdje:
- Tekst (obavezno) - izvorni niz (u našem kontekstu - potvrđena ćelija).
- Uzorak (obavezno) - regularni izraz za podudaranje.
- Match_case (opcionalno) - tip podudaranja. TRUE ili izostavljeno - case-osjetljivo; FALSE - ne razlikuje velika i mala slova.
Savjet. Ako ste korisnik našeg Ultimate Suite-a, onda možete izvršiti provjeru valjanosti podataka Regex u Excelu bez dodavanja VBA koda u svoje radne knjige. Samo iskoristite prilagođenu funkciju AblebitsRegexMatch uključenu u naše Regex alate.
2. Kreirajte imenovanu formulu
U svom ciljnom radnom listu odaberite ćeliju A1 (bez obzira na njen sadržaj i bez obzira koju ćeliju zapravo želite provjeriti), pritisnite Ctrl + F3 da otvorite Upravitelj imena i definirajte ime za ovu formulu:
=RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")
Ili možete unijeti regex u neku ćeliju (A2 u ovom primjeru) i dostaviti $A$2 drugom argumentu:
=RegExpMatch(Sheet1!A1, Sheet1!$A$2)
Da bi formula radila ispravno, obavezno koristite relativnu referencu za argument tekst (A1) i apsolutnu referencu za uzorak ($A$2).
S obzirom na to da je naša formula namijenjena provjeravanju SKU brojeva, imenujemo je u skladu s tim: Validate_SKU .
Važna napomena! Kada definirate formulu, provjerite da li se prvi argument odnosi na trenutno odabranu ćeliju , inače formula neće raditi. Na primjer, ako je ćelija A1 odabrana na listu, stavite A1 u prvi argument (prema našim preporukama); ako je odabrano B2, onda koristite B2 za prvi argument, i tako jedan. Nije bitno koju referencu koristite sve dok odgovara trenutno odabranoj ćeliji.
Za korak po korakupute, pogledajte Kako napraviti imenovanu formulu u Excel-u.
3. Postavite provjeru valjanosti podataka
Odaberite prvu ćeliju za provjeru (A5 u našem slučaju) i napravite prilagođeno pravilo za provjeru valjanosti podataka na osnovu imenovane formule. Za to učinite sljedeće:
- Kliknite karticu Podaci > Provjera valjanosti podataka .
- U Dozvoli padajuće liste, izaberite Prilagođeno .
- Unesite formulu ispod u odgovarajući okvir.
=Validate_SKU
- Poništite odabir opcije Zanemari prazno , inače vaše pravilo neće raditi.
Po želji, možete upisati prilagođena poruka o grešci koja se prikazuje kada se u ćeliju unesu nevažeći podaci.
Ako smatrate da su vam potrebni detaljni koraci, evo: Kako postaviti prilagođenu provjeru valjanosti podataka u Excelu.
4. Kopiraj provjeru valjanosti podataka na više ćelija
Da kopirate postavke provjere valjanosti u više ćelija, ovo trebate učiniti:
- Odaberite ćeliju s provjerom valjanosti podataka i pritisnite Ctrl + C da kopirajte ga.
- Izaberite druge ćelije koje želite potvrditi, kliknite ih desnom tipkom miša, kliknite Posebno zalijepi i odaberite opciju Provjera .
- Kliknite OK .
Više informacija možete pronaći u Kako kopirati provjeru valjanosti podataka.
Sada, svaki put kada neko pokuša unijeti nevažeći SKU u bilo koju od provjerenih ćelija, sljedeće pojavit će se poruka upozorenja:
Provjera valjanosti e-pošte s Regexom
Da izvršite provjeru valjanosti e-pošte, počinjetesa pisanjem regularnog izraza koji odgovara adresi e-pošte.
Obrazac : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$
Za detaljno objašnjenje sintakse, molimo Vas da dobijete detaljnije objašnjenje sintakse. pogledajte Regex za podudaranje s važećim adresama e-pošte.
A sada, navedite kriterije validacije izvodeći već poznate korake:
- Unesite gornji regularni izraz u B2.
- Odaberite ćeliju A1 i definirajte ime pod nazivom Validate_Email koje se odnosi na:
=RegExpMatch(Sheet1!A1, Sheet1!$B$2)
- Za ćeliju B5, primijenite prilagođenu provjeru valjanosti podataka koristeći formulu ispod. Bitno je da opcija Ignore blank bude poništena.
=Validate_Email
Dodatno, možete konfigurirati prilagođenu poruku o grešci koja traži od korisnika da unese ispravnu adresu e-pošte.
- Kopirajte pravilo u ćelije ispod.
Ako adresa e-pošte koju unesete u provjerenu ćeliju ne odgovara obrascu regularnog izraza, sljedeće upozorenje će iskačući prozor:
Provjera lozinki pomoću regularnih izraza
Kada koristite regex za provjeru valjanosti lozinke, prva stvar koju treba odlučiti je šta tačno vaš regularni izraz treba provjeriti. Evo nekoliko primjera koji bi vas mogli postaviti na pravi put.
Lozinka mora imati najmanje 6 znakova i može sadržavati samo slova (velika ili mala) i cifre:
Obrazac : ^[A-Za-z0-9]{6,}$
Lozinka mora imati najmanje 6 znakova i sadržavati najmanje jedno slovo ijedna cifra:
Obrazac : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$
Lozinka mora imati najmanje 6 znakova i sadržavati najmanje jedno veliko slovo, jedno malo slovo i jednu cifru:
Obrazac : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$
Lozinka mora imati najmanje 6 znakova dugačak i uključuje najmanje jedno slovo, jednu cifru i jedan poseban znak:
Obrazac : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$
Kada je obrazac uspostavljen, možete prijeći na postavljanje Validacije podataka:
- Unesite svoj regex lozinke u C2.
- Odaberite ćeliju A1 i kreirajte imenovanu formulu pod nazivom Validate_Password :
=RegExpMatch(Sheet1!A1, Sheet1!$C$2)
- Za ćeliju C5, kreirajte prilagođeno pravilo validacije sa donjom formulom. Ne zaboravite da poništite izbor u polju za potvrdu Zanemari prazno .
=Validate_Password
- Kopirajte pravilo na onoliko ćelija koliko želite.
Sada možete bezbedno dodati nove lozinke na listu. Ako se unosni niz ne podudara s regularnim izrazom, sljedeće upozorenje će vas podsjetiti koje vrste vrijednosti su prihvaćene:
Provjera valjanosti podataka redovnog izraza ne radi
Ako provjera valjanosti podataka redovnog izraza ne radi u vašem Excelu , najvjerovatnije je to zbog jednog od sljedećih razloga.
Nedostaje funkcija RegExpMatch
Prije primjene Validacije podataka, obavezno umetnite kod funkcije RegExpMatch u svoju radnu knjigu.
Netačno regularnoizraz
Da biste bili sigurni da vaš regularni izraz radi kako se očekuje, možete unijeti formulu RegExpMatch u neku ćeliju i ispitati rezultate. Za više informacija pogledajte Uparivanje Excel regularnih izraza s primjerima.
Da biste analizirali i otklonili greške u regularnim izrazima, možete koristiti besplatne online usluge testiranja regularnih izraza kao što su RegEx101 ili RegExr.
Formula pogrešnog naziva
Veoma čest razlog neuspjeha validacije podataka je formula pod nazivom Regex koja se odnosi na pogrešnu ćeliju. U svim primjerima preporučujemo definiranje formule koja se odnosi na A1:
=RegExpMatch(A1, regex)
Ovo funkcionira samo ako je ćelija A1 aktivna kada definirate ime i <15 Koristi se>relativna referenca (bez znaka $).
Ideja je da će se relativna referenca navedena u formuli (A1) automatski promijeniti na osnovu relativnog položaja potvrđene ćelije. Drugim riječima, ćelija A1 je odabrana samo zbog pogodnosti i konzistentnosti. U stvari, možete odabrati ćeliju B1 i uputiti se na B1, odabrati ćeliju C1 i uputiti se na C1, itd. Ključna stvar je da referencirana ćelija treba da bude aktivna ćelija .
Da biste provjerili da li je vaša imenovana formula tačna, odaberite bilo koju ćeliju na radnom listu, otvorite Name Manager i pogledajte na koju ćeliju formula pokazuje. Ako se odnosi na trenutno odabranu ćeliju, formula je ispravna. U suprotnom, trebali biste promijeniti referencu u prvom argumentu.
Na snimku ekranaispod, odabrana je ćelija A7, što znači da imenovana formula treba da ima A7 u prvom argumentu. Drugi argument ($A$2) se odnosi na regex - ova referenca treba da ostane konstantna, tako da je zaključana znakom $.
Odabrana opcija Zanemari prazno mjesto
Kada postavljate prilagođeno pravilo za provjeru valjanosti podataka, važno je poništiti izbor u polju za potvrdu Zanemari prazno . U suprotnom, pravilo neće raditi iz sljedećeg razloga:
Ako se podudaranje ne pronađe, funkcija RegExpMatch vraća FALSE. Sa odabranom opcijom Ignore blank , FALSE je jednako prazno i zanemaruje se.
Alternativno rješenje eksplicitno navodi da formula treba vratiti TRUE:
=RegExpMatch(…)=TRUE
Tako se vrši provjera valjanosti podataka u Excelu koristeći regularne izraze. Zahvaljujem vam što ste čitali i veselim se što ću vas vidjeti na našem blogu sljedeće sedmice!
Vježbanje za preuzimanje
Primjeri validacije podataka regularnog izraza (.xlsm datoteka)