Tabela e përmbajtjes
Tutoriali tregon se si të bëhet vërtetimi i të dhënave në Excel duke përdorur shprehje të rregullta me ndihmën e një funksioni të personalizuar RegexMatch.
Kur bëhet fjalë për kufizimin e hyrjes së përdoruesit në fletët e punës së Excel, Vleresimi i të dhënave është i domosdoshëm. Dëshironi të lejoni vetëm numra ose data në një qelizë të caktuar? Apo të kufizojë vlerat e tekstit në një gjatësi të caktuar? Apo ndoshta të mos lejohen kohët jashtë një diapazoni të caktuar? Nuk ka problem, e gjithë kjo mund të bëhet lehtësisht me kritere të paracaktuara ose të personalizuara të vlefshmërisë. Por, çka nëse dua të lejoj vetëm adresa të vlefshme emaili ose vargje që përputhen me një model specifik? Mjerisht, kjo nuk është e mundur. Regex thua ti? Hmm… kjo mund të funksionojë!
Si të bëni Validimin e të Dhënave në Excel me Regex
Fatkeqësisht, asnjë nga veçoritë e integruara të Excel nuk mbështet regexes dhe Validimi i të dhënave nuk është përjashtim. Për të qenë në gjendje të vërtetoni hyrjen në qelizë duke përdorur shprehje të rregullta, duhet së pari të krijoni një funksion të personalizuar Regex. Një ndërlikim tjetër është se funksionet e përcaktuara nga përdoruesi VBA nuk mund t'i shërbehen drejtpërdrejt Validimit të të Dhënave - do t'ju duhet një ndërmjetës në formën e një formule të emërtuar.
Duke marrë parasysh sa më sipër, le të përshkruajmë shkurtimisht hapat që duhen ndërmarrë për të vërtetuar të dhënat në Excel duke përdorur regexes:
- Krijoni një funksion të personalizuar Regex që kontrollon nëse një vlerë hyrëse përputhet me një shprehje të rregullt.
- Përcaktoni një emër për formulën tuaj Regex.
- Konfiguro një rregull të verifikimit të të dhënave bazuar në formulën e emërtuar.
- Kopjocilësimet e vërtetimit në sa më shumë qeliza që dëshironi.
Të duket plan? Le të përpiqemi ta zbatojmë në praktikë!
Vleresimi i të dhënave të Excel duke përdorur shprehje të rregullta të personalizuara
Ky shembull trajton një rast shumë të zakonshëm - si të lejohen vetëm vlerat e një modeli specifik.
0> Duke supozuar se mbani disa kode SKU në fletën tuaj të punës dhe dëshironi të jeni të sigurt që vetëm kodet që përputhen me një model të caktuar futen në listë. Me kusht që çdo SKU të përbëhet nga 2 grupe karakteresh të ndara me vizë, grupi i parë përfshin 3 shkronja të mëdha dhe grupi i dytë - 3 shifra, ju mund t'i identifikoni këto vlera duke përdorur regex-in e mëposhtëm.
Modeli : ^[A-Z]{3}-\d{3}$
Ju lutemi vini re se fillimi (^) dhe fundi ($) i vargut janë të ankoruara, kështu që nuk ka karaktere të tjera përveç në modeli mund të futet në një qelizë.
1. Shtoni një funksion të personalizuar Regex Match
Filloni me futjen e funksionit RegExpMatch në librin tuaj të punës. Kodi është shkruar tashmë nga mësuesit tanë të Excel, kështu që ju vetëm duhet ta kopjoni atë nga faqja e lidhur më sipër dhe ta ngjisni në redaktorin tuaj VBA.
Këtu është sintaksa e funksionit për referencën tuaj:
Ku:
- Tekst (kërkohet) - një varg burimi (në kontekstin tonë - një qelizë e vërtetuar).
- Modeli (kërkohet) - një shprehje e rregullt për t'u përputhur.
- Përputhja_rasti (opsionale) - lloji i përputhjes. E VËRTETË ose e lënë pas dore - rasti-i ndjeshëm; E FALSE - e pandjeshme ndaj shkronjave.
Këshillë. Nëse jeni përdorues i Ultimate Suite tonë, atëherë mund të bëni Regex Data Validation në Excel pa shtuar asnjë kod VBA në librat tuaj të punës. Thjesht përdorni një funksion të personalizuar AblebitsRegexMatch të përfshirë me mjetet tona Regex.
2. Krijoni një formulë të emërtuar
Në fletën tuaj të punës të synuar, zgjidhni qelizën A1 (pavarësisht nga përmbajtja e saj dhe pavarësisht se cila qelizë do të vërtetoni në të vërtetë), shtypni Ctrl + F3 për të hapur Menaxherin e Emrave dhe përcaktoni një emër për këtë formulë:
=RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")
Ose mund të futni regex në ndonjë qelizë (A2 në këtë shembull) dhe t'i jepni $A$2 argumentit të dytë:
=RegExpMatch(Sheet1!A1, Sheet1!$A$2)
Që formula të funksionojë si duhet, sigurohuni që të përdorni një referencë relative për argumentin tekst (A1) dhe referencë absolute për modelin ($A$2).
Duke pasur parasysh se formula jonë ka për qëllim vërtetimin e numrave SKU, ne e emërtojmë atë në përputhje me rrethanat: Validate_SKU .
Shënim i rëndësishëm! Kur përcaktoni formulën, ju lutemi kontrolloni dy herë që argumenti i parë i referohet qelizës së zgjedhur aktualisht , përndryshe formula nuk do të funksionojë. Për shembull, nëse qeliza A1 është zgjedhur në fletë, vendosni A1 në argumentin e parë (sipas rekomandimeve tona); nëse zgjidhet B2, atëherë përdorni B2 për argumentin e parë, dhe kështu një. Nuk ka shumë rëndësi se cilën referencë të veçantë përdorni për sa kohë që përputhet me qelizën e zgjedhur aktualisht.
Për hap pas hapiudhëzimet, ju lutemi shikoni Si të krijoni një formulë të emërtuar në Excel.
3. Konfiguro Validimin e të Dhënave
Zgjidhni qelizën e parë që do të kontrollohet (A5 në rastin tonë) dhe bëni një rregull të personalizuar të vërtetimit të të dhënave bazuar në formulën e emërtuar. Për këtë, bëni sa më poshtë:
- Klikoni në skedën Të dhënat > Vleresimi i të dhënave .
- Në Lejo lista rënëse, zgjidhni Custom .
- Futni formulën e mëposhtme në kutinë përkatëse.
=Validate_SKU
- Çzgjidh opsionin Injoro bosh , përndryshe rregulli yt nuk do të funksionojë.
Opsionale, mund të shkruani një mesazh gabimi i personalizuar që do të shfaqet kur të dhënat e pavlefshme futen në një qelizë.
Nëse mendoni se keni nevojë për hapat e detajuar, ja ku shkoni: Si të konfiguroni verifikimin e personalizuar të të dhënave në Excel.
4. Kopjo verifikimin e të dhënave në më shumë qeliza
Për të kopjuar cilësimet e vlefshmërisë në më shumë qeliza, kjo është ajo që duhet të bëni:
- Zgjidhni qelizën me vërtetimin e të dhënave dhe shtypni Ctrl + C për të kopjojeni atë.
- Zgjidhni qelizat e tjera që dëshironi të vërtetoni, kliko me të djathtën mbi to, kliko Ngjit Special dhe zgjidhni opsionin Vleresimi .
- Klikoni OK .
Më shumë informacion mund të gjeni në Si të kopjoni vërtetimin e të dhënave.
Tani, sa herë që dikush përpiqet të fusë një SKU të pavlefshme në ndonjë nga qelizat e vërtetuara, si më poshtë do të shfaqet mesazhi paralajmërues:
Vleresimi i emailit me Regex
Për të kryer verifikimin e emailit, fillonime shkrimin e një shprehjeje të rregullt që përputhet me një adresë emaili.
Modeli : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$
Për shpjegimin e detajuar të sintaksës, ju lutem shikoni Regex për të përputhur adresat e vlefshme të emailit.
Dhe tani, specifikoni kriteret e vlefshmërisë duke kryer hapat tashmë të njohur:
- Fut regex-in e mësipërm në B2.
- Zgjidh qelizën A1 dhe cakto një emër të quajtur Validoje_Email që i referohet:
=RegExpMatch(Sheet1!A1, Sheet1!$B$2)
- Për qelizën B5, apliko Validimin e personalizuar të të dhënave duke përdorur formulën e mëposhtme. Është thelbësore që opsioni Injoro bosh të çzgjidhet.
=Validate_Email
Për më tepër, mund të konfiguroni një mesazh gabimi të personalizuar që i kërkon përdoruesit të fusë një adresë të vlefshme emaili.
- Kopjo rregullin në qelizat e mëposhtme.
Nëse një adresë emaili që fut në një qelizë të vërtetuar nuk përputhet me një model regex, sinjalizimi i mëposhtëm do të pop-up:
Verifikimi i fjalëkalimeve duke përdorur shprehje të rregullta
Kur përdorni regex për vërtetimin e fjalëkalimit, gjëja e parë që duhet të vendosni është saktësisht se çfarë duhet të kontrollojë shprehja juaj e rregullt. Këtu janë disa shembuj që mund t'ju vendosin në rrugën e duhur.
Një fjalëkalim duhet të jetë të paktën 6 karaktere i gjatë dhe mund të përmbajë vetëm shkronja (të mëdha ose të vogla) dhe shifra:
Modeli : ^[A-Za-z0-9]{6,}$
Një fjalëkalim duhet të jetë së paku 6 karaktere i gjatë dhe të përfshijë të paktën një shkronjë dhenjë shifër:
Modeli : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$
Një fjalëkalim duhet të jetë minimalisht 6 karaktere dhe të përfshijë të paktën një shkronjë të madhe, një shkronjë të vogël dhe një shifër:
Modeli : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$
Një fjalëkalim duhet të jetë minimalisht 6 karaktere e gjatë dhe përfshin të paktën një shkronjë, një shifër dhe një karakter të veçantë:
Modeli : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$
Me modelin e vendosur, mund të vazhdoni te konfigurimi i Validimit të të Dhënave:
- Fut regex-in e fjalëkalimit në C2.
- Zgjidhni qelizën A1 dhe krijoni një formulë me emër të quajtur Validate_Password :
=RegExpMatch(Sheet1!A1, Sheet1!$C$2)
- Për qelizën C5, krijoni një rregull verifikimi personal me formulën e mëposhtme. Mos harroni të çzgjidhni kutinë e kontrollit Injoro bosh .
=Validate_Password
- Kopjo rregullin në aq qeliza sa të duash.
Tani, mund të shtosh me siguri fjalëkalime të reja në listë. Nëse një varg i hyrjes nuk përputhet me regex, sinjalizimi i mëposhtëm do t'ju kujtojë se çfarë lloje vlerash pranohen:
Vleresimi i të dhënave Regex nuk funksionon
Nëse Validimi i të dhënave Regex nuk funksionon në Excel tuaj , ka shumë të ngjarë për shkak të një prej arsyeve të mëposhtme.
Mungon funksioni RegExpMatch
Para se të aplikoni Validimin e të Dhënave, sigurohuni që të futni kodin e funksionit RegExpMatch në librin tuaj të punës.
12>Rregull i pasaktëshprehje
Për t'u siguruar që regex-i juaj funksionon siç pritej, mund të futni një formulë RegExpMatch në një qelizë dhe të ekzaminoni rezultatet. Për më shumë informacion, ju lutemi shihni Excel Shprehjet e rregullta përputhen me shembuj.
Për të analizuar dhe korrigjuar shprehjet tuaja të rregullta, mund të përdorni shërbime falas të testimit regex në internet si RegEx101 ose RegExr.
Formulë me emër të gabuar
Një arsye shumë e zakonshme e dështimit të vërtetimit të të dhënave është një formulë e quajtur Regex që i referohet një qelize të gabuar. Në të gjithë shembujt, ne rekomanduam të përcaktonim një formulë duke iu referuar A1:
=RegExpMatch(A1, regex)
Kjo funksionon vetëm nëse qeliza A1 është aktive kur përcakton një emër dhe një <15 Përdoret>referenca relative (pa shenjën $).
Ideja është që një referencë relative e specifikuar në formulën (A1) do të ndryshojë automatikisht bazuar në pozicionin relativ të qelizës së vërtetuar. Me fjalë të tjera, qeliza A1 zgjidhet vetëm për lehtësi dhe qëndrueshmëri. Në fakt, ju mund të zgjidhni qelizën B1 dhe t'i referoheni B1, të zgjidhni qelizën C1 dhe t'i referoheni C1, e kështu me radhë. Gjëja kryesore është se qeliza e referuar duhet të jetë qeliza aktive .
Për të kontrolluar nëse formula juaj e emërtuar është e saktë, zgjidhni çdo qelizë në fletën tuaj të punës, hapni Emërtoni menaxherin dhe shikoni se në cilën qelizë tregon formula. Nëse i referohet qelizës së zgjedhur aktualisht, formula është e drejtë. Përndryshe, duhet të ndryshoni referencën në argumentin e parë.
Në pamjen e ekranitmë poshtë, zgjidhet qeliza A7, që do të thotë se një formulë e emërtuar duhet të ketë A7 në argumentin e parë. Argumenti i dytë ($A$2) i referohet regex-it - kjo referencë supozohet të mbetet konstante, kështu që mbyllet me shenjën $.
Opsioni i zgjedhur "Injoro bosh"
Kur konfiguron një rregull të personalizuar të Validimit të të Dhënave, është e rëndësishme të anulosh kutinë e kontrollit Injoro boshllëkun . Përndryshe, rregulli nuk do të funksionojë për arsyen e mëposhtme:
Nëse nuk gjendet një përputhje, funksioni RegExpMatch kthen FALSE. Me opsionin Injoro bosh të zgjedhur, FALSE barazohet me bosh dhe shpërfillet.
Një zgjidhje alternative është shprehimisht që formula duhet të kthejë TRUE:
=RegExpMatch(…)=TRUE
Kjo është se si të bëhet Vleresimi i të Dhënave në Excel duke përdorur shprehje të rregullta. Ju falënderoj që lexoni dhe mezi pres t'ju shoh në blogun tonë javën tjetër!
Praktikoni librin e punës për shkarkim
Shembuj të verifikimit të të dhënave Regex (skedari .xlsm)