Преглед садржаја
Упутство објашњава синтаксу Екцел функција ФИНД и СЕАРЦХ и даје примере формула за напредну нетривијалну употребу.
У последњем чланку смо покрили основе Екцел-а Пронађи и замени дијалог. У многим ситуацијама, међутим, можда ћете желети да Екцел аутоматски пронађе и извуче податке из других ћелија на основу ваших критеријума. Дакле, хајде да детаљније погледамо шта Екцел функције претраге могу да понуде.
Екцел функција ФИНД
ФИНД функција у Екцел-у се користи за враћање позиције одређени знак или подниз унутар текстуалног низа.
Синтакса функције Екцел Финд је следећа:
ФИНД(пронађи_текст, унутар_текста, [почетни_број])Прва 2 аргумента су обавезна, последњи је опциони.
- Пронађи_текст - карактер или подниз који желите да пронађете.
- Унутар_текста - текстуални низ за бити тражен унутар. Обично се испоручује као референца на ћелију, али такође можете унети стринг директно у формулу.
- Почетни_број - опциони аргумент који одређује од ког знака ће претрага почети. Ако се изостави, претрага почиње од 1. знака низа унутар_текста.
Ако функција ФИНД не пронађе знак(е) текста_нађи, #ВАЛУЕ! грешка се враћа.
На пример, формула =FIND("d", "find")
враћа 4 јер је „д“ 4. слово у речи „ пронађи “. Формула =FIND("a", "find")
опет, најсложенији део је последњи аргумент који говори формули колико знакова треба да врати. Тај прилично дуг израз у аргументу нум_цхарс ради следеће:
- Прво, проналазите позицију завршне заграде:
SEARCH(")",A2)
- Након тога лоцирате позицију почетне заграде:
SEARCH("(",A2)
- А затим, израчунате разлику између позиција завршне и почетне заграде и од тог броја одузмете 1, јер не желите ни једну заграду у резултату:
SEARCH(")",A2)-SEARCH("(",A2))-1
Наравно, ништа вас не спречава да користите Екцел функцију ФИНД уместо СЕАРЦХ, јер осетљивост на велика и мала слова не прави разлику у овом примеру.
Надајмо се, ово Водич је бацио мало светла на то како да користите функције СЕАРЦХ и ФИНД у Екцел-у. У следећем туторијалу ћемо детаљно испитати функцију РЕПЛАЦЕ, па вас молимо да пратите. Хвала вам на читању!
Преузмите радну свеску за вежбање
ПРОНАЂИТЕ и ПРЕТРАЖИТЕ примере формуле
враћа грешку јер нема "а" у " финд".
Екцел функција ФИНД - ствари које треба запамтити!
Да бисте правилно користили формулу ФИНД у Екцел-у, имајте на уму следеће једноставне чињенице:
- Функција ФИНД је осетљива на велика и мала слова . Ако тражите подударање без обзира на велика и мала слова, користите функцију СЕАРЦХ.
- Функција ФИНД у Екцел-у не дозвољава коришћење замјенских знакова .
- Ако аргумент финд_тект садржи неколико знакова, функција ФИНД враћа позицију првог знака . На пример, формула ФИНД("ап","срећан") враћа 2 јер "а" у 2. слову у речи "срећан".
- Ако унутар_текста садржи неколико појављивања финд_тект, враћа се прво појављивање. На пример, ФИНД("л", "хелло") враћа 3, што је позиција првог знака "л" у речи "здраво".
- Ако је финд_тект празан стринг "", Екцел формула ФИНД враћа први знак у стрингу за претрагу.
- Екцел функција ФИНД враћа #ВАЛУЕ! грешка ако се деси било шта од следећег:
- Пронађи_текст не постоји у унутар_текста.
- Почетни_број садржи више знакова него унутар_текста.
- Почетни_број је 0 (нула) или негативан број.
Екцел функција СЕАРЦХ
Функција СЕАРЦХ у Екцел-у је веома слична ФИНД по томе што такође враћа локацију подниза у текстниз. Да ли су синтакса и аргументи слични онима код ФИНД:
СЕАРЦХ(пронађи_текст, унутар_текста, [почетни_број])За разлику од ФИНД, функција СЕАРЦХ је неосетљива на велика и мала слова и дозвољава коришћење џокер знакова , као што је показано у следећем примеру.
И ево неколико основних Екцел формула за ПРЕТРАЖИВАЊЕ:
=SEARCH("market", "supermarket")
враћа 6 јер подниз „маркет“ почиње од 6. знака речи „супермаркет“ .
=SEARCH("e", "Excel")
враћа 1 јер је "е" први знак у речи "Екцел", занемарујући велика и мала слова.
Као и ФИНД, Екцелова функција СЕАРЦХ враћа #ВАЛУЕ! грешка ако:
- Вредност аргумента финд_тект није пронађена.
- Аргумент почетни_број је већи од дужине унутар_текста.
- Почетни_број је једнак или мање од нуле.
Даље у овом водичу, наћи ћете неколико смисленијих примера формуле који показују како се користи функција СЕАРЦХ у Екцел радним листовима.
Екцел ФИНД наспрам Екцел СЕАРЦХ
Као што је већ поменуто, функције ФИНД и СЕАРЦХ у Екцел-у су веома сличне у смислу синтаксе и употребе. Међутим, они имају неколико разлика.
1. ФИНД који разликује велика и мала слова у односу на СЕАРЦХ без обзира на велика и мала слова
Најбитнија разлика између Екцел функција СЕАРЦХ и ФИНД је у томе што СЕАРЦХ не разликује велика и мала слова, док је ФИНД осетљив на велика и мала слова.
На пример , СЕАРЦХ("е", "Екцел") враћа 1 јер игноришеслучај "Е", док ФИНД("е", "Екцел") враћа 4 јер му смета велика и мала слова.
2. Претрага помоћу џокер знакова
За разлику од ФИНД, Екцел функција СЕАРЦХ прихвата џокер знакове у аргументу финд_тект:
- Знак питања (?) одговара једном знаку, а
- Звездица (*) одговара било којој серији знакова.
Да бисте видели како функционише на стварним подацима, размотрите следећи пример:
Као што видите на слици изнад, формула СЕАРЦХ("фунцтион*2013", А2) враћа позицију првог знака ("ф") у поднизу ако текстуални низ на који се позива аргумент унутар_тект садржи обе "функције" и „2013“, без обзира колико других знакова има између.
Савет. Да бисте пронашли стварни знак питања (?) или звездицу (*), откуцајте тилду (~) пре одговарајућег знака.
Примери формуле ФИНД и СЕАРЦХ у Екцел-у
У пракси, Екцел функције ФИНД и СЕАРЦХ ретко се користе саме за себе. Обично бисте их користили у комбинацији са другим функцијама као што су СРЕДИНА, ЛЕВО или ДЕСНО, а следећи примери формуле показују неке употребе у стварном животу.
Пример 1. Пронађите стринг који претходи или следи датом карактеру
Овај пример показује како можете пронаћи и издвојити све знакове у текстуалном низу лево или десно од одређеног знака. Да бисте ствари лакше разумели, размотритеследећи пример.
Претпоставимо да имате колону са именима (колона А) и желите да повучете Име и Презиме у одвојене колоне.
Да бисте добили име, можете користити ФИНД (или СЕАРЦХ) у комбинацији са функцијом ЛЕФТ:
=LEFT(A2, FIND(" ", A2)-1)
или
=LEFT(A2, SEARCH(" ", A2)-1)
Као што вероватно знате, Екцел функција ЛЕФТ враћа наведен број крајњих левих знакова у низу. И користите функцију ФИНД да одредите позицију размака (" ") да бисте омогућили функцији ЛЕФТ да зна колико знакова треба издвојити. При томе одузимате 1 од позиције размака јер не желите да враћена вредност укључује размак.
Да бисте издвојили презиме, користите комбинацију функција ДЕСНО, ПРОНАЂИ/ТРАЖИ и ЛЕН. ЛЕН функција је потребна да добијете укупан број знакова у стрингу, од којих одузимате позицију размака:
=RIGHT(A2,LEN(A2)-FIND(" ",A2))
или
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
Следећи снимак екрана показује резултат:
За сложеније сценарије, као што је издвајање средњег имена или раздвајање имена са суфиксима, погледајте Како поделити ћелије у Екцел-у користећи формуле.
Пример 2. Пронађите Н-то појављивање датог карактера у текстуалном низу
Претпоставимо да имате неке текстуалне стрингове у колони А, рецимо листу СКУ-ова и желите да пронађете положај цртице 2. у низу. Следећа формула ради као посластица:
=FIND("-", A2, FIND("-",A2)+1)
Прва двааргументе је лако протумачити: лоцирајте цртицу ("-") у ћелији А2. У трећи аргумент (старт_нум) уграђујете још једну функцију ФИНД која говори Екцел-у да започне претрагу почевши од знака који долази одмах након првог појављивања цртице (ФИНД("-",А2)+1).
Да бисте вратили позицију 3. појављивања , уградите горњу формулу у аргумент старт_нум друге функције ФИНД и додате 2 враћеној вредности:
=FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)
Још један и вероватно једноставнији начин за проналажење Н-тог појављивања датог знака је коришћење Екцел функције ФИНД у комбинацији са ЦХАР и СУБСТИТУТЕ:
=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))
Где је „-“ дотични знак, а „3“ је Н-та појава коју желите да пронађете.
У горњој формули, функција СУБСТИТУТЕ замењује 3. појављивање цртице („-“) са ЦХАР( 1), што је знак „Почетак заглавља“ који се не може штампати у АСЦИИ систему. Уместо ЦХАР(1) можете користити било који други знак који се не може штампати од 1 до 31. А затим, функција ФИНД враћа позицију тог знака у текстуалном низу. Дакле, општа формула је следећа:
ФИНД(ЦХАР(1),СУБСТИТУТЕ( ћелија , знак ,ЦХАР(1), Н-та појава ))На први поглед може изгледати да горе наведене формуле имају малу практичну вредност, али следећи пример ће показати колико су корисне у решавању стварних задатака.
Напомена. Запамтите да је Екцел ФИНДфункција је осетљива на велика и мала слова. У нашем примеру, ово нема никакве разлике, али ако радите са словима и желите подударање велика и мала слова , користите функцију СЕАРЦХ уместо ФИНД.
Пример 3. Издвоји Н знакова након одређеног знака
Да бисте лоцирали подниз дате дужине унутар било ког текстуалног низа, користите Екцел ФИНД или Екцел СЕАРЦХ у комбинацији са функцијом МИД. Следећи пример показује како можете да користите такве формуле у пракси.
На нашој листи СКУ-ова, претпоставимо да желите да пронађете прва 3 знака иза прве цртице и повучете их у другу колону.
Ако група знакова која претходи првој цртици увек садржи исти број ставки (нпр. 2 знака), ово би био тривијалан задатак. Можете користити функцију МИД да вратите 3 знака из стринга, почевши од позиције 4 (прескачући прва 2 знака и цртицу):
=MID(A2, 4, 3)
Преведено на енглески, формула каже: „Погледајте у ћелију А2, почните да издвајате из знака 4 и вратите 3 знака“.
Међутим, у радним листовима из стварног живота, подниз који треба да извучете може да почне било где унутар текстуалног низа. У нашем примеру, можда не знате колико знакова претходи првој цртици. Да бисте се носили са овим изазовом, користите функцију ФИНД да бисте одредили почетну тачку подниза који желите да преузмете.
Формула ФИНД за враћањепозиција прве цртице је следећа:
=FIND("-",A2)
Пошто желите да почнете са знаком који следи после цртице, додајте 1 враћеној вредности и уградите горњу функцију у други аргумент (почетни_број) функције МИД:
=MID(A2, FIND("-",A2)+1, 3)
У овом сценарију, Екцел функција СЕАРЦХ ради подједнако добро:
=MID(A2, SEARCH("-",A2)+1, 3)
Сјајно је, али шта ако група знакова иза прве цртице садржи различит број знакова? Хмм... ово може бити проблем:
Као што видите на горњој слици екрана, формула савршено функционише за редове 1 и 2. У редовима 4 и 5, друга група садржи 4 знака, али се враћају само прва 3 знака. У редовима 6 и 7 постоје само 2 знака у другој групи, и стога наша формула за Екцел претрагу враћа цртицу након њих.
Ако желите да вратите све знакове између 1. и 2. појављивања одређеног знака (цртица у овом примеру), како бисте поступили? Ево одговора:
=MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)
За боље разумевање ове МИД формуле, хајде да испитамо њене аргументе један по један:
- 1. аргумент (текст). То је текстуални низ који садржи знакове које желите да издвојите, ћелија А2 у овом примеру.
- 2. аргумент (почетна_позиција). Одређује позицију првог знака који желите да издвојите. Користите функцију ФИНД да бисте лоцирали прву цртицу у низу и додали 1 уту вредност јер желите да почнете са знаком који следи након цртице: ФИНД("-",А2)+1.
- 3. аргумент (број_знакова). Одређује број знакова које желите да вратите. У нашој формули, ово је најтежи део. Користите две функције ФИНД (или СЕАРЦХ), једна одређује позицију прве цртице: ФИНД("-",А2). А други враћа позицију друге цртице: ФИНД("-", А2, ФИНД("-",А2)+1). Затим одузимате прво од другог, а затим одузимате 1 јер не желите да укључите ниједну цртицу. Као резултат, добићете број знакова између 1. и 2. цртице, што је управо оно што тражимо. Дакле, ту вредност уносите у аргумент нум_цхарс функције МИД.
На сличан начин, можете вратити 3 знака после 2. цртице:
=MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)
Или издвојите све знакове између 2. и 3. цртице:
=MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)
Пример 4. Пронађи текст између заграда
Претпоставимо да имате дугачак текстуални стринг у колони А и желите да пронађете и издвојите само текст уоквирен (заграде).
Да бисте то урадили, биће вам потребна функција МИД да врати жељени број знакова из стринг и или Екцел функцију ФИНД или СЕАРЦХ да одредите одакле да почнете и колико знакова да издвојите.
=MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("(",A2)-1)
Логика ове формуле је слична онима о којима смо расправљали у претходном пример. И