Excel formülü: Yalnızca veri doğrulamaya özel karakterler -

Genel formül

=COUNT(MATCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),allowed&"",0))=LEN(A1)

Özet

Yalnızca belirli karakterlerin listesine izin vermek için veri doğrulamayı kullanmak için, COUNT, MATCH ve LEN işlevlerine dayalı oldukça karmaşık bir dizi formülü kullanabilirsiniz. Gösterilen örnekte, veri doğrulama şu formülle uygulanır:

=COUNT(MATCH(MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1),allowed&"",0))=LEN(B5)

burada "izin verilen" adlandırılmış aralık D5: D11'dir.

Açıklama

İçten dışa doğru çalışarak, MID işlevi, bu kod parçacığı ile B5'e girilen metinden bir dizi oluşturmak için kullanılır:

MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)

burada ayrıntılı olarak açıklanmıştır. Sonuç şuna benzer bir dizidir:

("A";"A";"A";"-";"1";"1";"1")

arama değeri olarak MATCH'a girer. Arama dizisi için, boş bir dizeyle ("") birleştirilen "izin verilen" adlandırılmış aralığı kullanırız:

allowed&""

Birleştirme, elmaları elmalarla eşleştirmemiz için herhangi bir sayıyı dizelere dönüştürür. Sonuç şuna benzer bir dizidir:

("A";"B";"C";"1";"2";"3";"-")

MATCH'taki son bağımsız değişken olan eşleşme_türü, tam eşleşmeyi zorlamak için sıfıra ayarlanmıştır. MATCH'a birden çok arama değeri verdiğimiz için, birden çok sonuç içeren bir dizi geri alırız:

(1;1;1;7;4;4;4)

Bu dizideki her sayı bir eşleşmeyi temsil eder. Bir karakter için eşleşme bulunamazsa, dizi #YOK hatası içerecektir.

Son olarak COUNT işlevi, LEN işleviyle hesaplanan hücredeki tüm karakterlerin sayısıyla karşılaştırılan sonuç dizisindeki sayıları saymak için kullanılır. KAÇINCI tüm karakterler için bir eşleşme bulduğunda, sayılar eşittir, formül DOĞRU verir ve veri doğrulama başarılı olur. MATCH herhangi bir karakterle eşleşmeyi bulamazsa, sayı yerine #YOK döndürür. Bu durumda, sayılar eşleşmez ve veri doğrulama başarısız olur.

Not: Bu formül, işi bitirmek için kaba kuvvete dayanır. Daha iyi bir yaklaşımınız varsa, lütfen aşağıya bir yorum bırakın.

Ilginç makaleler...