Преглед садржаја
Покушавате да направите ИФ израз са џокер текстом, али сваки пут не успе? Проблем није у вашој формули већ у самој функцији - Екцел ИФ не подржава џокер знакове. Међутим, постоји начин да га натерате да ради за делимично подударање текста, а овај водич ће вас научити како.
Кад год желите да извршите делимично или нејасно подударање у Екцел-у, најочигледније решење је да користите џокер знакове. Али шта ако одређена функција коју треба да користите не подржава замене знакова? Нажалост, Екцел ИФ је једна од таквих функција. Ово је посебно разочаравајуће имајући у виду да друге „условне“ функције као што су ЦОУНТИФ, СУМИФ и АВЕРАГЕИФС савршено добро раде са џокер знаковима.
Срећом, то није препрека која може зауставити креативног корисника Екцел-а :) Комбиновањем ИФ са другим функцијама, можете га натерати да процени делимично подударање и добије лепу алтернативу за формулу џокера Екцел ИФ.
Зашто Екцел ИФ функција са џокер знаком не ради
У табели испод, претпоставимо да желите да проверите да ли ИД-ови у првој колони садрже слово "А". Ако се пронађе – прикажи „Да“ у колони Б, ако не – прикажи „Не“.
Чини се да би укључивање џокер текста у логички тест било лако решење:
=IF(A2="*a*","Yes", "No")
Али, нажалост, не ради. Формула враћа „Не“ за све ћелије, чак и оне које садрже „А“:
Заштоџокер ИФ изјава није успела? По свему судећи, Екцел не препознаје џокер знакове који се користе са знаком једнакости или друге логичке операторе. Ако пажљивије погледате листу функција које подржавају џокер знакове, приметићете да њихова синтакса претпоставља да се џокер текст појављује директно у аргументу као што је овај:
=COUNTIF(A2:A10, "*a*")
Екцел ИФ садржи делимичан текст
Сада када знате разлог зашто џокер ИФ формула не успе, хајде да покушамо да схватимо како да је натерамо да функционише. За ово ћемо једноставно уградити функцију која прихвата џокер знакове у логички тест ИФ, односно функцију ЦОУНТИФ:
ИФ( целл, "* тект* "), валуе_иф_труе, валуе_иф_фалсе)Са овим приступом, ИФ нема проблема са разумевањем џокер знакова и беспрекорно идентификује ћелије које садрже или „А“ или „а“ (пошто ЦОУНТИФ не разликује велика и мала слова):
=IF(COUNTIF(A2, "*a*"),"Yes", "No")
Ова формула иде у Б2, или било коју другу ћелију у реду 2, а затим можете да је превучете на онолико ћелија колико је потребно:
Ово решење се такође може користити за лоцирање стрингова специфичног шаблона . Под претпоставком да су валидни само ИД-ови који се састоје од 2 групе од по 2 знака одвојене цртицом, можете користити "??-??" џокер низ за њихову идентификацију:
=IF(COUNTIF(A2, "??-??"), "Valid", "")
Како ова формула функционише:
За логички тест ИФ, користимо функцију ЦОУНТИФ која броји број ћелија које одговарају наведеном џокер знакуниз. Пошто је опсег критеријума једна ћелија (А2), резултат је увек 1 (подударање је пронађено) или 0 (подударање није пронађено). С обзиром да је 1 једнако ТАЧНО, а 0 ЛАЖНО, формула враћа „Ваљано“ (валуе_иф_труе) када је број 1 и празан стринг (валуе_иф_фалсе) када је број 0.
ИФ ИСНУМБЕР СЕАРЦХ формулу за делимичан матцхес
Други начин да натерате Екцел ИФ да ради за делимично подударање текста је да у логички тест укључите функцију ФИНД или СЕАРЦХ. Разлика је у томе што ФИНД разликује велика и мала слова, док СЕАРЦХ није.
Дакле, у зависности од тога да ли желите да третирате мала и велика слова као исте или различите знакове, једна од ових формула ће радити као посластица:
Формула без обзира на велика и мала слова за делимично подударање:
ИФ(ИСНУМБЕР(СЕАРЦХ(" текст", ћелија)), валуе_иф_труе, валуе_иф_фалсе )Формула осетљива на велика и мала слова за делимично подударање:
ИФ(ИСНУМБЕР(ФИНД(" текст", ћелија)), валуе_иф_труе, валуе_иф_фалсе )Пошто су обе функције дизајниране да изводе подударање типа „ћелија садржи“, џокерски знакови у овом случају нису потребни.
На пример, да бисте открили ИД-ове који садрже „А“ или „а“ , формула је:
=IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")
Да бисте тражили само велико „А“ и игнорисали „а“, формула је:
=IF(ISNUMBER(FIND("A", A2)), "Yes", "No")
У Б6 на снимку екрана испод, можете приметити разлику у резултату:
Како ова формула функционише:
На срце одформула, постоји комбинација ИСНУМБЕР и СЕАРЦХ (или ФИНД):
ISNUMBER(SEARCH("A", A2))
Функција СЕАРЦХ тражи наведени текст („А“ у овом примеру) и враћа његову позицију унутар низ у А2. Ако текст није пронађен, враћа се грешка #ВАЛУЕ. Пошто су и СЕАРЦХ и ФИНД дизајнирани да изврше подударање типа „ћелија садржи“, џокер знакови у овом случају нису потребни.
Функција ИСНУМБЕР конвертује број у ТРУЕ и било коју другу вредност укључујући грешку у ФАЛСЕ . Логичка вредност иде директно у логички тест ИФ. У нашем случају, А2 садржи „А“, па ИСНУМБЕР враћа ТРУЕ:
IF(TRUE, "Yes", "No")
Као резултат, ИФ враћа вредност постављену за аргумент валуе_иф_труе , што је „Да“.
Екцел ИФ ОР наредба са џокер знаковима
Потребно је да идентификујете ћелије које садрже један од текстуалних стрингова џокерских знакова? У овом случају, можете комбиновати класичну ИФ ОР наредбу са формулом ЦОУНТИФ или ИСНУМБЕР СЕАРЦХ о којој је горе дискутовано.
На пример, да бисте тражили „аа“ ИЛИ „бб“ у А2 игноришући велика слова и вратите „ Да" ако се било која од њих пронађе, користите једну од ових формула:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")
или
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")
Додавање две функције ЦОУНТИФ такође ће радити. У овом случају, знак плус функционише као оператор ОР:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")
Уместо чврстог кодирања низова џокер знакова у формули, можете их унети у засебне ћелије, рецимо Д2 и Ф2, као што је приказано на слици испод. Обратите пажњу да овиреференце ћелија су закључане знаком $ тако да се формула исправно копира у ћелије испод:
=IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")
Горе формуле добро функционишу за 2 делимична подударања , али ако тражите 3 или више, они би постали предугачки. У овом случају, разумно је приступити задатку другачије:
Набавите више подстрингова функцији СЕАРЦХ у константи низа, пребројите враћене бројеве и проверите да ли је резултат већи од нуле (што би значило да бар један од подстрингова ако је пронађен):
=IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")
На овај начин ћете добити потпуно исти резултат са компактнијом формулом:
Екцел ИФ И формула са џокер знаковима
Када желите да проверите да ли ћелија садржи два или више различитих поднизова, најлакши начин је да користите функцију ЦОУНТИФС са џокер знаковима за логички тест.
Претпоставимо да желите да лоцирате ћелије у колони А које садрже и „б“ И „2“. Да бисте то урадили, користите „*б*“ и „*2*“ за критеријуме ЦОУНТИФС и А2 за опсег критеријума:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")
Други начин је да заједно користите формулу ИФ И са ПРЕТРАГОМ ИСБРОЈЕВА:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")
Иако не укључујемо ниједан џокер знак у ову формулу, она функционише као тражење два џокер низа ("*б*" и "*2*" ) у истој ћелији.
Наравно, ништа вас не спречава да унесете вредности претраге у унапред дефинисане ћелије, у нашем случају Д2 и Ф2, и даћелија упућује на формулу:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")
Ако више волите да користите компактније формуле где год је то могуће, можда ће вам се више допасти приступ константног низа. Формула ИФ ЦОУНТ СЕАРЦХ је веома слична у претходном примеру, али пошто се овог пута оба подниза морају појавити у А2, проверавамо да ли је број једнак 2:
=IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")
Ово су главне методе коришћења џокера у ИФ наредби у Екцел-у. Ако знате нека друга решења, други корисници ће сигурно ценити ако поделите своје искуство у коментарима. Захваљујем вам што сте читали и надам се да се видимо на нашем блогу следеће недеље!
Вежбање за преузимање
Екцел ИФ џокер формула примери (.клск датотека)