Efnisyfirlit
Kennsluforritið sýnir hvernig á að gera gagnaprófun í Excel með því að nota regluleg segð með hjálp sérsniðinnar RegexMatch aðgerð.
Þegar kemur að því að takmarka inntak notenda í Excel vinnublöðum, gagnamatsprófun er ómissandi. Viltu leyfa aðeins tölur eða dagsetningar í tilteknum reit? Eða takmarka textagildi við ákveðna lengd? Eða kannski banna tíma utan tiltekins sviðs? Ekkert mál, allt þetta er auðvelt að gera með forstilltum eða sérsniðnum staðfestingarviðmiðum. En hvað ef ég vil leyfa aðeins gild netföng eða strengi sem passa við ákveðið mynstur? Æ, það er ekki hægt. Regex segirðu? Hmm… það gæti virkað!
Hvernig á að gera Excel gagnaprófun með Regex
Því miður styður enginn af innbyggðu Excel eiginleikum regexes og gagnavottun er engin undantekning. Til að geta sannreynt frumuinnslátt með því að nota reglulegar segðir þarftu fyrst að búa til sérsniðna Regex aðgerð. Annar fylgikvilli er sá að ekki er hægt að þjóna VBA notendaskilgreindum aðgerðum beint fyrir gagnaprófun - þú þarft miðlara í formi nafngreindrar formúlu.
Í ljósi ofangreinds skulum við gera stuttlega grein fyrir skrefunum sem á að gera til að sannreyna gögn í Excel með því að nota regexes:
- Búðu til sérsniðna Regex aðgerð sem athugar hvort inntaksgildi passi við venjulega segð.
- Skilgreindu nafn fyrir Regex formúluna þína.
- Stillið gagnaprófunarreglu byggða á nefndri formúlu.
- Afritustaðfestingarstillingar fyrir eins margar frumur og þú vilt.
Hljómar það eins og áætlun? Við skulum reyna að innleiða það í reynd!
Excel gagnaprófun með því að nota sérsniðnar reglubundnar segðir
Þetta dæmi fjallar um mjög algengt tilvik - hvernig á að leyfa aðeins gildi tiltekins mynsturs.
Svo sem að þú geymir nokkra SKU kóða á vinnublaðinu þínu og viljir vera viss um að aðeins þeir kóðar sem passa við ákveðið mynstur komist inn á listann. Að því tilskildu að hvert SKU samanstendur af 2 hópum af stöfum aðskilin með bandstrik, fyrsti hópurinn inniheldur 3 hástafi og seinni hópurinn - 3 tölustafir, getur þú auðkennt slík gildi með því að nota regutextann hér að neðan.
Mynstur : ^[A-Z]{3}-\d{3}$
Vinsamlegast athugið að byrjun (^) og endir ($) strengsins eru festir, þannig að engir stafir aðrir en í mynstur gæti verið slegið inn í reit.
1. Bættu við sérsniðinni Regex Match aðgerð
Byrjaðu á því að setja RegExpMatch aðgerðina inn í vinnubókina þína. Kóðinn er þegar skrifaður af Excel sérfræðingum okkar, svo þú þarft bara að afrita hann af síðunni sem er tengdur hér að ofan og líma inn í VBA ritilinn þinn.
Hér er setningafræði fallsins til viðmiðunar:
RegExpMatch(texti , mynstur, [match_case])Hvar:
- Texti (áskilið) - upprunastrengur (í okkar samhengi - fullgilt hólf).
- Mynstur (áskilið) - regluleg segð til að passa.
- Passunarfall (valfrjálst) - samsvörunartegund. SATT eða sleppt - fall-viðkvæmur; FALSE - Óháð hástöfum.
Ábending. Ef þú ert notandi Ultimate Suite okkar, þá geturðu gert Regex Data Validation í Excel án þess að bæta VBA kóða við vinnubækurnar þínar. Notaðu bara sérsniðna AblebitsRegexMatch aðgerð sem fylgir Regex tólunum okkar.
2. Búðu til nafngreinda formúlu
Í markvinnublaðinu þínu skaltu velja reit A1 (óháð innihaldi hans og sama hvaða reit þú ætlar að staðfesta), ýttu á Ctrl + F3 til að opna nafnastjórnunina og skilgreindu nafn fyrir þessa formúlu:
=RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")
Eða þú getur slegið inn regex í einhvern reit (A2 í þessu dæmi) og gefið $A$2 í seinni röksemd:
=RegExpMatch(Sheet1!A1, Sheet1!$A$2)
Til að formúlan virki rétt, vertu viss um að nota hlutfallslega tilvísun fyrir texta rökin (A1) og algjöra tilvísun fyrir mynstur ($A$2).
Í ljósi þess að formúlan okkar er ætluð til að staðfesta SKU númer, nefnum við hana í samræmi við það: Validate_SKU .
Mikilvæg athugasemd! Þegar formúlan er skilgreind, vinsamlegast athugaðu að fyrstu rökin vísar til reitsins sem nú er valinn , annars virkar formúlan ekki. Til dæmis, ef reit A1 er valið á blaðinu, settu A1 í fyrstu rökin (samkvæmt ráðleggingum okkar); ef B2 er valið, notaðu þá B2 fyrir fyrstu röksemdina og svo einn. Það skiptir ekki öllu máli hvaða tilvísun þú notar svo framarlega sem hún samsvarar hólfinu sem er valið.
Fyrir skref fyrir skrefleiðbeiningar, vinsamlegast sjáðu Hvernig á að búa til nafngreinda formúlu í Excel.
3. Setja upp gagnaprófun
Veldu fyrsta reitinn sem á að athuga (A5 í okkar tilviki) og búðu til sérsniðna gagnastaðfestingarreglu byggða á nefndri formúlu. Til þess skaltu gera eftirfarandi:
- Smelltu á flipann Gögn > Gagnaprófun .
- Í Leyfa fellilistanum, veldu Sérsniðið .
- Sláðu inn formúluna hér að neðan í samsvarandi reit.
=Validate_SKU
- Afveljið Hunsa auða valkostinn, annars virkar reglan þín ekki.
Valfrjálst geturðu slegið inn sérsniðin villuboð sem birtast þegar ógild gögn eru færð inn í reit.
Ef þér finnst þú þurfa ítarleg skref, þá skaltu fara: Hvernig á að setja upp sérsniðna gagnavottun í Excel.
4. Afritaðu gagnavottun í fleiri reiti
Til að afrita staðfestingarstillingarnar í fleiri reiti þarftu að gera þetta:
- Veldu reitinn með gagnastaðfestingu og ýttu á Ctrl + C til að afritaðu það.
- Veldu aðrar hólf sem þú vilt staðfesta, hægrismelltu á þær, smelltu á Paste Special og veldu Validation valkostinn.
- Smelltu á Í lagi .
Nánari upplýsingar er að finna í Hvernig á að afrita gagnavottun.
Nú, í hvert skipti sem einhver reynir að slá inn ógilt vörunúmer í einhverjum af staðfestu hólfunum, þá er eftirfarandi viðvörunarskilaboð munu birtast:
Staðfesting tölvupósts með Regex
Til að framkvæma staðfestingu á tölvupósti byrjarðumeð því að skrifa reglulega segð sem passar við netfang.
Mynstur : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$
Til að fá nákvæma útskýringu á setningafræði, vinsamlegast sjá Regex til að passa við gild netföng.
Og nú skaltu tilgreina staðfestingarviðmiðin með því að framkvæma þegar kunnugleg skref:
- Sláðu inn ofangreint regex í B2.
- Veldu reit A1 og skilgreindu nafn sem heitir Validate_Email sem vísar til:
=RegExpMatch(Sheet1!A1, Sheet1!$B$2)
- Fyrir reit B5, notaðu sérsniðna gagnavottun með formúlunni hér að neðan. Nauðsynlegt er að valkosturinn Hunsa auða sé ekki valinn.
=Validate_Email
Að auki geturðu stillt sérsniðin villuboð sem biður notandann um að slá inn gilt netfang.
- Afritaðu regluna í reitina hér að neðan.
Ef netfang sem þú slærð inn í staðfestan reit passar ekki við regex mynstur mun eftirfarandi viðvörun pop up:
Staðfesting lykilorða með reglulegum tjáningum
Þegar þú notar regex fyrir staðfestingu lykilorðs er það fyrsta sem þarf að ákveða nákvæmlega hvað reglulega segðin þín ætti að athuga. Hér eru nokkur dæmi sem gætu komið þér á rétta braut.
Lykilorð verður að vera að minnsta kosti 6 stafir að lengd og getur aðeins innihaldið bókstafi (hástafi eða lágstafi) og tölustafi:
Mynstur : ^[A-Za-z0-9]{6,}$
Lykilorð verður að vera að lágmarki 6 stafir að lengd og innihalda að minnsta kosti einn staf ogeinn tölustafur:
Mynstur : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$
Lykilorð verður að vera minnst 6 stafir að lengd og innihalda að minnsta kosti einn hástaf, einn lágstaf og einn tölustaf:
Mynstur : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$
Lykilorð verður að vera minnst 6 stafir löng og innihalda að minnsta kosti einn staf, einn tölustaf og einn sérstaf:
Mynstur : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$
Með mynstrinu komið á, geturðu haldið áfram að setja upp Gagnaprófun:
- Sláðu inn regex lykilorðsins í C2.
- Veldu reit A1 og búðu til nafngreinda formúlu sem heitir Validate_Password :
=RegExpMatch(Sheet1!A1, Sheet1!$C$2)
- Fyrir reit C5, búðu til sérsniðna staðfestingarreglu með formúlunni hér að neðan. Mundu að afvelja Hunsa auða gátreitinn.
=Validate_Password
- Afritaðu regluna í eins margar frumur og þú vilt.
Nú geturðu örugglega bætt nýjum lykilorðum við listann. Ef inntaksstrengur passar ekki við regex, mun eftirfarandi viðvörun minna þig á hvers konar gildi eru samþykkt:
Regex Data Validation virkar ekki
Ef Regex Data Validation virkar ekki í Excel þínum , líklega er það af einni af eftirfarandi ástæðum.
RegExpMatch aðgerð vantar
Áður en gagnaprófun er beitt, vertu viss um að setja inn kóða RegExpMatch fallsins í vinnubókina þína.
Röng reglulegtjáning
Til að ganga úr skugga um að regex þitt virki eins og búist var við, geturðu slegið inn RegExpMatch formúlu í einhverjum reit og skoðað niðurstöðurnar. Fyrir frekari upplýsingar, vinsamlegast skoðaðu Excel Regluleg tjáning sem samsvarar dæmum.
Til að greina og kemba reglulegar tjáningar geturðu notað ókeypis regex prófunarþjónustu á netinu eins og RegEx101 eða RegExr.
Rangt nefnd formúla
Mjög algeng ástæða fyrir bilun í sannprófun gagna er Regex-heiti formúla sem vísar til rangs reits. Í öllum dæmunum mælum við með að skilgreina formúlu sem vísar til A1:
=RegExpMatch(A1, regex)
Þetta virkar aðeins ef hólf A1 er virkt þegar nafn er skilgreint og hlutfallsleg tilvísun (án $ táknsins) er notuð.
Hugmyndin er sú að hlutfallsleg tilvísun sem tilgreind er í formúlunni (A1) breytist sjálfkrafa miðað við hlutfallslega stöðu staðfestu reitsins. Með öðrum orðum, klefi A1 er valið bara til þæginda og samkvæmni. Reyndar geturðu valið reit B1 og vísað til B1, valið reit C1 og vísað til C1, og svo framvegis. Lykilatriðið er að tilvísað hólf ætti að vera virka hólfið .
Til að athuga hvort nafngreinda formúlan þín sé rétt skaltu velja einhvern reit í vinnublaðinu þínu, opna Nafnastjóri og sjáðu hvaða reit formúlan bendir á. Ef það vísar til reitsins sem nú er valinn er formúlan rétt. Annars ættirðu að breyta tilvísuninni í fyrstu rifrildi.
Í skjáskotinuhér að neðan er reit A7 valið, sem þýðir að nafngreind formúla ætti að hafa A7 í fyrstu röksemdinni. Önnur rökin ($A$2) vísar til regex - þessi tilvísun á að vera stöðug, svo hún er læst með $ tákninu.
Hunsa auður valkostur valinn
Þegar þú setur upp sérsniðna gagnavottunarreglu er mikilvægt að afvelja Hunsa auða gátreitinn. Annars virkar reglan ekki af eftirfarandi ástæðu:
Ef samsvörun finnst ekki, þá skilar RegExpMatch fallið FALSE. Þegar valkosturinn Hunsa auður er valinn jafngildir FALSE auðu og er hunsuð.
Önnur lausn er beinlínis að segja að formúlan eigi að skila TRUE:
=RegExpMatch(…)=TRUE
Svona á að gera gagnaprófun í Excel með því að nota reglulegar segðir. Ég þakka þér fyrir lesturinn og hlakka til að sjá þig á blogginu okkar í næstu viku!
Æfingabók til niðurhals
Regex Data Validation dæmi (.xlsm skrá)