Ердийн илэрхийлэл (Regex) ашиглан Excel өгөгдлийн баталгаажуулалт

  • Үүнийг Хуваалц
Michael Brown

Захиалгат RegexMatch функцын тусламжтайгаар Excel-д өгөгдөл баталгаажуулалтыг хэрхэн яаж хийхийг заадаг.

Excel-ийн ажлын хуудсанд хэрэглэгчийн оруулахыг хязгаарлах тухай бол Өгөгдлийн баталгаажуулалт. зайлшгүй юм. Өгөгдсөн нүдэнд зөвхөн тоо эсвэл огноог зөвшөөрөхийг хүсэж байна уу? Эсвэл текстийн утгыг тодорхой уртаар хязгаарлах уу? Эсвэл өгөгдсөн хязгаараас гадуур цагийг хориглох уу? Ямар ч асуудалгүй, энэ бүгдийг урьдчилан тохируулсан эсвэл захиалгат баталгаажуулалтын шалгуураар хялбархан хийж болно. Гэхдээ би зөвхөн тодорхой загварт тохирсон имэйл хаяг эсвэл мөрийг зөвшөөрөхийг хүсвэл яах вэ? Харамсалтай нь, энэ боломжгүй юм. Regex гэж хэлж байна уу? Хмм... энэ нь ажиллах болов уу!

    Excel-ийн өгөгдөл баталгаажуулалтыг Regex-ээр хэрхэн хийх вэ

    Харамсалтай нь Excel-ийн суурилагдсан функцүүдийн аль нь ч регексийг дэмждэггүй бөгөөд Data Validation нь ямар ч боломжгүй. үл хамаарах зүйл. Тогтмол илэрхийлэл ашиглан нүдний оролтыг баталгаажуулахын тулд та эхлээд өөрчлөн Regex функц үүсгэх хэрэгтэй. Өөр нэг хүндрэл бол VBA хэрэглэгчийн тодорхойлсон функцуудыг Data Validation-д шууд үзүүлэх боломжгүй - танд нэрлэсэн томьёо хэлбэрээр зуучлагч хэрэгтэй болно.

    Дээрх зүйлийг авч үзээд хийх ёстой алхмуудыг товч дурдъя. regexs ашиглан Excel-д өгөгдлийг баталгаажуулахын тулд:

    1. Оролтын утга нь ердийн илэрхийлэлтэй тохирч байгаа эсэхийг шалгадаг захиалгат Regex функцийг үүсгэнэ үү.
    2. Өөрийн Regex томьёодоо нэрийг тодорхойлно уу.
    3. Нэрлэсэн томьёо дээр үндэслэн Өгөгдлийн баталгаажуулалтын дүрмийг тохируулна уу.
    4. Хуулбарлахбаталгаажуулалтын тохиргоог хүссэн хэмжээгээрээ авах боломжтой.

    Төлөвлөгөө шиг санагдаж байна уу? Үүнийг практикт хэрэгжүүлэхийг хичээцгээе!

    Захиалгат ердийн илэрхийлэл ашиглан Excel-ийн өгөгдлийг баталгаажуулах

    Энэ жишээ нь маш нийтлэг тохиолдлыг авч үздэг - зөвхөн тодорхой загварын утгыг хэрхэн зөвшөөрөх талаар.

    Та ажлын хуудсандаа зарим SKU кодыг хадгалсан бөгөөд зөвхөн тухайн загварт тохирсон кодууд жагсаалтад орсон гэдэгт итгэлтэй байхыг хүсч байна гэж бодъё. SKU бүр нь зураасаар тусгаарлагдсан 2 бүлэг тэмдэгтээс бүрдэх тохиолдолд эхний бүлэг нь 3 том үсэг, хоёр дахь бүлэг нь 3 цифрээс бүрдэх тохиолдолд та доорх регексийг ашиглан ийм утгыг тодорхойлж болно.

    Загвар : ^[A-Z]{3}-\d{3}$

    Мөрийн эхлэл (^) ба төгсгөл ($) нь бэхлэгдсэн тул тэмдэгтээс өөр тэмдэгт байхгүй гэдгийг анхаарна уу. нүдэнд загвар оруулах боломжтой.

    1. Захиалгат Regex Match функцийг нэмнэ үү

    Өөрийн ажлын дэвтэрт RegExpMatch функцийг оруулж эхэл. Энэ кодыг манай Excel-ийн багш аль хэдийн бичсэн байгаа тул та зүгээр л дээр дурдсан хуудаснаас хуулж аваад VBA засварлагчдаа буулгахад л болно.

    Таны лавлагааны функцийн синтакс энд байна:

    RegExpMatch(text). , загвар, [тохируулах_хэрэг])

    Үүнд:

    • Текст (шаардлагатай) - эх мөр (манай нөхцөлд - баталгаажуулсан нүд).
    • Загвар (шаардлагатай) - тохирох тогтмол илэрхийлэл.
    • Тохирох_хэрэгслэл (заавал биш) - тохирох төрөл. ҮНЭН эсвэл орхигдуулсан - тохиолдол-мэдрэмтгий; ХУДАЛ - жижиг жижиг жижиг үсэг.

    Зөвлөгөө. Хэрэв та манай Ultimate Suite-н хэрэглэгч бол ажлын дэвтэртээ VBA код нэмэлгүйгээр Excel дээр Regex Data Validation хийх боломжтой. Зүгээр л манай Regex хэрэгслүүдэд багтсан 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) сонгоод нэрлэсэн томьёо дээр үндэслэн өгөгдөл баталгаажуулах дүрмийг гарга. Үүний тулд дараах зүйлийг хийнэ үү:

    1. Өгөгдөл таб > Өгөгдлийн баталгаажуулалт дээр товшино уу.
    2. Зөвшөөрөх унадаг жагсаалтаас Захиалгат -г сонгоно уу.
    3. Харгалзах нүдэнд доорх томьёог оруулна уу.

      =Validate_SKU

    4. Хоосон үл тоомсорлох сонголтыг арилгана уу, эс тэгвээс таны дүрэм ажиллахгүй.

    Заавал бичих боломжтой. нүдэнд хүчингүй өгөгдөл оруулах үед харагдах алдааны мессеж.

    Хэрэв танд нарийвчилсан алхмууд хэрэгтэй гэж бодож байвал эндээс үзнэ үү: Excel-д захиалгат өгөгдөл баталгаажуулалтыг хэрхэн тохируулах талаар.

    4. Мэдээллийн баталгаажуулалтыг илүү олон нүд рүү хуулах

    Баталгаажуулалтын тохиргоог илүү олон нүд рүү хуулахын тулд та дараах зүйлийг хийх хэрэгтэй:

    1. Өгөгдлийн баталгаажуулалт бүхий нүдийг сонгоод Ctrl + C товчийг дарна уу. үүнийг хуулна уу.
    2. Баталгаажуулахыг хүсэж буй бусад нүднүүдийг сонгоод, хулганы баруун товчийг дараад Тусгай буулгах дээр товшоод Баталгаажуулалт сонголтыг сонгоно уу.
    3. OK дээр дарна уу.

    Дэлгэрэнгүй мэдээллийг Мэдээллийн баталгаажуулалтыг хэрхэн хуулах талаар авах боломжтой.

    Одоо хэн нэгэн баталгаажуулсан нүдэнд хүчингүй 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 нэртэй нэрийг тодорхойл. Хоосон үл тоомсорлох сонголтыг болиулсан байх нь чухал.

      =Validate_Email

      Нэмж дурдахад та хэрэглэгчээс хүчинтэй имэйл хаяг оруулахыг шаардсан алдааны мессежийг тохируулах боломжтой.

    3. Доорх нүднүүдэд дүрмийг хуулна уу.

    Хэрэв таны баталгаажуулсан нүдэнд оруулсан имэйл хаяг 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. Нууц үгээ C2-д regex-ээ оруулна уу.
    2. A1 нүдийг сонгоод нэртэй томьёо үүсгэнэ үү. Баталгаажуулах_Нууц үг :

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

    3. С5 нүдний хувьд доорх томьёогоор өөрчлөн баталгаажуулах дүрмийг үүсгэнэ үү. Хоосон үл тоомсорлох хайрцгийн сонголтыг арилгахаа мартуузай.

      =Validate_Password

    4. Дүрмийг хүссэн хэмжээгээрээ хуулж аваарай.

    Одоо та жагсаалтад шинэ нууц үгүүдийг аюулгүйгээр нэмэх боломжтой. Хэрэв оролтын мөр regex-тэй таарахгүй бол дараах анхааруулга танд ямар төрлийн утгуудыг хүлээн авахыг сануулах болно:

    Regex Data Validation ажиллахгүй байна

    Хэрэв Regex Data Validation таны Excel дээр ажиллахгүй бол , энэ нь дараах шалтгаануудын аль нэгтэй холбоотой байх магадлалтай.

    RegExpMatch функц дутуу

    Өгөгдлийн Баталгаажуулалтыг ашиглахын өмнө RegExpMatch функцийн кодыг ажлын дэвтэртээ оруулахаа мартуузай.

    Буруу тогтмолилэрхийлэл

    Таны regex хүлээгдэж буй байдлаар ажиллаж байгаа эсэхийг шалгахын тулд та RegExpMatch томьёог зарим нүдэнд оруулаад үр дүнг шалгаж болно. Дэлгэрэнгүй мэдээллийг жишээнүүдийн хамт Excel ердийн илэрхийлэл тааруулахыг үзнэ үү.

    Өөрийн ердийн илэрхийлэлд дүн шинжилгээ хийж, дибаг хийхийн тулд та RegEx101 эсвэл RegExr гэх мэт үнэ төлбөргүй онлайн реекс тестийн үйлчилгээг ашиглаж болно.

    Буруу нэрлэсэн томьёо.

    Өгөгдлийн баталгаажуулалтын бүтэлгүйтлийн маш түгээмэл шалтгаан нь буруу нүдтэй холбоотой Regex нэртэй томьёо юм. Бүх жишээн дээр бид A1-д хамаарах томъёог тодорхойлохыг зөвлөж байна:

    =RegExpMatch(A1, regex)

    Энэ нь зөвхөн нэр болон <15-г тодорхойлох үед A1 нүд идэвхтэй байвал л ажиллана>харьцангуй лавлагаа ($ тэмдэггүй) ашиглагдана.

    Тэмдэглэл (A1)-д заасан харьцангуй лавлагаа нь баталгаажуулсан нүдний харьцангуй байрлал дээр үндэслэн автоматаар өөрчлөгдөнө гэсэн санаа юм. Өөрөөр хэлбэл, A1 нүдийг зөвхөн тав тухтай байдал, тогтвортой байдлын үүднээс сонгосон. Үнэн хэрэгтээ, та B1 нүдийг сонгоод B1 рүү хандах, C1 нүдийг сонгоод C1 гэх мэтийг үзэж болно. Хамгийн гол нь ашигласан нүд нь идэвхтэй нүд байх ёстой.

    Таны нэрлэсэн томьёо зөв эсэхийг шалгахын тулд ажлын хуудасныхаа аль нэг нүдийг сонгоод Менежерийг нэрлээд томьёо аль нүдийг зааж байгааг харна уу. Хэрэв энэ нь одоо сонгогдсон нүдийг хэлж байгаа бол томъёо зөв байна. Үгүй бол та эхний аргумент дахь лавлагааг өөрчлөх хэрэгтэй.

    Дэлгэцийн агшинддоор, A7 нүдийг сонгосон бөгөөд энэ нь нэрлэсэн томьёоны эхний аргумент дээр A7 байх ёстой гэсэн үг юм. Хоёрдахь аргумент ($A$2) нь регексийг хэлдэг - энэ лавлагаа тогтмол байх ёстой тул $ тэмдгээр түгжигдсэн байна.

    Хоосон сонголтыг үл тоомсорлохыг сонгосон

    Өгөгдлийн баталгаажуулалтын дүрмийг тохируулахдаа Хоосон үл тоомсорлох хайрцгийн сонголтыг арилгах нь чухал юм. Үгүй бол дүрэм дараах шалтгааны улмаас ажиллахгүй:

    Хэрэв тохирох зүйл олдохгүй бол RegExpMatch функц нь ХУДАЛ буцаана. Хоосон үл тоомсорлох сонголтыг сонгосон үед FALSE нь хоосон утгатай тэнцэх бөгөөд үл тоомсорлодог.

    Өөр хувилбар нь томьёо нь ҮНЭНийг буцаах ёстойг тодорхой зааж өгсөн болно:

    =RegExpMatch(…)=TRUE

    Ердийн илэрхийлэл ашиглан Excel-д Өгөгдлийн Баталгаажуулалтыг ингэж хийдэг. Уншиж байгаад баярлалаа, ирэх долоо хоногт манай блог дээр уулзахыг тэсэн ядан хүлээж байна!

    Татаж авах дасгалын ном

    Regex Data Validation жишээ (.xlsm file)

    Майкл Браун бол програм хангамжийн хэрэгслийг ашиглан нарийн төвөгтэй процессуудыг хялбаршуулах хүсэл эрмэлзэлтэй, технологид дуртай хүн юм. Технологийн салбарт арав гаруй жил ажилласан туршлагатай тэрээр Microsoft Excel, Outlook, мөн Google Sheets болон Docs дээр ур чадвараа дээшлүүлсэн. Майклын блог нь өөрийн мэдлэг, туршлагаа бусадтай хуваалцах, бүтээмж, үр ашгийг дээшлүүлэхэд хялбар зөвлөмж, зааварчилгаа өгөх зорилготой юм. Та туршлагатай мэргэжилтэн эсвэл анхлан суралцаж байгаа эсэхээс үл хамааран Майклын блог нь эдгээр чухал програм хангамжийн хэрэгслээс хамгийн их ашиг хүртэх талаар үнэ цэнэтэй ойлголт, практик зөвлөгөөг санал болгодог.