Змест
Падручнік паказвае, як зрабіць праверку даных у Excel з дапамогай рэгулярных выразаў з дапамогай карыстальніцкай функцыі RegexMatch.
Калі справа даходзіць да абмежавання ўводу карыстальнікам у працоўныя аркушы Excel, праверка даных незаменны. Хочаце дазволіць толькі лічбы або даты ў дадзенай ячэйцы? Ці абмежаваць тэкставыя значэнні пэўнай даўжыні? Ці, можа быць, забараніць час за межамі зададзенага дыяпазону? Няма праблем, усё гэта можна лёгка зрабіць з загадзя зададзенымі або карыстацкімі крытэрамі праверкі. Але што, калі я хачу дазволіць толькі сапраўдныя адрасы электроннай пошты або радкі, якія адпавядаюць пэўнаму шаблону? Нажаль, гэта немагчыма. Regex вы кажаце? Хм... гэта можа спрацаваць!
Як зрабіць праверку даных Excel з дапамогай рэгулярных выразаў
На жаль, ні адна з убудаваных функцый Excel не падтрымлівае рэгулярныя выразы, а праверка даных не падтрымлівае выключэнне. Каб мець магчымасць правяраць увод ячэйкі з дапамогай рэгулярных выразаў, вам трэба спачатку стварыць карыстальніцкую функцыю Regex. Іншая складанасць заключаецца ў тым, што вызначаныя карыстальнікам функцыі VBA нельга абслугоўваць непасрэдна для праверкі даных - вам спатрэбіцца пасярэднік у выглядзе названай формулы.
Улічваючы вышэйсказанае, давайце коратка акрэслім крокі, якія неабходна выканаць. для праверкі даных у Excel з дапамогай рэгулярных выразаў:
- Стварыце карыстальніцкую функцыю Regex, якая правярае, ці адпавядае ўведзенае значэнне рэгулярнаму выразу.
- Вызначце імя для вашай формулы Regex.
- Наладзьце правіла праверкі даных на аснове названай формулы.
- Скапіруйценалады праверкі ў колькі заўгодна ячэек.
Гучыць як план? Давайце паспрабуем рэалізаваць гэта на практыцы!
Праверка даных Excel з выкарыстаннем уласных рэгулярных выразаў
У гэтым прыкладзе разглядаецца вельмі распаўсюджаны выпадак - як дазволіць толькі значэнні пэўнага шаблону.
Выкажам здагадку, што вы захоўваеце некалькі кодаў SKU на сваім аркушы і хочаце быць упэўненымі, што толькі коды, якія адпавядаюць зададзенаму шаблону, трапяць у спіс. Пры ўмове, што кожны SKU складаецца з 2 груп сімвалаў, падзеленых злучком, першая група ўключае 3 вялікія літары, а другая група - 3 лічбы, вы можаце вызначыць такія значэнні, выкарыстоўваючы прыведзены ніжэй рэгулярны выраз.
Шаблон : ^[A-Z]{3}-\d{3}$
Звярніце ўвагу, што пачатак (^) і канец ($) радка замацаваны, таму ніякія сімвалы, акрамя шаблон можа быць уведзены ў клетку.
1. Дадайце карыстальніцкую функцыю Regex Match
Пачніце з устаўкі функцыі RegExpMatch у вашу кнігу. Код ужо напісаны нашымі гуру Excel, таму вам проста трэба скапіяваць яго са старонкі, на якую спасылка вышэй, і ўставіць у ваш рэдактар VBA.
Вось сінтаксіс функцыі для даведкі:
RegExpMatch(тэкст , шаблон, [match_case])Дзе:
- Тэкст (абавязкова) - зыходны радок (у нашым кантэксце - правераная ячэйка).
- Шаблон (абавязкова) - рэгулярны выраз для супадзення.
- Match_case (неабавязкова) - тып супадзення. ПРАЎДА або прапушчана - case-адчувальна; FALSE - неадчувальны да рэгістра.
Падказка. Калі вы з'яўляецеся карыстальнікам нашага Ultimate Suite, вы можаце выканаць праверку даных рэгулярных выразаў у Excel, не дадаючы код VBA у свае працоўныя кнігі. Проста выкарыстоўвайце карыстальніцкую функцыю AblebitsRegexMatch, якая ўваходзіць у склад нашых інструментаў рэгулярных выразаў.
2. Стварыце формулу з назвай
На мэтавым працоўным аркушы выберыце ячэйку A1 (незалежна ад яе змесціва і незалежна ад таго, якую ячэйку вы збіраецеся правяраць), націсніце Ctrl + F3, каб адкрыць Дыспетчар імёнаў, і вызначце назву для гэтай формулы:
=RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")
Або вы можаце ўвесці рэгулярны выраз у нейкую ячэйку (A2 у гэтым прыкладзе) і паставіць $A$2 у другі аргумент:
=RegExpMatch(Sheet1!A1, Sheet1!$A$2)
Каб формула працавала правільна, абавязкова выкарыстоўвайце адносную спасылку для аргумента тэкст (A1) і абсалютную спасылку для шаблана ($A$2).
Улічваючы, што наша формула прызначана для праверкі нумароў SKU, мы назавем яе адпаведна: Validate_SKU .
Важная заўвага! Пры вызначэнні формулы яшчэ раз праверце, што першы аргумент адносіцца да выбранай у цяперашні час ячэйкі , інакш формула не будзе працаваць. Напрыклад, калі на аркушы выбрана вочка A1, пастаўце A1 у першы аргумент (у адпаведнасці з нашымі рэкамендацыямі); калі абраны B2, то выкарыстоўвайце B2 для першага аргументу, і так адзін. На самай справе не мае значэння, якую канкрэтную спасылку вы выкарыстоўваеце, пакуль яна адпавядае выбранай ячэйцы.
Для крок за крокамінструкцыі, калі ласка, глядзіце Як стварыць формулу з назвай у Excel.
3. Наладзьце праверку даных
Абярыце першую ячэйку для праверкі (у нашым выпадку A5) і стварыце карыстацкае правіла праверкі даных на аснове названай формулы. Для гэтага зрабіце наступнае:
- Націсніце ўкладку Даныя > Праверка даных .
- У Дазволіць у выпадальным спісе выберыце Карыстальніцкі .
- Увядзіце прыведзеную ніжэй формулу ў адпаведнае поле.
=Validate_SKU
- Зніміце выбар з опцыі Ігнараваць пустое , інакш ваша правіла не будзе працаваць.
Дадаткова вы можаце ўвесці карыстальніцкае паведамленне пра памылку, якое будзе адлюстроўвацца, калі ў ячэйку ўводзяцца несапраўдныя даныя.
Калі вы адчуваеце, што вам патрэбны падрабязныя крокі, вось вам: Як наладзіць карыстальніцкую праверку даных у Excel.
4. Скапіруйце праверку даных у больш ячэек
Каб скапіяваць налады праверкі ў больш ячэек, вам трэба зрабіць вось што:
- Выберыце ячэйку з праверкай даных і націсніце Ctrl + C, каб скапіруйце яго.
- Абярыце іншыя ячэйкі, якія хочаце праверыць, пстрыкніце іх правай кнопкай мышы, націсніце Спецыяльная ўстаўка і абярыце опцыю Праверка .
- Націсніце ОК .
Дадатковую інфармацыю можна знайсці ў раздзеле "Як скапіяваць праверку даных".
Цяпер кожны раз, калі хтосьці спрабуе ўвесці несапраўдны SKU у любую з правераных ячэек, наступнае з'явіцца паведамленне з папярэджаннем:
Праверка электроннай пошты з дапамогай рэгулярных выразаў
Каб выканаць праверку электроннай пошты, вы пачынаецез запісам рэгулярнага выразу, які адпавядае адрасу электроннай пошты.
Шаблон : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$
Каб атрымаць падрабязнае тлумачэнне сінтаксісу, калі ласка глядзіце рэгулярны выраз, каб адпавядаць сапраўдным адрасам электроннай пошты.
А цяпер укажыце крытэрыі праверкі, выканаўшы ўжо знаёмыя дзеянні:
- Увядзіце рэгулярны выраз вышэй у B2.
- Абярыце ячэйку A1 і вызначце назву Validate_Email , якая спасылаецца на:
=RegExpMatch(Sheet1!A1, Sheet1!$B$2)
- Для ячэйкі B5 прымяніце карыстацкую праверку даных, выкарыстоўваючы наступную формулу. Вельмі важна, каб параметр Ігнараваць прабел быў зняты.
=Validate_Email
Акрамя таго, вы можаце наладзіць карыстацкае паведамленне пра памылку, якое прапануе карыстальніку ўвесці сапраўдны адрас электроннай пошты.
- Скапіруйце правіла ў прыведзеныя ніжэй ячэйкі.
Калі адрас электроннай пошты, які вы ўводзіце ў правераную ячэйку, не адпавядае шаблону рэгулярнага выразу, наступнае папярэджанне усплывальнае акно:
Праверка пароляў з выкарыстаннем рэгулярных выразаў
Пры выкарыстанні рэгулярнага выразу для праверкі пароля першае, што трэба вырашыць, гэта тое, што павінен правяраць ваш рэгулярны выраз. Вось некалькі прыкладаў, якія могуць накіраваць вас на правільны шлях.
Пароль павінен складацца не менш за 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,}$
Калі шаблон усталяваны, вы можаце перайсці да наладжвання праверкі даных:
- Увядзіце рэгулярны выраз пароля ў C2.
- Выберыце ячэйку A1 і стварыце названую формулу з назвай Validate_Password :
=RegExpMatch(Sheet1!A1, Sheet1!$C$2)
- Для ячэйкі C5 стварыце індывідуальнае правіла праверкі з прыведзенай ніжэй формулай. Не забудзьце зняць сцяжок Ігнараваць пустое .
=Validate_Password
- Скапіруйце правіла ў колькі заўгодна ячэек.
Цяпер вы можаце смела дадаваць новыя паролі ў спіс. Калі ўваходны радок не адпавядае рэгулярнаму выразу, наступнае папярэджанне нагадае вам, якія віды значэнняў прымаюцца:
Праверка даных рэгулярных выразаў не працуе
Калі праверка даных рэгулярных выразаў не працуе ў вашым Excel , хутчэй за ўсё, гэта з-за адной з наступных прычын.
Адсутнічае функцыя RegExpMatch
Перш чым прымяняць праверку даных, не забудзьцеся ўставіць код функцыі RegExpMatch у вашу кнігу.
Няправільны звычайнывыраз
Каб пераканацца, што ваш рэгулярны выраз працуе належным чынам, вы можаце ўвесці формулу RegExpMatch у нейкую ячэйку і праверыць вынікі. Для атрымання дадатковай інфармацыі, калі ласка, гл. Супадзенне рэгулярных выразаў у Excel з прыкладамі.
Каб прааналізаваць і адладзіць свае рэгулярныя выразы, вы можаце выкарыстоўваць бясплатныя онлайн-сэрвісы тэсціравання рэгулярных выразаў, такія як RegEx101 або RegExr.
Няправільная назва формулы
Вельмі распаўсюджанай прычынай збою праверкі даных з'яўляецца формула з назвай Regex, якая спасылаецца на няправільную ячэйку. Ва ўсіх прыкладах мы рэкамендавалі вызначыць формулу, якая спасылаецца на A1:
=RegExpMatch(A1, regex)
Гэта працуе, толькі калі ячэйка A1 актыўная пры вызначэнні імя і <15 Выкарыстоўваецца>адносная спасылка (без знака $).
Ідэя заключаецца ў тым, што адносная спасылка, указаная ў формуле (A1), будзе аўтаматычна змяняцца ў залежнасці ад адноснага становішча праверанай ячэйкі. Іншымі словамі, вочка A1 выбрана толькі для зручнасці і паслядоўнасці. Фактычна, вы можаце выбраць ячэйку B1 і звярнуцца да B1, выбраць ячэйку C1 і звярнуцца да C1, і гэтак далей. Галоўнае, што ячэйка, на якую спасылаюцца , павінна быць актыўнай ячэйкай .
Каб праверыць, ці правільная названая формула, выберыце любую ячэйку ў вашым аркушы, адкрыйце Дыспетчар імёнаў і паглядзіце, на якую ячэйку паказвае формула. Калі гэта спасылаецца на выбраную ячэйку, формула правільная. У адваротным выпадку вы павінны змяніць спасылку ў першым аргументе.
На скрыншоцеунізе выбрана ячэйка A7, што азначае, што названая формула павінна мець A7 у першым аргументе. Другі аргумент ($A$2) спасылаецца на рэгулярны выраз - гэтая спасылка павінна заставацца нязменнай, таму яна фіксуецца знакам $.
Выбрана опцыя "Ігнараваць пустыя"
Пры наладжванні ўласнага правіла праверкі даных важна зняць сцяжок з поля Ігнараваць пустыя . У адваротным выпадку правіла не будзе працаваць па наступнай прычыне:
Калі супадзенне не знойдзена, функцыя RegExpMatch вяртае FALSE. Калі выбрана опцыя Ігнараваць пустое , FALSE прыраўноўваецца да пустога і ігнаруецца.
Альтэрнатыўнае рашэнне яўна паказвае, што формула павінна вяртаць TRUE:
=RegExpMatch(…)=TRUE
Вось як зрабіць праверку даных у Excel з дапамогай рэгулярных выразаў. Я дзякую вам за чытанне і з нецярпеннем чакаю сустрэчы з вамі ў нашым блогу на наступным тыдні!
Практычны сшытак для спампоўкі
Прыклады праверкі рэгулярных выразаў (файл .xlsm)