Mündəricat
Təlimat xüsusi RegexMatch funksiyasının köməyi ilə müntəzəm ifadələrdən istifadə etməklə Excel-də verilənlərin doğruluğunun necə aparılacağını göstərir.
Excel iş vərəqlərində istifadəçi daxiletməsinin məhdudlaşdırılmasına gəldikdə, Data Validation vazkeçilməzdir. Verilmiş xanada yalnız rəqəmlərə və ya tarixlərə icazə vermək istəyirsiniz? Və ya mətn dəyərlərini müəyyən uzunluqla məhdudlaşdırırsınız? Və ya müəyyən bir diapazondan kənar vaxtlara icazə verməyin? Problem yoxdur, bütün bunlar əvvəlcədən təyin edilmiş və ya xüsusi yoxlama meyarları ilə asanlıqla edilə bilər. Bəs mən yalnız etibarlı e-poçt ünvanlarına və ya müəyyən nümunəyə uyğun gələn sətirlərə icazə vermək istəsəm nə etməliyəm? Təəssüf ki, bu mümkün deyil. Regex deyirsən? Hmm... bu işləyə bilər!
Regex ilə Excel Data Validasiyasını necə etmək olar
Təəssüf ki, daxili Excel xüsusiyyətlərindən heç biri regexləri dəstəkləmir və Data Validasiyası heç bir şey deyil. istisna. Normal ifadələrdən istifadə edərək xana daxiletməsini təsdiq edə bilmək üçün əvvəlcə fərdi Regex funksiyası yaratmalısınız. Digər mürəkkəblik ondan ibarətdir ki, VBA istifadəçisi tərəfindən müəyyən edilmiş funksiyalar birbaşa Data Validation-a xidmət edə bilməz - sizə adlandırılmış düstur şəklində vasitəçi lazımdır.
Yuxarıda olanları nəzərə alaraq, atılacaq addımları qısaca təsvir edək. regexlərdən istifadə edərək Excel-də verilənləri doğrulamaq üçün:
- Giriş dəyərinin normal ifadəyə uyğun olub-olmadığını yoxlayan fərdi Regex funksiyası yaradın.
- Regex düsturunuz üçün ad təyin edin.
- Adlı düstur əsasında Data Validasiyası qaydasını konfiqurasiya edin.
- Kopyaladoğrulama parametrlərini istədiyiniz qədər xanaya.
Plan kimi görünür? Gəlin bunu praktikada həyata keçirməyə çalışaq!
Xüsusi müntəzəm ifadələrdən istifadə edərək Excel məlumatlarının yoxlanılması
Bu misal çox yayılmış bir işə müraciət edir - yalnız konkret nümunənin qiymətlərinə necə icazə verilir.
Fərz edək ki, bəzi SKU kodlarını iş vərəqinizdə saxlamısınız və yalnız verilmiş nümunəyə uyğun gələn kodların siyahıya daxil olduğundan əmin olmaq istəyirsiniz. Hər bir SKU defislə ayrılmış 2 simvol qrupundan, birinci qrupda 3 böyük hərfdən və ikinci qrupda 3 rəqəmdən ibarət olması şərtilə, aşağıdakı regexdən istifadə edərək belə dəyərləri müəyyən edə bilərsiniz.
Nümunə : ^[A-Z]{3}-\d{3}$
Sətrin başlanğıcı (^) və sonunun ($) bağlandığına diqqət yetirin, ona görə də simvoldan başqa heç bir simvol yoxdur model xanaya daxil edilə bilər.
1. Fərdi Regex Match funksiyası əlavə edin
İş kitabınıza RegExpMatch funksiyasını daxil etməklə başlayın. Kod artıq Excel gurusumuz tərəfindən yazılıb, ona görə də siz sadəcə onu yuxarıda göstərilən səhifədən kopyalayıb VBA redaktorunuza yapışdırmalısınız.
Sənəd üçün funksiyanın sintaksisi buradadır:
RegExpMatch(text) , nümunə, [match_case])Burada:
- Mətn (tələb olunur) - mənbə sətri (bizim kontekstdə - təsdiqlənmiş xana).
- Nümunə (tələb olunur) - uyğunlaşmaq üçün müntəzəm ifadə.
- Uyğun_case (isteğe bağlı) - uyğunluq növü. DOĞRU və ya buraxılmış - hal-həssas; FALSE - böyük hərflərə həssas deyil.
İpucu. Əgər siz bizim Ultimate Suite istifadəçisisinizsə, onda siz iş kitablarınıza heç bir VBA kodu əlavə etmədən Excel-də Regex Data Validation edə bilərsiniz. Sadəcə Regex Alətlərimizə daxil olan fərdi AblebitsRegexMatch funksiyasından istifadə edin.
2. Adlandırılmış düstur yaradın
Hədəf iş vərəqinizdə A1 xanasını seçin (məzmunundan asılı olmayaraq və əslində hansı xananı doğrulayacağınızdan asılı olmayaraq), Ad Menecerini açmaq üçün Ctrl + F3 düymələrini basın və ad təyin edin. bu düstur üçün:
=RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")
Yaxud hansısa xanaya regex daxil edə bilərsiniz (bu misalda A2) və ikinci arqumentə $A$2 əlavə edə bilərsiniz:
=RegExpMatch(Sheet1!A1, Sheet1!$A$2)
Düsturun düzgün işləməsi üçün mətn arqumenti (A1) üçün nisbi istinad və naxış ($A$2) üçün mütləq istinaddan istifadə etdiyinizə əmin olun.
Düsturumuzun SKU nömrələrini yoxlamaq üçün nəzərdə tutulduğunu nəzərə alaraq, biz onu müvafiq olaraq adlandırırıq: Validate_SKU .
Vacib qeyd! Düsturu təyin edərkən, ilk arqumentin hazırda seçilmiş xanaya aid olduğunu iki dəfə yoxlayın, əks halda düstur işləməyəcək. Məsələn, vərəqdə A1 xanası seçilibsə, birinci arqumentə A1 qoyun (tövsiyələrimizə uyğun olaraq); B2 seçilibsə, birinci arqument üçün B2-dən istifadə edin və s. Hal-hazırda seçilmiş xanaya uyğun olduğu müddətcə hansı xüsusi istinaddan istifadə etməyin əsl əhəmiyyəti yoxdur.
Addım-addım üçünTəlimatlar üçün Excel-də adlandırılmış düsturun necə hazırlanmasına baxın.
3. Data Validasiyasını qurun
Yoxlanılacaq ilk xananı seçin (bizim vəziyyətimizdə A5) və adı çəkilən düstur əsasında fərdi məlumatın yoxlanılması qaydası yaradın. Bunun üçün aşağıdakıları edin:
- Data tab > Data Validation üzərinə klikləyin.
- İcazə Ver açılan siyahıda Xüsusi seçin.
- Aşağıdakı düsturu müvafiq xanaya daxil edin.
=Validate_SKU
- Boşluğa məhəl qoyma seçimini ləğv edin, əks halda qaydanız işləməyəcək.
İstəyə görə yaza bilərsiniz xanaya yanlış məlumat daxil edildikdə göstəriləcək fərdi xəta mesajı.
Ətraflı addımlara ehtiyacınız olduğunu hiss edirsinizsə, bura keçin: Excel-də fərdi Məlumatların Təsdiqlənməsini necə qurmaq olar.
4. Data Validasiyasını daha çox xanaya kopyalayın
Doğrulama parametrlərini daha çox xanaya köçürmək üçün bunu etməlisiniz:
- Məlumat yoxlanışı olan xananı seçin və Ctrl + C düymələrini sıxmaq üçün basın. kopyalayın.
- Təsdiqləmək istədiyiniz digər xanaları seçin, onlara sağ klikləyin, Xüsusi Yapışdırın üzərinə klikləyin və Təsdiqləmə seçimini seçin.
- OK klikləyin.
Ətraflı məlumatı Verilənlərin Təsdiqini necə kopyalamaq olar bölməsində tapa bilərsiniz.
İndi hər dəfə kimsə təsdiqlənmiş xanalardan hər hansı birinə etibarsız SKU daxil etməyə cəhd etdikdə, aşağıdakılar xəbərdarlıq mesajı görünəcək:
Regex ilə e-poçtun yoxlanılması
E-poçtun təsdiqlənməsini həyata keçirmək üçün siz başlayırsınıze-poçt ünvanına uyğun gələn müntəzəm ifadə yazmaqla.
Nümunə : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$
Sintaksisin ətraflı izahı üçün zəhmət olmasa etibarlı e-poçt ünvanlarını uyğunlaşdırmaq üçün Regex-ə baxın.
İndi isə artıq tanış olan addımları yerinə yetirərək doğrulama meyarlarını təyin edin:
- Yuxarıdakı regexi B2-yə daxil edin.
- A1 xanasını seçin və Validate_Email adlı bir ad təyin edin. Boşluğu İqnor et seçimini ləğv etmək vacibdir.
=Validate_Email
Əlavə olaraq, istifadəçidən etibarlı e-poçt ünvanı daxil etməyi təklif edən fərdi xəta mesajını konfiqurasiya edə bilərsiniz.
- Qaydanı aşağıdakı xanalara köçürün.
Təsdiqlənmiş xanaya daxil etdiyiniz e-poçt ünvanı regex nümunəsinə uyğun gəlmirsə, aşağıdakı xəbərdarlıq olacaq pop up:
Normal ifadələrdən istifadə edərək parolların doğrulanması
Parolun yoxlanılması üçün regexdən istifadə edərkən ilk qərar veriləcək şey adi ifadənizin dəqiq nəyi yoxlamalı olmasıdır. Budur sizi düzgün yola sala biləcək bəzi nümunələr.
Parol ən azı 6 simvol uzunluğunda olmalıdır və yalnız hərflərdən (böyük və ya kiçik hərf) və rəqəmlərdən ibarət ola bilər:
Nümunə : ^[A-Za-z0-9]{6,}$
Parol minimum 6 simvol uzunluğunda olmalı və ən azı bir hərf vəbir rəqəm:
Nümunə : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$
Parol minimum 6 simvol uzunluğunda olmalı və ən azı bir böyük hərf, bir kiçik hərf və bir rəqəmdən ibarət olmalıdır:
Nümunə : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$
Parol minimum 6 simvoldan ibarət olmalıdır uzun və ən azı bir hərf, bir rəqəm və bir xüsusi simvol daxildir:
Nümunə : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$
Müəyyən edilmiş nümunə ilə Data Validasiyasının qurulmasına davam edə bilərsiniz:
- C2-də parolunuzun regexsini daxil edin.
- A1 xanasını seçin və adlı adlandırılmış düstur yaradın. Validate_Password :
=RegExpMatch(Sheet1!A1, Sheet1!$C$2)
- C5 xanası üçün aşağıdakı formula ilə fərdi yoxlama qaydası yaradın. Boşluğu yox say qutusunun seçimini silməyi unutmayın.
=Validate_Password
- Qaydanı istədiyiniz qədər xanaya kopyalayın.
İndi siz təhlükəsiz şəkildə siyahıya yeni parollar əlavə edə bilərsiniz. Əgər daxiletmə sətri regex ilə uyğun gəlmirsə, aşağıdakı xəbərdarlıq sizə hansı dəyərlərin qəbul edildiyini xatırladacaq:
Regeks Data Validasiyası işləmir
Əgər Regex Data Validation Excel-də işləmirsə , çox güman ki, bu, aşağıdakı səbəblərdən birinə görədir.
RegExpMatch funksiyası çatışmır
Məlumatların Təsdiqlənməsini tətbiq etməzdən əvvəl RegExpMatch funksiyasının kodunu iş kitabınıza daxil etdiyinizə əmin olun.
Yanlış müntəzəmifadə
Regexinizin gözlənildiyi kimi işlədiyinə əmin olmaq üçün bəzi xanaya RegExpMatch düsturu daxil edib nəticələri yoxlaya bilərsiniz. Əlavə məlumat üçün lütfən, nümunələrlə uyğun gələn Excel Normal ifadəsinə baxın.
Normal ifadələrinizi təhlil etmək və sazlamaq üçün siz RegEx101 və ya RegExr kimi pulsuz onlayn regex test xidmətlərindən istifadə edə bilərsiniz.
Yanlış adlandırılmış formula
Məlumatların yoxlanılması uğursuzluğunun çox yayılmış səbəbi səhv xanaya istinad edən Regex adlı düsturdur. Bütün nümunələrdə biz A1-ə istinad edərək düstur təyin etməyi tövsiyə etdik:
=RegExpMatch(A1, regex)
Bu, yalnız A1 xanası adı və <15-i təyin edərkən aktivdir olarsa işləyir>nisbi istinad ($ işarəsi olmadan) istifadə olunur.
İdeya ondan ibarətdir ki, (A1) düsturunda göstərilən nisbi istinad təsdiqlənmiş xananın nisbi mövqeyinə əsasən avtomatik dəyişəcək. Başqa sözlə, A1 xanası yalnız rahatlıq və ardıcıllıq üçün seçilir. Əslində siz B1 xanasını seçib B1-ə, C1 xanasını seçib C1-ə müraciət edə bilərsiniz və s. Əsas odur ki, istinad edilən xana aktiv xana olmalıdır.
Adlı düsturunuzun düzgün olub-olmadığını yoxlamaq üçün iş vərəqinizdə istənilən xananı seçin, açın Ad Meneceri və formulanın hansı xananı göstərdiyinə baxın. Əgər o, hazırda seçilmiş xanaya aiddirsə, düstur düzgündür. Əks halda, siz birinci arqumentdəki istinadı dəyişdirməlisiniz.
Skrinşotdaaşağıda, A7 xanası seçilir, yəni adlandırılmış düsturun birinci arqumentində A7 olmalıdır. İkinci arqument ($A$2) regexə aiddir - bu istinad sabit qalmalıdır, ona görə də $ işarəsi ilə kilidlənir.
Seçilmiş boş seçimə məhəl qoyma
Fərdi Məlumatların Təsdiqlənməsi qaydasını qurarkən, Boşluğa məhəl qoyma qutusunun seçimini silmək vacibdir. Əks halda, qayda aşağıdakı səbəbə görə işləməyəcək:
Uyğunluq tapılmazsa, RegExpMatch funksiyası FALSE qaytarır. Boşluğu iqnor et seçimi seçildikdə, YANLIŞ boşluğa bərabərdir və nəzərə alınmır.
Alternativ həll düsturun TRUE dəyərini qaytarmalı olduğunu açıq şəkildə ifadə edir:
=RegExpMatch(…)=TRUE
Mütləq ifadələrdən istifadə edərək Excel-də Data Validasiyasını belə etmək olar. Oxuduğunuz üçün sizə təşəkkür edirəm və sizi gələn həftə bloqumuzda görməyi səbirsizliklə gözləyirəm!
Endirmək üçün məşq kitabı
Regex Data Validation nümunələri (.xlsm faylı)