Тұрақты өрнектерді пайдаланып Excel деректерін тексеру (Regex)

  • Мұны Бөлісіңіз
Michael Brown

Оқулық реттелетін RegexMatch функциясының көмегімен тұрақты өрнектерді пайдаланып Excel бағдарламасында деректерді тексеруді қалай орындау керектігін көрсетеді.

Excel жұмыс парақтарындағы пайдаланушы енгізуін шектеуге келгенде, Деректерді тексеру таптырмас болып табылады. Берілген ұяшықта тек сандарға немесе күндерге рұқсат бергіңіз келе ме? Немесе мәтін мәндерін белгілі бір ұзындыққа шектейсіз бе? Немесе берілген диапазоннан тыс уақыттарға тыйым салу мүмкін бе? Мәселе жоқ, мұның барлығын алдын ала орнатылған немесе реттелетін тексеру критерийлері арқылы оңай жасауға болады. Бірақ нақты үлгіге сәйкес келетін жарамды электрондық пошта мекенжайларына немесе жолдарға ғана рұқсат бергім келсе ше? Әттең, бұл мүмкін емес. Regex айтасыз ба? Хмм... бұл жұмыс істеуі мүмкін!

    Regex көмегімен Excel деректерін тексеру әдісі

    Өкінішке орай, кірістірілген Excel мүмкіндіктерінің ешқайсысы регекстерді қолдамайды, ал Деректерді тексеру жоқ. ерекшелік. Тұрақты өрнектерді пайдаланып ұяшық енгізуін растау үшін алдымен реттелетін Regex функциясын жасау керек. Тағы бір қиындық мынада, VBA пайдаланушы анықтайтын функцияларды Деректер тексеруіне тікелей қызмет көрсету мүмкін емес - сізге аталған формула түріндегі делдал қажет болады.

    Жоғарыда айтылғандарды ескере отырып, орындалатын қадамдарды қысқаша көрсетейік. Excel бағдарламасында регекстерді пайдаланып деректерді тексеру үшін:

    1. Енгізілген мәннің қалыпты өрнекке сәйкес келетінін тексеретін реттелетін Regex функциясын жасаңыз.
    2. Регекс формуласының атауын анықтаңыз.
    3. Аталған формула негізінде Деректерді тексеру ережесін конфигурациялаңыз.
    4. Көшіріңізтексеру параметрлерін қалауыңызша ұяшықтарға дейін.

    Жоспар сияқты ма? Оны іс жүзінде іске асыруға тырысайық!

    Теңшелетін тұрақты өрнектерді пайдаланып Excel деректерін тексеру

    Бұл мысал өте кең таралған жағдайды қарастырады - нақты үлгінің мәндерін ғана рұқсат ету жолы.

    Жұмыс парағында кейбір SKU кодтарын сақтасаңыз және тізімге тек берілген үлгіге сәйкес кодтар енетініне сенімді болғыңыз келсе. Әрбір SKU сызықшамен бөлінген таңбалардың 2 тобынан, бірінші топ 3 бас әріпті және екінші топты қамтитын 3 саннан тұратын жағдайда, мұндай мәндерді төмендегі регекс көмегімен анықтауға болады.

    Үлгі. : ^[A-Z]{3}-\d{3}$

    Жолдың басы (^) және соңы ($) бекітілгеніне назар аударыңыз, сондықтан жолдан басқа таңбалар болмайды. үлгіні ұяшыққа енгізуге болады.

    1. Теңшелетін Regex Match функциясын қосыңыз

    Жұмыс кітабыңызға RegExpMatch функциясын кірістіруден бастаңыз. Кодты біздің Excel шеберлері жазған, сондықтан оны жоғарыда сілтеме жасалған беттен көшіріп алып, VBA редакторына қою керек.

    Міне, анықтама үшін функция синтаксисі:

    RegExpMatch(text) , үлгі, [сәйкестік_регистрі])

    Мұндағы:

    • Мәтін (міндетті) - бастапқы жол (біздің контексте - тексерілген ұяшық).
    • Үлгі (міндетті) - сәйкес келетін тұрақты өрнек.
    • Сәйкестік_регі (міндетті емес) - сәйкестік түрі. ШЫН немесе түсірілген - жағдай-сезімтал; ЖАЛҒАН – регистрді ескермейді.

    Кеңес. Егер сіз біздің Ultimate Suite пайдаланушысы болсаңыз, онда Excel бағдарламасында Regex деректерін тексеруді жұмыс кітаптарыңызға VBA кодын қоспай-ақ жасай аласыз. Тек Regex құралдарымен қамтылған реттелетін AblebitsRegexMatch функциясын пайдаланыңыз.

    2. Атаулы формуланы жасаңыз

    Мақсатты жұмыс парағында A1 ұяшығын таңдаңыз (оның мазмұнына қарамастан және нақты қай ұяшықты растайтыныңызға қарамастан), Атау реттеушісін ашу үшін Ctrl + F3 пернелерін басыңыз және атауды анықтаңыз мына формула үшін:

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

    Немесе кейбір ұяшыққа regex мәнін енгізе аласыз (осы мысалдағы A2) және екінші аргументке $A$2 бере аласыз:

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

    Формуланың дұрыс жұмыс істеуі үшін мәтін аргументі (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. Жарайды түймесін басыңыз.

    Қосымша ақпаратты "Деректерді растауды көшіру жолы" бөлімінен табуға болады.

    Енді біреу тексерілген ұяшықтардың кез келгеніне жарамсыз SKU енгізу әрекетін жасаған сайын, төмендегілер орындалады. ескерту хабары пайда болады:

    Регекс көмегімен электрондық поштаны тексеру

    Электрондық поштаны тексеруді орындау үшін сізэлектрондық пошта мекенжайына сәйкес келетін тұрақты өрнек жазу арқылы.

    Үлгі : ^[\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 деп аталатын атауды анықтаңыз, ол мынаға сілтеме жасайды:

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

    3. B5 ұяшығы үшін төмендегі формуланы пайдаланып реттелетін деректерді тексеруді қолданыңыз. Босты елемеу опциясының таңдауын алып тастау маңызды.

      =Validate_Email

      Сонымен қатар, пайдаланушыға жарамды электрондық пошта мекенжайын енгізуді сұрайтын реттелетін қате туралы хабарды теңшеуге болады.

    4. Ережені төмендегі ұяшықтарға көшіріңіз.

    Тексерілген ұяшыққа енгізген электрондық пошта мекенжайы regex үлгісіне сәйкес келмесе, келесі ескерту шығады қалқымалы терезе:

    Тұрақты өрнектерді пайдаланып құпия сөздерді тексеру

    Құпия сөзді тексеру үшін regex сөзін пайдаланған кезде, бірінші кезекте тұрақты өрнектің нені тексеру керектігін шешу керек. Міне, сізді дұрыс жолға қоюға болатын кейбір мысалдар.

    Құпия сөздің ұзындығы кемінде 6 таңбадан тұруы керек және тек әріптерден (бас немесе кіші әріптер) және сандардан тұруы керек:

    Үлгі : ^[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. С2-де құпия сөздің регексін енгізіңіз.
    2. A1 ұяшығын таңдап, деп аталатын формуланы жасаңыз. Validate_Password :

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

    3. C5 ұяшығы үшін төмендегі формуламен теңшелетін тексеру ережесін жасаңыз. Босты елемеу құсбелгісін алып тастауды ұмытпаңыз.

      =Validate_Password

    4. Ережені қалағаныңызша ұяшықтарға көшіріңіз.

    Енді тізімге жаңа құпия сөздерді қауіпсіз қосуға болады. Енгізу жолы регекске сәйкес келмесе, келесі ескерту мәндердің қандай түрлері қабылданатынын еске салады:

    Regex Data Validation жұмыс істемейді

    Егер Regex Data Validation Excel бағдарламасында жұмыс істемесе , бұл келесі себептердің біріне байланысты болуы мүмкін.

    RegExpMatch функциясы жоқ

    Деректерді тексеруді қолданбас бұрын, жұмыс кітабыңызға RegExpMatch функциясының кодын енгізіңіз.

    Дұрыс емес тұрақтыөрнек

    Регекстің күтілгендей жұмыс істейтініне көз жеткізу үшін кейбір ұяшыққа RegExpMatch формуласын енгізіп, нәтижелерді тексеруге болады. Қосымша ақпарат алу үшін мысалдармен сәйкес келетін Excel тұрақты өрнек бөлімін қараңыз.

    Тұрақты өрнектерді талдау және жөндеу үшін RegEx101 немесе RegExr сияқты тегін онлайн регекс тестілеу қызметтерін пайдалана аласыз.

    Қате аталған формула

    Деректерді тексеру сәтсіздігінің жиі кездесетін себебі қате ұяшыққа сілтеме жасайтын Regex деп аталатын формула болып табылады. Барлық мысалдарда біз A1 сілтемесіне формуланы анықтауды ұсындық:

    =RegExpMatch(A1, regex)

    Бұл атауды және <15-ті анықтау кезінде A1 ұяшығы белсенді болса ғана жұмыс істейді>салыстырмалы сілтеме ($ белгісінсіз) пайдаланылады.

    Идея мынада: (A1) формулада көрсетілген салыстырмалы сілтеме расталған ұяшықтың салыстырмалы орнына байланысты автоматты түрде өзгереді. Басқаша айтқанда, A1 ұяшығы ыңғайлылық пен дәйектілік үшін ғана таңдалған. Шындығында, сіз B1 ұяшығын таңдап, В1-ге сілтеме жасай аласыз, C1 ұяшығын таңдап, C1-ге сілтеме жасай аласыз және т.б. Ең бастысы, сілтеме жасалған ұяшық белсенді ұяшық болуы керек.

    Аталған формуланың дұрыстығын тексеру үшін жұмыс парағындағы кез келген ұяшықты таңдаңыз, Атау реттеушісін таңдап, формула қай ұяшыққа нұсқайтынын көріңіз. Егер ол ағымдағы таңдалған ұяшыққа қатысты болса, формула дұрыс. Әйтпесе, бірінші аргументтегі сілтемені өзгерту керек.

    Скриншоттатөменде A7 ұяшығы таңдалды, яғни аталған формула бірінші аргументте A7 болуы керек. Екінші аргумент ($A$2) регекске сілтеме жасайды - бұл сілтеме тұрақты болып қалуы керек, сондықтан ол $ белгісімен бекітіледі.

    Таңдалған бос опцияны елемеу

    Теңшелетін деректерді тексеру ережесін орнату кезінде Босты елемеу құсбелгісін алып тастау маңызды. Әйтпесе, ереже келесі себепке байланысты жұмыс істемейді:

    Сәйкестік табылмаса, RegExpMatch функциясы FALSE мәнін қайтарады. Босты елемеу опциясы таңдалғанда, ЖАЛҒАН бос мәнге теңестіріледі және еленбейді.

    Балама шешім формуланың TRUE мәнін қайтаруы керек екенін анық көрсетеді:

    =RegExpMatch(…)=TRUE

    Деректерді тексеруді Excel бағдарламасында кәдімгі өрнектерді пайдалану арқылы осылай жасауға болады. Оқығаныңыз үшін алғыс айтамын және сізді келесі аптада біздің блогта күтемін!

    Жүктеп алуға арналған жұмыс кітабы

    Regex деректерін тексеру мысалдары (.xlsm файлы)

    Майкл Браун - бағдарламалық құралдарды пайдалана отырып, күрделі процестерді жеңілдетуге құмарлығы бар арнайы технология әуесқойы. Технологиялық индустрияда он жылдан астам тәжірибесі бар ол Microsoft Excel және Outlook, сондай-ақ Google Sheets және Docs бағдарламаларында өз дағдыларын жетілдірді. Майклдың блогы өз білімі мен тәжірибесін басқалармен бөлісуге, өнімділік пен тиімділікті арттыруға арналған оңай орындалатын кеңестер мен оқулықтар беруге арналған. Сіз тәжірибелі кәсіпқой болсаңыз да, жаңадан бастаушы болсаңыз да, Майклдың блогы осы маңызды бағдарламалық құралдарды барынша пайдалану үшін құнды түсініктер мен практикалық кеңестер ұсынады.