Vzorec programu Excel: Iba špecifické znaky na overenie údajov -

Všeobecný vzorec

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

Zhrnutie

Ak chcete pomocou overenia údajov povoliť iba zoznam konkrétnych znakov, môžete použiť pomerne zložitý vzorec poľa založený na funkciách COUNT, MATCH a LEN. V zobrazenom príklade sa overenie údajov použije pomocou tohto vzorca:

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

kde „povolené“ je pomenovaný rozsah D5: D11.

Vysvetlenie

Pri práci zvnútra von sa funkcia MID používa na vygenerovanie poľa z textu zadaného do kódu B5 pomocou tohto úryvku:

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

tu podrobne vysvetlené. Výsledkom je pole ako je toto:

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

ktorý ide do MATCH ako vyhľadávacia hodnota. Pre vyhľadávacie pole používame pomenovaný rozsah „povolený“, zreťazený na prázdny reťazec („“):

allowed&""

Zreťazenie prevádza ľubovoľné čísla na reťazce, takže sa zhodujeme medzi jablkami. Výsledkom je pole ako je toto:

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

Posledný argument v MATCH, match_type je nastavený na nulu, aby sa vynútila presná zhoda. Pretože MATCHU dávame viac vyhľadávacích hodnôt, dostaneme späť pole s viacerými výsledkami:

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

Každé číslo v tomto poli predstavuje zhodu. V prípade, že sa nenájde zhoda pre znak, pole bude obsahovať chybu # N / A.

Nakoniec sa použije funkcia COUNT na spočítanie čísel v poli výsledkov, ktoré sa porovná s počtom všetkých znakov v bunke vypočítaným pomocou funkcie LEN. Keď MATCH nájde zhodu pre všetky znaky, počty sú rovnaké, vzorec vráti hodnotu TRUE a overenie údajov je úspešné. Ak MATCH nenájde zhodu so žiadnym znakom, namiesto čísla vráti # N / A. V takom prípade sa počty nezhodujú a overenie údajov zlyhá.

Poznámka: tento vzorec sa pri uskutočňovaní úlohy spolieha na hrubú silu. Ak máte lepší prístup, zanechajte prosím komentár nižšie.

Zaujímavé články...