
Генеричка формула
=MATCH(1,EXACT(LEFT(A1,255),LEFT(rng,255))*EXACT(MID(A1,256,255),MID(rng,256,255)),0)
Резиме
Да бисте упоредили текст дужи од 255 знакова са функцијом МАТЦХ, можете користити функције ЛЕВО, МИД и ЕКСАЦТ за рашчлањивање и упоређивање текста, како је објашњено у наставку. У приказаном примеру, формула у Г5 је:
=MATCH(1,EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255)),0)
где су подаци именовани опсег Б5: Б15.
Напомена: ова формула врши упоређивање великих и малих слова.
Објашњење
Функција МАТЦХ има ограничење од 255 знакова за вредност претраживања. Ако покушате да користите дужи текст, МАТЦХ ће вратити грешку #ВАЛУЕ.
Да бисте заобишли ово ограничење, можете користити логичку логику и функције ЛЕВО, МИД и ЕКСАЦТ за рашчлањивање и упоређивање текста.
Низ који тестирамо у ћелији Е5 има 373 знака, како следи:
Лорем ипсум долор амет ставио је птицу на њега, фонд поверења, једнорожни парни бицикл, права за која вероватно нисте чули. Крмна хелветица црусти семиотика заправо наследство. Тумблр поутине једнорог годард труди се пре него што су распродали нарвал медитацију кич прслук фикие твее дословно дуксева ретро. Мессенгер торба паклено корицастог зеленог сока занатлија.
У основи, ово је само МАТЦХ формула, подешена да тражи 1 у режиму тачног подударања:
=MATCH(1,array,0)
Низ у горњој формули садржи само 1 и 0, а 1 представљају одговарајући текст. Овај низ је конструисан следећим изразом:
EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255))
Овај израз има два дела. Са леве стране имамо:
EXACT(LEFT(E5,255),LEFT(data,255)) // compare first 255 chars
Овде функција ЛЕВЕ издваја првих 255 знакова из Е5 и из свих ћелија у наведеном опсегу података (Б5: Б15). Будући да подаци садрже 11 текстуалних низова, ЛЕФТ ће генерисати 11 резултата.
Функција ЕКСАЦТ тада упоређује појединачни низ из Е5 са свих 11 низова које је вратио ЛЕФТ. ЕКСАЦТ враћа 11 резултата у низу попут овог:
(FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
Са десне стране имамо још један израз:
EXACT(MID(E5,256,255),MID(data,256,255) // compare next 255 chars
Ово је потпуно исти приступ као и код ЛЕФТ-а, али овде користимо МИД функцију за издвајање следећих 255 знакова текста. Функција ЕКСАЦТ поново враћа 11 резултата:
(TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
Када се поменута два низа помноже један с другим, математичка операција присиљава ТРУЕ ФАЛСЕ вредности на 1с и 0с. Следећи правила логичке аритметике, резултат је низ попут овог:
(0;0;0;0;0;0;0;0;0;1;0)
који се враћа директно у МАТЦХ као претраживачки низ. Формула се сада може решити на:
=MATCH(1,(0;0;0;0;0;0;0;0;0;1;0),0)
Функција МАТЦХ врши тачно подударање и даје коначни резултат 10, што представља десети текстуални низ у Б5: Б15.
Напомена: Дужина текста приказана у примеру израчунава се помоћу функције ЛЕН. Чини се само као референца.
Опција без великих и малих слова
ЕКСАЦТ функција разликује велика и мала слова, тако да ће горња формула поштовати мала и велика слова.
Да бисте извршили подударање малих и великих слова са дугим текстом, користите функције ИСНУМБЕР и СЕАРЦХ на следећи начин:
=MATCH(1,ISNUMBER(SEARCH(LEFT(E5,255),LEFT(data,255)))*ISNUMBER(SEARCH(MID(E5,256,255),MID(data,256,255))),0)
Укупна структура ове формуле је идентична горњем примеру, али се за поређење текста користи функција СЕАРЦХ (ТАЧНО) (овде је детаљно објашњено).
За разлику од ЕКСАЦТ, функција СЕАРЦХ такође подржава џокер знакове.
Уз КСМАТЦХ
Функција КСМАТЦХ нема исто ограничење од 255 знакова као МАТЦХ. Да бисте извели слично подударање са дугим текстом помоћу КСМАТЦХ-а, можете користити много једноставнију формулу у наставку:
=XMATCH(E5,data)
Напомена: КСМАТЦХ подржава џокер знакове, али не разликује велика и мала слова.