Uthibitishaji wa Data ya Excel kwa kutumia misemo ya kawaida (Regex)

  • Shiriki Hii
Michael Brown

Mafunzo yanaonyesha jinsi ya kufanya uthibitishaji wa data katika Excel kwa kutumia misemo ya kawaida kwa usaidizi wa kitendakazi maalum cha RegexMatch.

Inapokuja suala la kuzuia uingizaji wa mtumiaji katika lahakazi za Excel, Uthibitishaji wa Data. ni ya lazima. Je, ungependa kuruhusu nambari au tarehe pekee katika kisanduku fulani? Au punguza maadili ya maandishi kwa urefu maalum? Au labda usiruhusu nyakati nje ya safu fulani? Hakuna shida, yote haya yanaweza kufanywa kwa urahisi na vigezo vya uthibitishaji vilivyowekwa mapema au maalum. Lakini vipi ikiwa ninataka kuruhusu barua pepe au mifuatano halali pekee inayolingana na muundo maalum? Ole, hiyo haiwezekani. Regex unasema? Hmm... hiyo inaweza kufanya kazi!

    Jinsi ya kufanya Uthibitishaji wa Data ya Excel kwa Regex

    Kwa huzuni, hakuna vipengele vilivyojengewa ndani vya Excel vinavyoauni regeksi, na Uthibitishaji wa Data sivyo. ubaguzi. Ili uweze kuthibitisha uingizaji wa seli kwa kutumia misemo ya kawaida, unahitaji kuunda kitendakazi maalum cha Regex kwanza. Shida nyingine ni kwamba vitendaji vilivyoainishwa na mtumiaji wa VBA haviwezi kutumwa kwa Uthibitishaji wa Data moja kwa moja - utahitaji mpatanishi kwa njia ya fomula iliyopewa jina.

    Kwa kuzingatia yaliyo hapo juu, hebu tueleze kwa ufupi hatua zinazopaswa kuchukuliwa. ili kuthibitisha data katika Excel kwa kutumia rejeksi:

    1. Unda chaguo maalum la kukokotoa la Regex ambalo hukagua kama thamani ya ingizo inalingana na usemi wa kawaida.
    2. Fafanua jina la fomula yako ya Regex.
    3. Sanidi sheria ya Uthibitishaji wa Data kulingana na fomula iliyotajwa.
    4. Nakilimipangilio ya uthibitishaji kwa visanduku vingi unavyotaka.

    Inaonekana kama mpango? Hebu tujaribu kuitekeleza kwa vitendo!

    Uthibitishaji wa data ya Excel kwa kutumia maneno maalum ya kawaida

    Mfano huu unashughulikia kesi ya kawaida sana - jinsi ya kuruhusu tu thamani za muundo maalum.

    Tuseme umeweka baadhi ya misimbo ya SKU kwenye lahakazi yako na unataka kuwa na uhakika kwamba ni misimbo tu inayolingana na mchoro fulani ndio huingia kwenye orodha. Isipokuwa kwamba kila SKU inajumuisha vikundi 2 vya herufi zilizotenganishwa na kistari, kikundi cha kwanza ikijumuisha herufi 3 kuu na kikundi cha pili - tarakimu 3, unaweza kutambua thamani hizo kwa kutumia regex iliyo hapa chini.

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

    Tafadhali kumbuka kuwa mwanzo (^) na mwisho ($) wa mfuatano umetiwa nanga, kwa hivyo hakuna vibambo isipokuwa katika mchoro unaweza kuingizwa katika kisanduku.

    1. Ongeza kitendakazi maalum cha Regex Match

    Anza kwa kuweka kitendakazi cha RegExpMatch katika kitabu chako cha kazi. Msimbo tayari umeandikwa na wakuu wetu wa Excel, kwa hivyo unahitaji tu kuinakili kutoka kwa ukurasa uliounganishwa hapo juu na ubandike katika kihariri chako cha VBA.

    Hii hapa ni syntax ya kazi kwa ajili ya marejeleo yako:

    RegExpMatch(text , muundo, [match_case])

    Wapi:

    • Maandishi (inahitajika) - mfuatano wa chanzo (katika muktadha wetu - kisanduku kilichothibitishwa).
    • Muundo (inahitajika) - usemi wa kawaida ili kuendana.
    • Kesi_ya_match (hiari) - aina ya mechi. TRUE au imeachwa - kesi-nyeti; UONGO - haizingatii kesi.

    Kidokezo. Ikiwa wewe ni mtumiaji wa Ultimate Suite yetu, basi unaweza kufanya Uthibitishaji wa Data ya Regex katika Excel bila kuongeza msimbo wowote wa VBA kwenye vitabu vyako vya kazi. Ongeza tu chaguo maalum la kukokotoa la AblebitsRegexMatch lililojumuishwa na Zana zetu za Regex.

    2. Unda fomula iliyopewa jina

    Katika lahakazi unayolenga, chagua kisanduku A1 (bila kujali yaliyomo na haijalishi ni kisanduku gani utakachothibitisha), bonyeza Ctrl + F3 ili kufungua Kidhibiti cha Jina, na ubainishe jina. kwa fomula hii:

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

    Au unaweza kuingiza regex katika kisanduku fulani (A2 katika mfano huu) na kutoa $A$2 kwa hoja ya pili:

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

    Ili fomula ifanye kazi ipasavyo, hakikisha kuwa unatumia rejeleo linganishi kwa hoja ya maandishi (A1) na marejeleo kamili ya muundo ($A$2).

    Kwa kuzingatia kwamba fomula yetu imekusudiwa kuthibitisha nambari za SKU, tunaitaja ipasavyo: Thibitisha_SKU .

    Dokezo muhimu! Wakati wa kufafanua fomula, tafadhali hakikisha kwamba hoja ya kwanza inarejelea kisanduku kilichochaguliwa kwa sasa , vinginevyo fomula haitafanya kazi. Kwa mfano, ikiwa seli A1 imechaguliwa kwenye karatasi, weka A1 katika hoja ya kwanza (kulingana na mapendekezo yetu); ikiwa B2 imechaguliwa, basi tumia B2 kwa hoja ya kwanza, na hivyo moja. Haijalishi ni marejeleo gani hasa unayotumia mradi tu yanalingana na kisanduku kilichochaguliwa kwa sasa.

    Kwa hatua kwa hatua.maelekezo, tafadhali angalia Jinsi ya kutengeneza fomula iliyopewa jina katika Excel.

    3. Sanidi Uthibitishaji wa Data

    Chagua kisanduku cha kwanza cha kuangaliwa (kwa upande wetu A5) na uweke sheria maalum ya uthibitishaji wa data kulingana na fomula iliyotajwa. Kwa hili, fanya yafuatayo:

    1. Bofya Data kichupo > Uthibitishaji wa Data .
    2. Katika Ruhusu orodha kunjuzi, chagua Custom .
    3. Ingiza fomula iliyo hapa chini katika kisanduku sambamba.

      =Validate_SKU

    4. Ondoa kuchagua chaguo la Puuza tupu , vinginevyo sheria yako haitafanya kazi.

    Ikiwa ni hiari, unaweza kuandika ujumbe wa hitilafu maalum utakaoonyeshwa wakati data batili inapoingizwa kwenye kisanduku.

    Ikiwa unahisi kuwa unahitaji hatua za kina, fuata hapa: Jinsi ya kuweka Uthibitishaji Maalum wa Data katika Excel.

    4. Nakili Uthibitishaji wa Data kwa visanduku zaidi

    Ili kunakili mipangilio ya uthibitishaji kwenye visanduku zaidi, hivi ndivyo unavyohitaji kufanya:

    1. Chagua kisanduku chenye uthibitishaji wa data na ubonyeze Ctrl + C ili nakili.
    2. Chagua visanduku vingine unavyotaka kuhalalisha, bofya kulia kwao, bofya Bandika Maalum , na uchague chaguo la Uthibitishaji .
    3. Bofya Sawa .

    Maelezo zaidi yanaweza kupatikana katika Jinsi ya kunakili Uthibitishaji wa Data.

    Sasa, kila wakati mtu anapojaribu kuingiza SKU batili katika seli zozote zilizoidhinishwa, zifuatazo. ujumbe wa onyo utaonekana:

    Uthibitishaji wa barua pepe na Regex

    Ili kutekeleza uthibitishaji wa barua pepe, unaanzakwa kuandika usemi wa kawaida unaolingana na anwani ya barua pepe.

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

    Kwa maelezo ya kina ya sintaksia, tafadhali. angalia Regex ili kulinganisha anwani halali za barua pepe.

    Na sasa, bainisha vigezo vya uthibitishaji kwa kutekeleza hatua ambazo tayari zimejulikana:

    1. Ingiza regex iliyo hapo juu katika B2.
    2. Chagua kisanduku A1 na ubainishe jina linaloitwa Balidate_Email linalorejelea:

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

    3. Kwa kisanduku B5, tumia Uthibitishaji wa Data maalum kwa kutumia fomula iliyo hapa chini. Ni muhimu kwamba chaguo la Puuza tupu linapaswa kuondolewa.

      =Validate_Email

      Zaidi ya hayo, unaweza kusanidi ujumbe maalum wa hitilafu unaomwongoza mtumiaji kuingiza barua pepe halali.

    4. Nakili sheria hiyo kwenye visanduku vilivyo hapa chini.

    Ikiwa anwani ya barua pepe utakayoingiza kwenye kisanduku kilichothibitishwa hailingani na mchoro wa regex, arifa ifuatayo itafanyika. pop up:

    Kuthibitisha manenosiri kwa kutumia maneno ya kawaida

    Unapotumia regex kwa uthibitishaji wa nenosiri, jambo la kwanza kuamua ni kile ambacho usemi wako wa kawaida unapaswa kuangalia. Hii ni baadhi ya mifano ambayo inaweza kukuweka katika njia sahihi.

    Nenosiri lazima liwe na urefu wa angalau vibambo 6 na linaweza kuwa na herufi (herufi kubwa au ndogo) na tarakimu:

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

    Nenosiri lazima liwe na urefu wa angalau vibambo 6 na lijumuishe angalau herufi moja natarakimu moja:

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

    Nenosiri lazima liwe na urefu wa chini ya vibambo 6 na lijumuishe angalau herufi moja kubwa, herufi ndogo moja na tarakimu moja:

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

    Nenosiri lazima liwe na chini ya vibambo 6. ndefu na inajumuisha angalau herufi moja, tarakimu moja na herufi moja maalum:

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

    Mchoro ukiwa umeanzishwa, unaweza kuendelea na kusanidi Uthibitishaji wa Data:

    1. Ingiza nenosiri lako la regex katika C2.
    2. Chagua kisanduku A1 na uunde fomula iitwayo Validate_Password :

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

    3. Kwa kisanduku C5, weka sheria maalum ya uthibitishaji kwa kutumia fomula iliyo hapa chini. Kumbuka kuondoa kisanduku cha kuteua Puuza tupu .

      =Validate_Password

    4. Nakili sheria hiyo kwa visanduku vingi unavyotaka.

    Sasa, unaweza kuongeza manenosiri mapya kwenye orodha kwa usalama. Ikiwa mfuatano wa ingizo haulingani na regex, arifa ifuatayo itakukumbusha ni aina gani za thamani zinazokubaliwa:

    Uthibitishaji wa Data ya Regex haufanyi kazi

    Ikiwa Uthibitishaji wa Data ya Regex haufanyi kazi katika Excel yako. , kuna uwezekano mkubwa ni kwa sababu ya mojawapo ya sababu zifuatazo.

    Kitendaji cha RegExpMatch kinakosekana

    Kabla ya kutumia Uthibitishaji wa Data, hakikisha kuwa umeingiza msimbo wa kitendakazi cha RegExpMatch kwenye kitabu chako cha kazi.

    12>Sio sahihi mara kwa maraexpression

    Ili kuhakikisha regex yako inafanya kazi inavyotarajiwa, unaweza kuingiza fomula ya RegExpMatch katika kisanduku fulani na uchunguze matokeo. Kwa maelezo zaidi, tafadhali angalia Ulinganishaji wa usemi wa Kawaida wa Excel na mifano.

    Ili kuchanganua na kutatua misemo yako ya kawaida, unaweza kutumia huduma za bure za upimaji wa regex mtandaoni kama vile RegEx101 au RegExr.

    Fomula iliyotajwa vibaya.

    Sababu ya kawaida sana ya kushindwa kwa uthibitishaji wa data ni fomula ya Regex inayorejelea kisanduku kisicho sahihi. Katika mifano yote, tulipendekeza kufafanua fomula inayorejelea A1:

    =RegExpMatch(A1, regex)

    Hii inafanya kazi tu ikiwa kisanduku A1 kinatumika wakati wa kufafanua jina na rejeleo la jamaa (bila ishara ya $) linatumika.

    Wazo ni kwamba marejeleo ya jamaa yaliyobainishwa katika fomula (A1) yatabadilika kiotomatiki kulingana na nafasi ya jamaa ya kisanduku kilichoidhinishwa. Kwa maneno mengine, seli A1 imechaguliwa kwa urahisi na uthabiti. Kwa kweli, unaweza kuchagua kiini B1 na kurejelea B1, chagua kiini C1 na urejelee C1, na kadhalika. Jambo kuu ni kwamba seli iliyorejelewa inapaswa kuwa seli amilifu .

    Ili kuangalia kama fomula yako iliyotajwa ni sahihi, chagua kisanduku chochote kwenye lahakazi yako, fungua Kidhibiti cha Jina, na uone ni seli gani fomula inaelekeza. Ikiwa inarejelea kisanduku kilichochaguliwa kwa sasa, fomula ni sawa. Vinginevyo, unapaswa kubadilisha rejeleo katika hoja ya kwanza.

    Katika picha ya skrinihapa chini, kisanduku A7 kimechaguliwa, kumaanisha kwamba fomula iliyopewa jina inapaswa kuwa na A7 katika hoja ya kwanza. Hoja ya pili ($A$2) inarejelea regex - rejeleo hili linapaswa kubaki mara kwa mara, kwa hivyo limefungwa na ishara ya $.

    Puuza chaguo tupu lililochaguliwa

    Unapoweka sheria maalum ya Uthibitishaji wa Data, ni muhimu kuacha kuchagua kisanduku tiki cha Puuza tupu . Vinginevyo, sheria haitafanya kazi kwa sababu ifuatayo:

    Ikiwa haipatikani inayolingana, chaguo za kukokotoa za RegExpMatch hurejesha FALSE. Kwa chaguo la Puuza tupu lililochaguliwa, FALSE ni sawa na tupu na imepuuzwa.

    Suluhisho mbadala ni kusema kwa uwazi kwamba fomula inapaswa kurejesha TRUE:

    =RegExpMatch(…)=TRUE

    Hiyo ndio jinsi ya kufanya Uthibitishaji wa Data katika Excel kwa kutumia misemo ya kawaida. Ninakushukuru kwa kusoma na kutarajia kukuona kwenye blogu yetu wiki ijayo!

    Fanya mazoezi ya kupakuliwa kwa kitabu cha kazi

    Mifano ya Uthibitishaji wa Data ya Regex (.xlsm file)

    Michael Brown ni mpenda teknolojia aliyejitolea na mwenye shauku ya kurahisisha michakato changamano kwa kutumia zana za programu. Akiwa na uzoefu wa zaidi ya muongo mmoja katika tasnia ya teknolojia, ameboresha ujuzi wake katika Microsoft Excel na Outlook, pamoja na Majedwali ya Google na Hati. Blogu ya Michael imejitolea kushiriki maarifa na ujuzi wake na wengine, kutoa vidokezo na mafunzo ambayo ni rahisi kufuata ili kuboresha tija na ufanisi. Iwe wewe ni mtaalamu aliyebobea au umeanza, blogu ya Michael inatoa maarifa muhimu na ushauri wa vitendo ili kupata manufaa zaidi kutoka kwa zana hizi muhimu za programu.