Excel տվյալների վավերացում՝ օգտագործելով կանոնավոր արտահայտություններ (Regex)

  • Կիսվել Սա
Michael Brown

Ձեռնարկը ցույց է տալիս, թե ինչպես կատարել տվյալների վավերացում Excel-ում՝ օգտագործելով սովորական արտահայտություններ՝ հատուկ RegexMatch ֆունկցիայի օգնությամբ:

Երբ խոսքը վերաբերում է Excel-ի աշխատաթերթերում օգտվողի մուտքագրումը սահմանափակելուն, տվյալների վավերացումը անփոխարինելի է։ Ցանկանու՞մ եք թույլատրել միայն թվերը կամ ամսաթվերը տվյալ բջիջում: Կամ տեքստի արժեքները սահմանափակե՞լ որոշակի երկարությամբ: Կամ գուցե արգելե՞լ ժամանակները տվյալ տիրույթից դուրս: Խնդիր չկա, այս ամենը կարելի է հեշտությամբ կատարել նախադրված կամ մաքսային վավերացման չափանիշներով: Բայց ինչ անել, եթե ես ուզում եմ թույլատրել միայն վավեր էլփոստի հասցեներ կամ տողեր, որոնք համապատասխանում են որոշակի օրինակին: Ավաղ, դա հնարավոր չէ։ Ռեգեքս կասեք? Հմմ… դա կարող է աշխատել:

    Ինչպես անել Excel-ի տվյալների վավերացումը Regex-ով

    Ցավոք սրտի, Excel-ի ներկառուցված գործառույթներից և ոչ մեկը չի ապահովում ռեգեքսներ, և տվյալների վավերացումը չի գործում: բացառություն. Որպեսզի կարողանաք հաստատել բջջային մուտքագրումը` օգտագործելով կանոնավոր արտահայտություններ, նախ պետք է ստեղծել հատուկ Regex ֆունկցիա: Մեկ այլ բարդություն այն է, որ VBA-ի օգտագործողի կողմից սահմանված գործառույթները չեն կարող ուղղակիորեն մատուցվել տվյալների վավերացմանը. ձեզ անհրաժեշտ կլինի միջնորդ՝ անվանված բանաձևի տեսքով:

    Հաշվի առնելով վերը նշվածը, եկեք հակիրճ նկարագրենք այն քայլերը, որոնք պետք է ձեռնարկվեն: Excel-ում տվյալները ռեգեքսների միջոցով վավերացնելու համար.

    1. Ստեղծեք հատուկ Regex ֆունկցիա, որը ստուգում է, թե արդյոք մուտքային արժեքը համապատասխանում է սովորական արտահայտությանը:
    2. Սահմանեք անուն ձեր Regex բանաձևի համար:
    3. Կարգավորեք տվյալների վավերացման կանոնը` հիմնված անվանված բանաձևի վրա:
    4. Պատճենեքվավերացման կարգավորումները այնքան բջիջներում, որքան ցանկանում եք:

    Ծրագիր է թվում: Փորձենք կիրառել այն գործնականում:

    Excel-ի տվյալների վավերացում՝ օգտագործելով սովորական սովորական արտահայտություններ

    Այս օրինակը վերաբերում է շատ սովորական դեպքին. ինչպես թույլատրել միայն որոշակի օրինաչափության արժեքները:

    0> Ենթադրենք, որ դուք պահում եք SKU-ի որոշ կոդեր ձեր աշխատաթերթում և ցանկանում եք վստահ լինել, որ միայն տվյալ օրինաչափությանը համապատասխանող կոդերը մտնում են ցուցակում: Պայմանով, որ յուրաքանչյուր SKU բաղկացած է գծիկով առանձնացված նիշերի 2 խմբից, առաջին խումբը ներառում է 3 մեծատառ, իսկ երկրորդ խումբը՝ 3 նիշ, դուք կարող եք նույնականացնել նման արժեքները՝ օգտագործելով ստորև նշված ռեգեքսը:

    Նախշ : ^[A-Z]{3}-\d{3}$

    Խնդրում ենք նկատի ունենալ, որ տողի սկիզբը (^) և վերջը ($) խարսխված են, այնպես որ ոչ մի նիշ բացի նախշը կարելի է մուտքագրել բջիջում:

    1. Ավելացնել հատուկ Regex Match ֆունկցիա

    Սկսեք ձեր աշխատանքային գրքում RegExpMatch ֆունկցիան տեղադրելով: Կոդն արդեն գրված է մեր Excel-ի գուրուների կողմից, այնպես որ դուք պարզապես պետք է պատճենեք այն վերը նշված էջից և տեղադրեք ձեր VBA խմբագրիչում:

    Ահա ֆունկցիայի շարահյուսությունը ձեր հղման համար.

    RegExpMatch(տեքստը , օրինակ, [համապատասխանի_պատյան])

    Որտեղ՝

    • Տեքստ (պահանջվում է) - աղբյուրի տող (մեր համատեքստում՝ վավերացված բջիջ):
    • Pattern (պահանջվում է) - համընկնող սովորական արտահայտություն:
    • Match_case (ըստ ցանկության) - համընկնումի տեսակ: ՃԻՇՏ կամ բաց թողնված - դեպք-զգայուն; ՍՈՒՏ - մեծատառով անզգայուն:

    Հուշում. Եթե ​​դուք մեր Ultimate Suite-ի օգտատեր եք, ապա կարող եք կատարել Regex տվյալների վավերացում Excel-ում՝ առանց ձեր աշխատանքային գրքույկներում որևէ VBA կոդ ավելացնելու: Պարզապես օգտագործեք հարմարեցված AblebitsRegexMatch ֆունկցիան, որը ներառված է մեր Regex գործիքների հետ:

    2. Ստեղծեք անվանված բանաձև

    Ձեր թիրախային աշխատաթերթում ընտրեք A1 բջիջը (անկախ դրա բովանդակությունից և անկախ նրանից, թե որ բջիջն եք իրականում վավերացնելու), սեղմեք Ctrl + F3՝ Անունների կառավարիչը բացելու համար և սահմանեք անուն: այս բանաձևի համար՝

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

    Կամ կարող եք մուտքագրել ռեգեքսը որոշ բջիջում (այս օրինակում՝ A2) և մատակարարել $A$2 երկրորդ արգումենտին՝

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

    Որպեսզի բանաձևը ճիշտ աշխատի, համոզվեք, որ օգտագործեք հարաբերական հղում text արգումենտի համար (A1) և բացարձակ հղում օրինաչափություն ($A$2):

    Հաշվի առնելով, որ մեր բանաձևը նախատեսված է SKU համարների վավերացման համար, մենք այն համապատասխան անվանում ենք՝ Validate_SKU :

    Կարևոր նշում. Բանաձևը սահմանելիս խնդրում ենք կրկնակի ստուգել, ​​որ առաջին արգումենտը վերաբերում է ներկայումս ընտրված բջիջին , հակառակ դեպքում բանաձևը չի աշխատի: Օրինակ, եթե թերթի վրա ընտրված է A1 բջիջը, առաջին արգումենտում դրեք A1-ը (մեր առաջարկությունների համաձայն); եթե ընտրված է B2, ապա օգտագործեք B2 առաջին արգումենտի համար և այլն: Կարևոր չէ, թե կոնկրետ որ հղումն եք օգտագործում, քանի դեռ այն համապատասխանում է տվյալ պահին ընտրված բջիջին:

    Քայլ առ քայլհրահանգները, խնդրում ենք տե՛ս Ինչպես կատարել անվանված բանաձև Excel-ում:

    3. Կարգավորեք տվյալների վավերացումը

    Ընտրեք ստուգման ենթակա առաջին բջիջը (մեր դեպքում՝ A5) և կազմեք տվյալների վավերացման հատուկ կանոն՝ հիմնվելով անվանված բանաձևի վրա: Դրա համար կատարեք հետևյալը.

    1. Սեղմեք Տվյալներ ներդիրը > Տվյալների վավերացում ։
    2. Թույլատրել բացվող ցանկը, ընտրեք Պատվերով :
    3. Մուտքագրեք ստորև բերված բանաձևը համապատասխան վանդակում:

      =Validate_SKU

    4. Ապընտրեք Անտեսել դատարկը տարբերակը, հակառակ դեպքում ձեր կանոնը չի աշխատի:

    Ցանկության դեպքում կարող եք մուտքագրել հատուկ սխալի հաղորդագրություն, որը կցուցադրվի, երբ վանդակում անվավեր տվյալներ են մուտքագրվում:

    Եթե կարծում եք, որ ձեզ անհրաժեշտ են մանրամասն քայլեր, ապա գնացեք. Ինչպես կարգավորել հատուկ տվյալների վավերացումը Excel-ում:

    4. Պատճենել տվյալների վավերացումը ավելի շատ բջիջներում

    Վավերացման կարգավորումները ավելի շատ բջիջներում պատճենելու համար սա է այն, ինչ դուք պետք է անեք.

    1. Ընտրեք տվյալների վավերացմամբ բջիջը և սեղմեք Ctrl + C՝ պատճենեք այն:
    2. Ընտրեք այլ բջիջներ, որոնք ցանկանում եք վավերացնել, աջ սեղմեք դրանց վրա, սեղմեք Տեղադրել հատուկ և ընտրեք Վավերացում տարբերակը:
    3. Սեղմեք OK :

    Լրացուցիչ տեղեկություններ կարելի է գտնել «Ինչպես պատճենել տվյալների վավերացումը» բաժնում:

    Այժմ, ամեն անգամ, երբ ինչ-որ մեկը փորձում է անվավեր SKU մուտքագրել վավերացված բջիջներից որևէ մեկում, հետևյալը. կհայտնվի նախազգուշական հաղորդագրություն.

    Էլփոստի վավերացում Regex-ով

    Էլփոստի վավերացում կատարելու համար դուք սկսում եք.էլփոստի հասցեին համապատասխանող կանոնավոր արտահայտություն գրելու միջոցով:

    Նախշը ՝ ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$

    Շարահյուսության մանրամասն բացատրության համար խնդրում ենք տես Regex՝ վավեր էլփոստի հասցեներին համապատասխանելու համար:

    Եվ հիմա նշեք վավերացման չափանիշները՝ կատարելով արդեն ծանոթ քայլերը.

    1. Մուտքագրեք վերը նշված ռեգեքսը B2-ում:
    2. Ընտրեք A1 բջիջը և սահմանեք անուն, որը կոչվում է Validate_Email , որը վերաբերում է. Կարևոր է, որ Անտեսել դատարկը տարբերակը պետք է չընտրվի:

      =Validate_Email

      Բացի այդ, դուք կարող եք կարգավորել հատուկ սխալի հաղորդագրություն, որը հուշում է օգտվողին մուտքագրել վավեր էլ. հասցե:

    3. Պատճենեք կանոնը ստորև բերված բջիջներում:

    Եթե վավերացված բջիջում մուտքագրված էլ.փոստի հասցեն չի համընկնում ռեգեքսի օրինակին, ապա հետևյալ ծանուցումը կլինի pop up.

    Գաղտնաբառերի վավերացում՝ օգտագործելով կանոնավոր արտահայտություններ

    Երբ օգտագործում եք regex գաղտնաբառի վավերացման համար, առաջին բանը, որ պետք է որոշեք, այն է, թե կոնկրետ ինչ պետք է ստուգի ձեր սովորական արտահայտությունը: Ահա մի քանի օրինակներ, որոնք կարող են ձեզ ճիշտ ուղու վրա դնել:

    Գաղտնաբառը պետք է պարունակի առնվազն 6 նիշ և կարող է պարունակել միայն տառեր (մեծ կամ փոքրատառեր) և թվանշաններ.

    Pattern . ^[A-Za-z0-9]{6,}$

    Գաղտնաբառը պետք է լինի առնվազն 6 նիշ և ներառի առնվազն մեկ տառ ևմեկ նիշ՝

    Նշան ՝ ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$

    Գաղտնաբառը պետք է պարունակի նվազագույնը 6 նիշ և պարունակի առնվազն մեկ մեծատառ, մեկ փոքրատառ և մեկ թվանշան.

    Նախշում : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$

    Գաղտնաբառը պետք է լինի նվազագույնը 6 նիշ երկար և ներառում է առնվազն մեկ տառ, մեկ թվանշան և մեկ հատուկ նիշ.

    Նախշում : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$

    Հաստատված օրինաչափության դեպքում կարող եք անցնել տվյալների վավերացման կարգավորում.

    1. Մուտքագրեք ձեր գաղտնաբառի ռեգեքսը C2-ում:
    2. Ընտրեք A1 բջիջը և ստեղծեք անունով բանաձև, որը կոչվում է Validate_Password :

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

    3. C5 բջիջի համար ստեղծեք հատուկ վավերացման կանոն ստորև բերված բանաձևով: Հիշեք, որ ապաընտրեք Անտեսել դատարկը վանդակը:

      =Validate_Password

    4. Պատճենեք կանոնը այնքան բջիջներում, որքան ցանկանում եք:

    Այժմ կարող եք ապահով կերպով նոր գաղտնաբառեր ավելացնել ցանկին: Եթե ​​մուտքագրման տողը չի համընկնում ռեգեքսի հետ, ապա հետևյալ ծանուցումը ձեզ կհիշեցնի, թե ինչ տեսակի արժեքներ են ընդունվում. , ամենայն հավանականությամբ, դա պայմանավորված է հետևյալ պատճառներով:

    RegExpMatch ֆունկցիան բացակայում է

    Նախքան տվյալների վավերացումը կիրառելը, համոզվեք, որ ձեր աշխատանքային գրքում տեղադրեք RegExpMatch ֆունկցիայի կոդը:

    12>Սխալ կանոնավորարտահայտություն

    Որպեսզի համոզվեք, որ ձեր ռեգեքսը աշխատում է այնպես, ինչպես սպասվում էր, կարող եք որոշ բջիջում մուտքագրել RegExpMatch բանաձև և ուսումնասիրել արդյունքները: Լրացուցիչ տեղեկությունների համար տե՛ս Excel-ի կանոնավոր արտահայտությունների համընկնում օրինակներով:

    Ձեր սովորական արտահայտությունները վերլուծելու և վրիպազերծելու համար կարող եք օգտագործել առցանց ռեգեքսի փորձարկման անվճար ծառայություններ, ինչպիսիք են RegEx101 կամ RegExr:

    Սխալ անունով բանաձևը

    Տվյալների վավերացման ձախողման շատ տարածված պատճառը Regex անունով բանաձեւն է, որը վերաբերում է սխալ բջիջին: Բոլոր օրինակներում մենք խորհուրդ ենք տալիս սահմանել բանաձև, որը վերաբերում է A1-ին.

    =RegExpMatch(A1, regex)

    Սա աշխատում է միայն այն դեպքում, եթե A1 բջիջը ակտիվ է անունը սահմանելիս և Օգտագործվում է>հարաբերական հղում (առանց $ նշանի):

    Գաղափարն այն է, որ (A1) բանաձևում նշված հարաբերական հղումը ավտոմատ կերպով կփոխվի` հիմնվելով վավերացված բջջի հարաբերական դիրքի վրա: Այլ կերպ ասած, A1 բջիջը ընտրված է պարզապես հարմարության և հետևողականության համար: Փաստորեն, դուք կարող եք ընտրել B1 բջիջը և հղում կատարել B1-ին, ընտրել C1 բջիջը և հղում կատարել C1-ին և այլն: Հիմնական բանն այն է, որ հղված բջիջը պետք է լինի ակտիվ բջիջը :

    Ստուգելու համար, թե արդյոք ձեր անվանված բանաձևը ճիշտ է, ընտրեք ձեր աշխատաթերթի որևէ բջիջ, բացեք Անվանեք կառավարիչ և տեսեք, թե որ բջիջին է մատնանշում բանաձևը: Եթե ​​դա վերաբերում է ներկայումս ընտրված բջիջին, ապա բանաձեւը ճիշտ է: Հակառակ դեպքում, դուք պետք է փոխեք հղումը առաջին արգումենտում:

    Սքրինշոթումներքևում ընտրված է A7 բջիջը, ինչը նշանակում է, որ անվանված բանաձևը պետք է ունենա A7 առաջին արգումենտում: Երկրորդ արգումենտը ($A$2) վերաբերում է ռեգեքսին. այս հղումը ենթադրաբար մնում է հաստատուն, ուստի այն կողպված է $ նշանով:

    Ընտրված է «Անտեսել դատարկ տարբերակը»

    Տվյալների վավերացման հատուկ կանոնը կարգավորելիս կարևոր է ապաընտրել Անտեսել դատարկը վանդակը: Հակառակ դեպքում կանոնը չի աշխատի հետևյալ պատճառով.

    Եթե համընկնում չի գտնվել, RegExpMatch ֆունկցիան վերադարձնում է FALSE: Ընտրված Անտեսել դատարկը տարբերակը, FALSE-ը հավասարվում է դատարկի և անտեսվում է:

    Այլընտրանքային լուծումը բացահայտորեն նշում է, որ բանաձևը պետք է վերադարձնի TRUE.

    =RegExpMatch(…)=TRUE

    Այսպես կարելի է կատարել տվյալների վավերացում Excel-ում՝ օգտագործելով կանոնավոր արտահայտություններ: Ես շնորհակալ եմ ձեզ կարդալու համար և անհամբեր սպասում եմ ձեզ հաջորդ շաբաթ մեր բլոգում տեսնելու համար:

    Պրակտիկ աշխատանքային գրքույկ ներբեռնելու համար

    Regex տվյալների վավերացման օրինակներ (.xlsm ֆայլ)

    Մայքլ Բրաունը նվիրված տեխնոլոգիայի էնտուզիաստ է, որը ձգտում է պարզեցնել բարդ գործընթացները՝ օգտագործելով ծրագրային գործիքները: Տեխնոլոգիական ոլորտում ավելի քան մեկ տասնամյակ փորձ ունենալով՝ նա կատարելագործել է իր հմտությունները Microsoft Excel-ում և Outlook-ում, ինչպես նաև Google Sheets-ում և Docs-ում: Մայքլի բլոգը նվիրված է իր գիտելիքներն ու փորձառությունը ուրիշների հետ կիսելուն՝ տրամադրելով հեշտ օգտագործվող խորհուրդներ և ձեռնարկներ՝ արտադրողականությունն ու արդյունավետությունը բարձրացնելու համար: Անկախ նրանից, թե դուք փորձառու մասնագետ եք, թե սկսնակ, Մայքլի բլոգը առաջարկում է արժեքավոր պատկերացումներ և գործնական խորհուրդներ՝ առավելագույն օգուտ քաղելու այս կարևոր ծրագրային գործիքներից: