Екцел формула: Само специфични знакови за потврду података -

Генеричка формула

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

Резиме

Да бисте користили проверу података како бисте дозволили листу само одређених знакова, можете користити прилично сложену формулу низа засновану на функцијама ЦОУНТ, МАТЦХ и ЛЕН. У приказаном примеру валидација података се примењује са овом формулом:

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

где је „дозвољено“ именовани опсег Д5: Д11.

Објашњење

Радећи изнутра, МИД функција се користи за генерисање низа из текста унетог у Б5 са овим исечком:

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

овде детаљно објашњено. Резултат је низ попут овог:

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

која улази у МАТЦХ као вредност претраживања. За претраживачки низ користимо именовани опсег „дозвољено“, спојен у празан низ („„):

allowed&""

Спајање претвара било које бројеве у низове, тако да подударамо јабуке и јабуке. Резултат је низ попут овог:

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

Последњи аргумент у МАТЦХ, матцх_типе је постављен на нулу да би се форсирало тачно подударање. Будући да МАТЦХ додељујемо више вредности претраживања, добијамо низ са више резултата:

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

Сваки број у овом низу представља подударање. У случају да за знак није пронађено подударање, низ ће садржати грешку # Н / А.

Коначно, користи се функција ЦОУНТ, броји бројеве у резултатском пољу, што се упоређује са бројањем свих знакова у ћелији израчунатог помоћу функције ЛЕН. Када МАТЦХ пронађе подударање за све знакове, бројање је једнако, формула враћа ТРУЕ, а валидација података успева. Ако МАТЦХ не пронађе ниједан знак, уместо броја враћа # Н / А. У том случају, бројање се не подудара и потврда података не успева.

Напомена: ова формула се ослања на грубу силу да би се посао обавио. Ако имате бољи приступ, оставите коментар испод.

Занимљиви Чланци...