İçindekiler
Bu eğitimde, özel bir RegexMatch işlevi yardımıyla düzenli ifadeler kullanılarak Excel'de veri doğrulamanın nasıl yapılacağı gösterilmektedir.
Excel çalışma sayfalarında kullanıcı girişini kısıtlamak söz konusu olduğunda, Veri Doğrulama vazgeçilmezdir. Belirli bir hücrede yalnızca sayılara veya tarihlere izin vermek mi istiyorsunuz? Veya metin değerlerini belirli bir uzunlukla sınırlamak mı? Ya da belirli bir aralığın dışındaki zamanlara izin vermemek mi istiyorsunuz? Sorun değil, tüm bunlar önceden ayarlanmış veya özel doğrulama ölçütleriyle kolayca yapılabilir.Ne yazık ki bu mümkün değil. Regex mi dediniz? Hmm... bu işe yarayabilir!
Regex ile Excel Veri Doğrulama Nasıl Yapılır
Ne yazık ki, yerleşik Excel özelliklerinin hiçbiri regex'leri desteklemez ve Veri Doğrulama da bir istisna değildir. Düzenli ifadeleri kullanarak hücre girişini doğrulayabilmek için, önce özel bir Regex işlevi oluşturmanız gerekir. Bir başka karmaşıklık da, VBA kullanıcı tanımlı işlevlerinin doğrudan Veri Doğrulama'ya sunulamamasıdır - adlandırılmış bir formül biçiminde bir aracıya ihtiyacınız olacaktır.
Yukarıdakileri göz önünde bulundurarak, regex'leri kullanarak Excel'de verileri doğrulamak için atılacak adımları kısaca özetleyelim:
- Bir girdi değerinin düzenli bir ifadeyle eşleşip eşleşmediğini denetleyen özel bir Regex işlevi oluşturun.
- Regex formülünüz için bir ad tanımlayın.
- Adlandırılmış formüle dayalı bir Veri Doğrulama kuralı yapılandırın.
- Doğrulama ayarlarını istediğiniz kadar hücreye kopyalayın.
Kulağa bir plan gibi geliyor. Hadi bunu pratikte uygulamaya çalışalım!
Özel düzenli ifadeler kullanarak Excel veri doğrulaması
Bu örnek çok yaygın bir durumu ele almaktadır - yalnızca belirli bir kalıbın değerlerine nasıl izin verileceği.
Çalışma sayfanızda bazı SKU kodlarını tuttuğunuzu ve yalnızca belirli bir kalıpla eşleşen kodların listeye girdiğinden emin olmak istediğinizi varsayalım. Her SKU'nun bir tire ile ayrılmış 2 karakter grubundan oluşması, ilk grubun 3 büyük harf ve ikinci grubun 3 rakam içermesi koşuluyla, aşağıdaki regex'i kullanarak bu değerleri tanımlayabilirsiniz.
Desen : ^[A-Z]{3}-\d{3}$
Lütfen dizenin başlangıcının (^) ve sonunun ($) sabitlendiğine dikkat edin, bu nedenle desendeki karakterler dışında hiçbir karakter bir hücreye girilemez.
1. Özel bir Regex Eşleştirme işlevi ekleyin
Çalışma kitabınıza RegExpMatch işlevini ekleyerek başlayın. Kod Excel uzmanlarımız tarafından zaten yazılmıştır, bu nedenle yukarıda bağlantısı verilen sayfadan kopyalamanız ve VBA düzenleyicinize yapıştırmanız yeterlidir.
İşte referansınız için fonksiyonun sözdizimi:
RegExpMatch(metin, desen, [match_case])Nerede?
- Metin (gerekli) - bir kaynak dizesi (bizim bağlamımızda - doğrulanmış bir hücre).
- Desen (gerekli) - eşleşecek bir düzenli ifade.
- Match_case (isteğe bağlı) - eşleşme türü. TRUE veya atlanmış - büyük/küçük harfe duyarlı; FALSE - büyük/küçük harfe duyarsız.
İpucu: Ultimate Suite kullanıcısıysanız, çalışma kitaplarınıza herhangi bir VBA kodu eklemeden Excel'de Regex Veri Doğrulaması yapabilirsiniz. Regex Araçlarımızda bulunan özel bir AblebitsRegexMatch işlevinden yararlanmanız yeterlidir.
2. Adlandırılmış bir formül oluşturun
Hedef çalışma sayfanızda A1 hücresini seçin (içeriğinden ve aslında hangi hücreyi doğrulayacağınızdan bağımsız olarak), Ad Yöneticisi'ni açmak için Ctrl + F3 tuşlarına basın ve bu formül için bir ad tanımlayın:
=RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")
Veya regex'i bir hücreye (bu örnekte A2) girebilir ve ikinci bağımsız değişkene $A$2 verebilirsiniz:
=RegExpMatch(Sayfa1!A1, Sayfa1!$A$2)
Formülün doğru çalışması için, aşağıdakiler için göreli bir referans kullandığınızdan emin olun Metin argümanı (A1) ve mutlak referans için desen ($A$2).
Formülümüzün SKU numaralarını doğrulamak için tasarlandığı göz önüne alındığında, formülümüzü buna göre adlandırıyoruz: Validate_SKU .
Önemli not! Formülü tanımlarken, lütfen iki kez kontrol edin ilk bağımsız değişken o anda seçili olan hücreyi ifade eder Örneğin, sayfada A1 hücresi seçiliyse, ilk bağımsız değişkene A1 yazın (önerilerimize göre); B2 seçiliyse, ilk bağımsız değişken için B2 kullanın ve bu şekilde devam edin. O anda seçili olan hücreyle eşleştiği sürece hangi özel referansı kullandığınız gerçekten önemli değildir.
Adım adım talimatlar için lütfen Excel'de adlandırılmış formül oluşturma bölümüne bakın.
3. Veri Doğrulamayı Ayarlama
Kontrol edilecek ilk hücreyi seçin (bizim durumumuzda A5) ve adlandırılmış formüle dayalı özel bir veri doğrulama kuralı oluşturun. Bunun için aşağıdakileri yapın:
- Tıklayın Veri tab> Veri Doğrulama .
- İçinde İzin ver aşağı açılır listesinde Özel .
- Aşağıdaki formülü ilgili kutuya girin.
=Validate_SKU
- Seçimi kaldırın Boşluğu yoksay seçeneğini seçin, aksi takdirde kuralınız çalışmaz.
İsteğe bağlı olarak, bir hücreye geçersiz veri girildiğinde görüntülenecek özel bir hata mesajı yazabilirsiniz.
Ayrıntılı adımlara ihtiyacınız olduğunu düşünüyorsanız, işte burada: Excel'de özel Veri Doğrulama nasıl kurulur?
4. Veri Doğrulamayı daha fazla hücreye kopyalayın
Doğrulama ayarlarını daha fazla hücreye kopyalamak için yapmanız gereken şey şudur:
- Veri doğrulaması olan hücreyi seçin ve kopyalamak için Ctrl + C tuşlarına basın.
- Doğrulamak istediğiniz diğer hücreleri seçin, sağ tıklayın, ardından Özel Yapıştır 'yi seçin ve Doğrulama seçenek.
- Tıklayın TAMAM. .
Daha fazla bilgi Veri Doğrulama Nasıl Kopyalanır bölümünde bulunabilir.
Şimdi, birisi doğrulanan hücrelerden herhangi birine geçersiz bir SKU girmeye çalıştığında, aşağıdaki uyarı mesajı görünecektir:
Regex ile e-posta doğrulama
E-posta doğrulaması gerçekleştirmek için, bir e-posta adresiyle eşleşen düzenli bir ifade yazarak başlarsınız.
Desen : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za-z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$
Sözdiziminin ayrıntılı açıklaması için lütfen Geçerli e-posta adreslerini eşleştirmek için Regex bölümüne bakın.
Ve şimdi, zaten bilinen adımları uygulayarak doğrulama kriterlerini belirleyin:
- Yukarıdaki regex'i B2'ye girin.
- A1 hücresini seçin ve şöyle bir ad tanımlayın Validate_Email ifade eder:
=RegExpMatch(Sayfa1!A1, Sayfa1!$B$2)
- B5 hücresi için, aşağıdaki formülü kullanarak özel Veri Doğrulama uygulayın. Boşluğu yoksay seçeneği seçili olmamalıdır.
=Validate_Email
Ayrıca, kullanıcıdan geçerli bir e-posta adresi girmesini isteyen özel bir hata mesajı yapılandırabilirsiniz.
- Kuralı aşağıdaki hücrelere kopyalayın.
Doğrulanmış bir hücreye girdiğiniz bir e-posta adresi bir regex deseniyle eşleşmezse, aşağıdaki uyarı açılır:
Düzenli ifadeler kullanarak parolaları doğrulama
Parola doğrulama için regex kullanırken, karar vermeniz gereken ilk şey düzenli ifadenizin tam olarak neyi kontrol etmesi gerektiğidir. İşte sizi doğru yola sokabilecek bazı örnekler.
Parola en az 6 karakter uzunluğunda olmalı ve yalnızca harf (büyük veya küçük harf) ve rakam içermelidir:
Desen : ^[A-Za-z0-9]{6,}$
Parola en az 6 karakter uzunluğunda olmalı ve en az bir harf ve bir rakam içermelidir:
Desen : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,}$
Şifre en az 6 karakter uzunluğunda olmalı ve en az bir büyük harf, bir küçük harf ve bir rakam içermelidir:
Desen : ^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$
Şifre en az 6 karakter uzunluğunda olmalı ve en az bir harf, bir rakam ve bir özel karakter içermelidir:
Desen : ^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$
Kalıp oluşturulduktan sonra Veri Doğrulamayı ayarlamaya geçebilirsiniz:
- Parola regex'inizi C2'ye girin.
- A1 hücresini seçin ve şu adda adlandırılmış bir formül oluşturun Validate_Password :
=RegExpMatch(Sayfa1!A1, Sayfa1!$C$2)
- C5 hücresi için aşağıdaki formülle özel bir doğrulama kuralı oluşturun. Boşluğu yoksay onay kutusu.
=Validate_Password
- Kuralı istediğiniz kadar hücreye kopyalayın.
Artık listeye güvenle yeni parolalar ekleyebilirsiniz. Bir girdi dizesi regex ile eşleşmezse, aşağıdaki uyarı size ne tür değerlerin kabul edildiğini hatırlatacaktır:
Regex Veri Doğrulama çalışmıyor
Regex Veri Doğrulama Excel'inizde çalışmıyorsa, bunun nedeni büyük olasılıkla aşağıdaki nedenlerden biridir.
RegExpMatch işlevi eksik
Veri Doğrulama'yı uygulamadan önce, çalışma kitabınıza RegExpMatch işlevinin kodunu eklediğinizden emin olun.
Hatalı düzenli ifade
Regex'inizin beklendiği gibi çalıştığından emin olmak için, bir hücreye RegExpMatch formülü girebilir ve sonuçları inceleyebilirsiniz. Daha fazla bilgi için lütfen örneklerle Excel Normal ifade eşleştirme bölümüne bakın.
Düzenli ifadelerinizi analiz etmek ve hata ayıklamak için RegEx101 veya RegExr gibi ücretsiz çevrimiçi regex test hizmetlerini kullanabilirsiniz.
Yanlış adlandırılmış formül
Veri doğrulama hatasının çok yaygın bir nedeni, yanlış bir hücreye başvuran Regex adlı bir formüldür. Tüm örneklerde, A1'e başvuran bir formül tanımlamanızı öneririz:
=RegExpMatch(A1, regex)
Bu yalnızca hücre A1 aktif bir isim tanımlarken ve bir göreli referans ($ işareti olmadan) kullanılır.
Buradaki fikir, formülde (A1) belirtilen göreli bir referansın, doğrulanan hücrenin göreli konumuna göre otomatik olarak değişeceğidir. Başka bir deyişle, A1 hücresi sadece kolaylık ve tutarlılık için seçilmiştir. Aslında, B1 hücresini seçebilir ve B1'e başvurabilirsiniz, C1 hücresini seçebilir ve C1'e başvurabilirsiniz vb. referanslı hücre olmalı aktif hücre .
Adlandırılmış formülünüzün doğru olup olmadığını kontrol etmek için çalışma sayfanızdaki herhangi bir hücreyi seçin, Ad Yöneticisi'ni açın ve formülün hangi hücreyi işaret ettiğine bakın. O anda seçili olan hücreye başvuruyorsa formül doğrudur. Aksi takdirde, ilk bağımsız değişkendeki başvuruyu değiştirmeniz gerekir.
Aşağıdaki ekran görüntüsünde, A7 hücresi seçilidir, yani adlandırılmış bir formülün ilk bağımsız değişkeninde A7 olmalıdır. İkinci bağımsız değişken ($A$2) regex'e başvurur - bu başvurunun sabit kalması gerekir, bu nedenle $ işaretiyle kilitlenir.
Boşluğu yoksay seçeneği seçili
Özel bir Veri Doğrulama kuralı oluştururken, aşağıdaki seçeneklerin seçimini kaldırmak önemlidir Boşluğu yoksay onay kutusunu işaretleyin. Aksi takdirde, kural aşağıdaki nedenden dolayı çalışmayacaktır:
Bir eşleşme bulunamazsa, RegExpMatch işlevi FALSE döndürür. Boşluğu yoksay seçeneği seçildiğinde, FALSE boşluğa eşittir ve yok sayılır.
Alternatif bir çözüm, formülün TRUE döndürmesi gerektiğini açıkça belirtmektir:
=RegExpMatch(...)=TRUE
Düzenli ifadeleri kullanarak Excel'de Veri Doğrulama işleminin nasıl yapılacağını anlattım. Okuduğunuz için teşekkür ediyor ve gelecek hafta sizi blogumuzda görmeyi dört gözle bekliyorum!
İndirmek için pratik çalışma kitabı
Regex Veri Doğrulama örnekleri (.xlsm dosyası)