Muntazam ifodalar yordamida Excel ma'lumotlarini tekshirish (Regex)

  • Buni Baham Ko'Ring
Michael Brown

Oʻquv qoʻllanma maxsus RegexMatch funksiyasi yordamida muntazam iboralar yordamida Excelda maʼlumotlarni tekshirishni qanday amalga oshirishni koʻrsatadi.

Excel ish varaqlarida foydalanuvchi kiritishini cheklash haqida gap ketganda, Maʼlumotlarni tekshirish ajralmas hisoblanadi. Berilgan hujayrada faqat raqamlar yoki sanalarga ruxsat berishni xohlaysizmi? Yoki matn qiymatlarini ma'lum uzunlik bilan cheklaysizmi? Yoki ma'lum bir oraliqdan tashqari vaqtlarni taqiqlash mumkinmi? Muammo yo'q, bularning barchasi oldindan o'rnatilgan yoki moslashtirilgan tekshirish mezonlari bilan osongina amalga oshirilishi mumkin. Lekin faqat yaroqli elektron pochta manzillari yoki ma'lum bir naqshga mos keladigan satrlarga ruxsat bermoqchi bo'lsam nima bo'ladi? Afsuski, bu mumkin emas. Regex deysizmi? Hmm... bu ishlashi mumkin!

    Regex yordamida Excel ma'lumotlarini tekshirishni qanday qilish kerak

    Afsuski, o'rnatilgan Excel xususiyatlarining hech biri regexlarni qo'llab-quvvatlamaydi va Ma'lumotlarni tekshirish istisno. Muntazam iboralar yordamida hujayra kiritilishini tasdiqlash uchun avvalo maxsus Regex funksiyasini yaratishingiz kerak. Yana bir murakkablik shundaki, VBA foydalanuvchisi tomonidan belgilangan funksiyalarni toʻgʻridan-toʻgʻri Data Validation xizmatiga taqdim etib boʻlmaydi - sizga nomli formula koʻrinishidagi vositachi kerak boʻladi.

    Yuqoridagilarni hisobga olgan holda, keling, bajarilishi kerak boʻlgan qadamlarni qisqacha aytib oʻtamiz. Regexlar yordamida Excelda ma'lumotlarni tekshirish uchun:

    1. Kiritilgan qiymat oddiy ifodaga mos kelishini tekshiradigan maxsus Regex funksiyasini yarating.
    2. Regeks formulangiz uchun nom belgilang.
    3. Nomlangan formula asosida ma'lumotlarni tekshirish qoidasini sozlang.
    4. Nusxa olingtekshirish sozlamalari xohlagancha koʻp hujayralar uchun.

    Rejaga oʻxshaydimi? Keling, uni amalda qo'llashga harakat qilaylik!

    Maxsus oddiy iboralar yordamida Excel ma'lumotlarini tekshirish

    Ushbu misol juda keng tarqalgan holatni ko'rib chiqadi - faqat ma'lum bir naqsh qiymatlariga qanday ruxsat berish kerak.

    Siz ish varaqingizda ba'zi SKU kodlarini saqlasangiz va faqat ma'lum bir naqshga mos keladigan kodlar ro'yxatga kirishiga ishonch hosil qilishni xohlaysiz. Har bir SKU defis bilan ajratilgan 2 ta belgilar guruhidan iborat bo'lsa, birinchi guruh 3 ta bosh harf va ikkinchi guruh - 3 ta raqamdan iborat bo'lsa, siz bunday qiymatlarni quyidagi regexdan foydalanib aniqlashingiz mumkin.

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

    Iltimos, satrning boshi (^) va oxiri ($) bog'langanligiga e'tibor bering, shuning uchun qatordan boshqa belgilar qo'shilmaydi. katakka naqsh kiritish mumkin.

    1. Maxsus Regex Match funksiyasini qo'shing

    Ish kitobingizga RegExpMatch funksiyasini kiritishdan boshlang. Kod allaqachon Excel gurusimiz tomonidan yozilgan, shuning uchun uni yuqoridagi havola qilingan sahifadan nusxalashingiz va VBA muharriringizga joylashtirishingiz kifoya.

    Mana bu funksiya sintaksisi maʼlumot uchun:

    RegExpMatch(matn). , naqsh, [match_case])

    Bu erda:

    • Matn (majburiy) - manba qator (bizning kontekstimizda - tasdiqlangan katak).
    • Pattern (majburiy) - mos keladigan muntazam ifoda.
    • Match_case (ixtiyoriy) - moslik turi. TRUE yoki o'tkazib yuborilgan - case-sezgir; FALSE - katta-kichik harflarni sezmaydi.

    Maslahat. Agar siz bizning Ultimate Suite foydalanuvchisi bo'lsangiz, u holda Excelda Regex Data Validation-ni ish kitoblaringizga hech qanday VBA kodini qo'shmasdan amalga oshirishingiz mumkin. Regex asboblarimizga kiritilgan AblebitsRegexMatch maxsus funksiyasidan foydalaning.

    2. Nomlangan formula yarating

    Maqsadli ish varaqingizda A1 katakchasini tanlang (uning mazmunidan qat'i nazar va qaysi katakchani tasdiqlamoqchi bo'lishingizdan qat'iy nazar), Ism menejerini ochish uchun Ctrl + F3 tugmalarini bosing va nomni belgilang. ushbu formula uchun:

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

    Yoki siz biron bir katakchaga regexni kiritishingiz mumkin (bu misolda A2) va ikkinchi argumentga $A$2 kiriting:

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

    Formula to'g'ri ishlashi uchun matn argumenti (A1) uchun nisbiy havola va naqsh ($A$2) uchun mutlaq havoladan foydalaning.

    Bizning formulamiz SKU raqamlarini tekshirish uchun mo'ljallanganligini hisobga olib, biz uni shunga mos ravishda nomlaymiz: Validate_SKU .

    Muhim eslatma! Formulani belgilashda, iltimos, birinchi argument hozirda tanlangan katakchaga tegishli ekanligini ikki marta tekshiring, aks holda formula ishlamaydi. Misol uchun, varaqda A1 katakchasi tanlangan bo'lsa, birinchi argumentga A1 ni qo'ying (tavsiyalarimiz bo'yicha); agar B2 tanlangan bo'lsa, birinchi argument uchun B2 dan foydalaning va shunga o'xshash. Hozirda tanlangan katakchaga mos kelsa, qaysi maʼlumotnomani ishlatishingiz muhim emas.

    Bosqichma-bosqich uchunko'rsatmalar, iltimos, Excelda nomli formulani qanday qilish haqida qarang.

    3. Ma'lumotlarni tekshirishni o'rnatish

    Tekshiriluvchi birinchi katakchani tanlang (bizning holimizda A5) va nomlangan formula asosida maxsus ma'lumotlarni tekshirish qoidasini tuzing. Buning uchun quyidagilarni bajaring:

    1. Ma'lumotlar yorlig'ini > Ma'lumotlarni tekshirish -ni bosing.
    2. Ruxsat berish ochiladigan ro'yxatda Maxsus -ni tanlang.
    3. Quyidagi formulani tegishli maydonga kiriting.

      =Validate_SKU

    4. Bo'shga e'tibor bermaslik opsiyasini olib tashlang, aks holda qoidangiz ishlamaydi.

    Ixtiyoriy ravishda yozishingiz mumkin. katakka noto'g'ri ma'lumotlar kiritilganda ko'rsatiladigan maxsus xato xabari.

    Agar sizga batafsil qadamlar kerak deb hisoblasangiz, mana bu erga boring: Excelda maxsus ma'lumotlarni tekshirishni qanday sozlash kerak.

    4. Ma'lumotni tekshirishni ko'proq hujayralarga nusxalash

    Tasdiqlash sozlamalarini ko'proq hujayralarga nusxalash uchun siz buni qilishingiz kerak:

    1. Ma'lumotlar tekshiruvi mavjud katakchani tanlang va Ctrl + C tugmalarini bosing. uni nusxalash.
    2. Tasdiqlamoqchi bo'lgan boshqa katakchalarni tanlang, ularni sichqonchaning o'ng tugmasi bilan bosing, Maxsus joylashtirish -ni bosing va Tasdiqlash opsiyasini tanlang.
    3. OK tugmasini bosing.

    Qo'shimcha ma'lumotni "Ma'lumotlarni tekshirish usulidan nusxa ko'chirish" bo'limida topishingiz mumkin.

    Endi har safar kimdir tasdiqlangan katakchalarga noto'g'ri SKU kiritmoqchi bo'lganida, quyidagilar amalga oshiriladi. ogohlantirish xabari paydo bo'ladi:

    Regex yordamida elektron pochtani tekshirish

    E-pochtani tekshirishni amalga oshirish uchun siz ishga tushasizelektron pochta manziliga mos keladigan muntazam ifodani yozish bilan.

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

    Sintaksisni batafsil tushuntirish uchun, iltimos Yaroqli elektron pochta manzillarini moslashtirish uchun Regex-ga qarang.

    Va endi, allaqachon tanish bo'lgan amallarni bajarish orqali tasdiqlash mezonlarini belgilang:

    1. Yuqoridagi regexni B2-ga kiriting.
    2. A1 katakchani tanlang va Validate_Email nomli nomni belgilang, u quyidagilarga ishora qiladi:

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

    3. B5 katak uchun quyidagi formuladan foydalanib maxsus ma'lumotlarni tekshirishni qo'llang. Ignore bo'sh opsiyasi tanlanmagan bo'lishi kerak.

      =Validate_Email

      Bundan tashqari, foydalanuvchidan to'g'ri elektron pochta manzilini kiritishni taklif qiluvchi maxsus xato xabarini sozlashingiz mumkin.

    4. Qoidani quyidagi katakchalarga nusxalang.

    Agar tekshirilgan katakka kiritgan elektron pochta manzilingiz regex naqshiga mos kelmasa, quyidagi ogohlantirish paydo bo'ladi. qalqib chiquvchi:

    Oddiy iboralar yordamida parollarni tekshirish

    Parolni tekshirish uchun regex-dan foydalanilganda, birinchi navbatda oddiy ifoda nimani tekshirishi kerakligini hal qilish kerak. Bu yerda sizni to‘g‘ri yo‘lga qo‘yishi mumkin bo‘lgan ba’zi misollar keltirilgan.

    Parol kamida 6 ta belgidan iborat bo‘lishi kerak va unda faqat harflar (katta yoki kichik) va raqamlar bo‘lishi mumkin:

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

    Parol kamida 6 ta belgidan iborat boʻlishi va kamida bitta harf vabitta raqam:

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

    Parol kamida 6 ta belgidan iborat boʻlishi va kamida bitta katta harf, bitta kichik harf va bitta raqamdan iborat boʻlishi kerak:

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

    Parol kamida 6 ta belgidan iborat boʻlishi kerak uzun va kamida bitta harf, bitta raqam va bitta maxsus belgini o'z ichiga oladi:

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

    O'rnatilgan naqsh bilan siz Ma'lumotlarni tekshirishni sozlashga o'tishingiz mumkin:

    1. C2-ga parolingizni regex-ni kiriting.
    2. A1 katakchani tanlang va nomli formulani yarating. Validate_Password :

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

    3. C5 katak uchun quyidagi formula yordamida maxsus tekshirish qoidasini yarating. E'tibor bermaslik katagiga belgi qo'yishni unutmang.

      =Validate_Password

    4. Qoidani xohlaganingizcha hujayralarga nusxalang.

    Endi siz roʻyxatga yangi parollarni xavfsiz qoʻshishingiz mumkin. Agar kirish satri regexga mos kelmasa, quyidagi ogohlantirish sizga qanday qiymatlar qabul qilinishini eslatib turadi:

    Regex Data Validation ishlamayapti

    Agar Regex Data Validation Excelda ishlamasa. , bu quyidagi sabablardan biri bilan bogʻliq.

    RegExpMatch funksiyasi yetishmayapti

    Maʼlumotlarni tekshirishni qoʻllashdan oldin ish kitobingizga RegExpMatch funksiyasi kodini kiritganingizga ishonch hosil qiling.

    Noto'g'ri muntazamifoda

    Sizning regexingiz kutilganidek ishlashiga ishonch hosil qilish uchun siz ba'zi katakchalarga RegExpMatch formulasini kiritishingiz va natijalarni tekshirishingiz mumkin. Qo'shimcha ma'lumot olish uchun misollar bilan mos keladigan Excel muntazam ifodasini ko'ring.

    Oddiy ifodalarni tahlil qilish va disk raskadrovka qilish uchun RegEx101 yoki RegExr kabi bepul onlayn regex test xizmatlaridan foydalanishingiz mumkin.

    Noto'g'ri nomlangan formula

    Ma'lumotlarni tekshirishda xatolikning eng keng tarqalgan sababi bu noto'g'ri hujayraga ishora qiluvchi Regex nomli formuladir. Barcha misollarda biz A1 ga tegishli formulani belgilashni tavsiya qildik:

    =RegExpMatch(A1, regex)

    Bu faqat ism va <15ni belgilashda A1 katak faol bo'lsa ishlaydi>nisbiy havola ($ belgisiz) ishlatiladi.

    G'oya shundan iboratki, (A1) formulada ko'rsatilgan nisbiy mos yozuvlar tasdiqlangan katakchaning nisbiy holatiga qarab avtomatik ravishda o'zgaradi. Boshqacha qilib aytganda, A1 katak faqat qulaylik va mustahkamlik uchun tanlangan. Aslida, siz B1 katakchasini tanlashingiz va B1 ga murojaat qilishingiz, C1 katakchasini tanlashingiz va C1 ga murojaat qilishingiz mumkin va hokazo. Eng asosiysi, mo'ljallangan katak faol katak bo'lishi kerak.

    Nomlangan formulangiz to'g'ri yoki yo'qligini tekshirish uchun ish varag'ingizdagi istalgan katakchani tanlang, Name Manager-ga o'ting va formula qaysi katakka ishora qilayotganini ko'ring. Agar u hozirda tanlangan katakka tegishli bo'lsa, formula to'g'ri. Aks holda, birinchi argumentdagi havolani o'zgartirishingiz kerak.

    Skrinshotdaquyida A7 katakchasi tanlangan, ya'ni nomlangan formula birinchi argumentda A7 bo'lishi kerak. Ikkinchi argument ($A$2) regexga ishora qiladi - bu havola doimiy bo'lib qolishi kerak, shuning uchun u $ belgisi bilan qulflangan.

    E'tibor bermaslik opsiyasi tanlandi

    Ma'lumotlarni tekshirishning maxsus qoidasini o'rnatishda Bo'sh joyni e'tiborsiz qoldirish katagidan belgini olib tashlash muhim. Aks holda, qoida quyidagi sababga ko'ra ishlamaydi:

    Agar moslik topilmasa, RegExpMatch funksiyasi FALSE qiymatini qaytaradi. Bo'shga e'tibor bermaslik opsiyasi tanlangan bo'lsa, FALSE bo'shga teng bo'ladi va e'tiborga olinmaydi.

    Muqobil yechim formula TRUE qiymatini qaytarishi kerakligini aniq bildiradi:

    =RegExpMatch(…)=TRUE

    Ma'lumotlarni tekshirishni Excelda oddiy iboralar yordamida shunday qilish mumkin. O'qiganingiz uchun minnatdorchilik bildiraman va sizni keyingi hafta blogimizda ko'rishni orziqib kutaman!

    Yuklab olish uchun mashq kitobi

    Regex Data Validation misollari (.xlsm fayli)

    Maykl Braun - dasturiy vositalardan foydalangan holda murakkab jarayonlarni soddalashtirishga ishtiyoqi bo'lgan maxsus texnologiya ishqibozi. Texnologiya sohasida o'n yildan ortiq tajribaga ega bo'lgan holda, u Microsoft Excel va Outlook, shuningdek, Google Sheets va Docs dasturlarida o'z mahoratini oshirdi. Mayklning blogi o'z bilimi va tajribasini boshqalar bilan baham ko'rishga, samaradorlik va samaradorlikni oshirish uchun amal qilish oson maslahatlar va o'quv qo'llanmalariga bag'ishlangan. Tajribali mutaxassismisiz yoki yangi boshlovchi boʻlasizmi, Mayklning blogi ushbu muhim dasturiy vositalardan maksimal darajada foydalanish uchun qimmatli tushunchalar va amaliy maslahatlarni taqdim etadi.