Formula Excel: numai caractere specifice validării datelor -

Formula generică

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

rezumat

Pentru a utiliza validarea datelor pentru a permite doar o listă de caractere specifice, puteți utiliza o formulă de matrice destul de complicată bazată pe funcțiile COUNT, MATCH și LEN. În exemplul prezentat, validarea datelor se aplică cu această formulă:

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

unde „permis” este intervalul numit D5: D11.

Explicaţie

Funcționând din interior spre exterior, funcția MID este utilizată pentru a genera o matrice din textul introdus în B5 cu acest fragment:

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

explicat în detaliu aici. Rezultatul este o matrice ca aceasta:

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

care intră în MATCH ca valoare de căutare. Pentru matricea de căutare, folosim intervalul numit „permis”, concatenat într-un șir gol („„):

allowed&""

Concatenarea convertește orice număr în șiruri, astfel încât să potrivim mere-mere. Rezultatul este o matrice ca aceasta:

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

Ultimul argument din MATCH, match_type este setat la zero pentru a forța o potrivire exactă. Deoarece oferim MATCH valori multiple de căutare, obținem înapoi o matrice cu rezultate multiple:

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

Fiecare număr din această matrice reprezintă o potrivire. În cazul în care nu se găsește o potrivire pentru un caracter, tabloul va conține o eroare # N / A.

În cele din urmă, funcția COUNT este utilizată pentru a număra numerele din matricea de rezultate, care este comparată cu un număr al tuturor caracterelor din celulă calculat cu funcția LEN. Când MATCH găsește o potrivire pentru toate caracterele, numărul este egal, formula returnează TRUE și validarea datelor reușește. Dacă MATCH nu găsește niciun personaj potrivit, acesta returnează # N / A în loc de un număr. În acest caz, numărul nu se potrivește și validarea datelor nu reușește.

Notă: această formulă se bazează pe forța brută pentru a face treaba. Dacă aveți o abordare mai bună, vă rugăm să lăsați un comentariu mai jos.

Articole interesante...