Ynhâldsopjefte
De tutorial ferklearret de syntaksis fan 'e Excel FYN- en SEARCH-funksjes en jout formulefoarbylden fan avansearre net-triviale gebrûk.
Yn it lêste artikel hawwe wy de basis fan 'e Excel behannele. Fyn en ferfange dialooch. Yn in protte situaasjes kinne jo lykwols wolle dat Excel automatysk gegevens fan oare sellen fynt en ekstrahearje op basis fan jo kritearia. Litte wy dus in tichterby besjen wat de Excel-sykfunksjes te bieden hawwe.
Excel FIND-funksje
De FIND-funksje yn Excel wurdt brûkt om de posysje werom te jaan fan in spesifyk karakter of substring binnen in tekststring.
De syntaksis fan de Excel Find-funksje is as folget:
FIND(find_text, within_text, [start_num])De earste 2 arguminten binne ferplicht, de lêste is opsjoneel.
- Find_text - it teken of substring dat jo fine wolle.
- Binnen_tekst - de tekststring nei wurde socht binnen. Meastentiids wurdt it levere as in selferwizing, mar jo kinne de tekenrige ek direkt yn 'e formule ynfiere.
- Start_num - in opsjoneel argumint dat spesifisearret út hokker karakter de sykopdracht begjint. As it wurdt weilitten, begjint it sykjen fan it 1e karakter fan 'e inside_text-string.
As de FIND-funksje de find_text-karakter(s) net fynt, is in #VALUE! flater wurdt weromjûn.
Bygelyks, de formule =FIND("d", "find")
jout 4 omdat "d" de 4e letter is yn it wurd " fine ". Formule =FIND("a", "find")
wer, it meast komplekse diel is it lêste argumint dat fertelt de formule hoefolle tekens werom. Dy aardich lange útdrukking yn it argumint num_chars docht it folgjende:
- Earst fine jo de posysje fan 'e slutende parenthesis:
SEARCH(")",A2)
- Dêrnei fine jo de posysje fan 'e iepeningshaakjes:
SEARCH("(",A2)
- En dan berekkenje jo it ferskil tusken de posysjes fan 'e slutende en iepeningshaakjes en lûke 1 fan dat nûmer ôf, om't jo gjin beide haakjes yn it resultaat wolle:
SEARCH(")",A2)-SEARCH("(",A2))-1
Natuerlik hinderet neat jo de Excel FIND-funksje te brûken ynstee fan SEARCH, om't case-sensitivity of case-insensitivity gjin ferskil makket yn dit foarbyld.
Hooplik is dit tutorial hat wat ljocht smiten oer hoe't jo SEARCH en FIND-funksjes brûke yn Excel. Yn 'e folgjende tutorial sille wy de REPLACE-funksje nau ûndersykje, dus bliuw op 'e hichte. Tankewol foar it lêzen!
Download oefenwurkboek
FYN en SEARCH formulefoarbylden
jout in flater werom om't der gjin "a" is yn " fine".
Excel FIND-funksje - dingen om te ûnthâlden!
Om in FIND-formule korrekt te brûken yn Excel, hâld de folgjende ienfâldige feiten yn gedachten:
- De FIND-funksje is hoofdlettergefoel . As jo op syk binne nei in haadletter-ûngefoelige wedstryd, brûk dan de SEARCH-funksje.
- De FIND-funksje yn Excel lit it brûken fan jokertekens net ta.
- As it argumint find_text befettet ferskate karakters, de funksje FIND jout de posysje werom fan it earste teken . Bygelyks, de formule FIND("ap","lokkich") jout 2 werom, om't "a" yn de 2e letter yn it wurd "lokkich".
- As binnen_tekst ferskate foarkommen fan befettet find_text, it earste foarkommen wurdt weromjûn. Bygelyks, FIND("l", "hallo") jout 3 werom, dat is de posysje fan it earste "l"-teken yn it wurd "hallo".
- As find_text in lege tekenrige
"", de Excel FIND-formule jout it earste teken yn de sykstring werom. - De Excel FYN-funksje jout de #VALUE! flater as ien fan de folgjende optreedt:
- Find_tekst bestiet net yn inside_text.
- Start_num befettet mear tekens dan within_text.
- Start_num is 0 (nul) of in negatyf getal.
Excel SEARCH-funksje
De SEARCH-funksje yn Excel is tige ferlykber mei FIND trochdat it ek de lokaasje fan in substring weromjout yn in tekststring. Is syntaksis en arguminten besibbe oan dy fan FIND:
SEARCH(find_text, within_text, [start_num])Oars as FIND is de SEARCH-funksje hoofdletter-ûngefoelich en it makket it mooglik om de jokertekens te brûken , lykas oantoand yn it folgjende foarbyld.
En hjir binne in pear basis Excel SEARCH formules:
=SEARCH("market", "supermarket")
jout 6 omdat de substring "merk" begjint by it 6e karakter fan it wurd "supermerk" .
=SEARCH("e", "Excel")
jout 1 om't "e" it earste teken yn it wurd "Excel" is, it gefal negearje.
Lykas FYN jout de SEARCH-funksje fan Excel de #VALUE! error if:
- De wearde fan it argumint find_text is net fûn.
- It start_num argumint is grutter dan de lingte fan inside_text.
- Start_num is lyk oan of minder dan nul.
Fierder yn dizze tutorial fine jo in pear mear sinfolle formulefoarbylden dy't demonstrearje hoe't jo de SEARCH-funksje brûke yn Excel-wurkblêden.
Excel FYN vs. Excel SEARCH
Lykas al neamd, binne de FYN- en SEARCH-funksjes yn Excel heul gelyk yn termen fan syntaksis en gebrûk. Se hawwe lykwols in pear ferskillen.
1. Case-sensitive FIND vs. case-unsensitive SEARCH
It meast essensjele ferskil tusken de Excel SEARCH- en FIND-funksjes is dat SEARCH gjin haadlettergefoelich is, wylst FIND haadlettergefoelich is.
Bygelyks , SEARCH("e", "Excel") jout 1 werom om't it degefal fan "E", wylst FIND ("e", "Excel") jout 4 omdat it tinkt it gefal.
2. Sykje mei jokertekens
Oars as FIND, akseptearret de Excel SEARCH-funksje jokertekens yn it argumint find_text:
- In fraachteken (?) komt oerien mei ien karakter, en
- In asterisk (*) komt oerien mei elke searje tekens.
Om te sjen hoe't it wurket op echte gegevens, beskôgje it folgjende foarbyld:
Lykas jo yn 'e skermôfbylding hjirboppe sjogge, jout de formule SEARCH ("funksje*2013", A2) de posysje werom fan it earste karakter ("f") yn 'e substring as de tekststring ferwiist yn it argumint binnen_tekst beide "funksje" befettet en "2013", hoefolle oare karakters der ek tusken sitte.
Tip. Om in werklik fraachteken (?) of asterisk (*) te finen, typ in tilde (~) foar it oerienkommende karakter.
Excel FYN- en SEARCH-formulefoarbylden
Yn 'e praktyk wurde de Excel FIND- en SEARCH-funksjes selden op har eigen brûkt. Typysk soene jo se brûke yn kombinaasje mei oare funksjes lykas MID, LEFT of RIGHT, en de folgjende formulefoarbylden litte guon gebrûken yn it echte libben sjen.
Foarbyld 1. Sykje in tekenrige foar of nei in opjûn karakter<3 14>
Dit foarbyld lit sjen hoe't jo alle karakters yn in tekststring kinne fine en útpakke nei lofts of rjochts fan in spesifyk karakter. Om dingen makliker te begripen, beskôgje defolgjende foarbyld.
Stel dat jo in kolom mei nammen hawwe (kolom A) en jo wolle de Foarnamme en Efternamme yn aparte kolommen lûke.
Om de foarnamme te krijen, kinne jo gebrûk meitsje fan FYN (of SEARCH) yn kombinaasje mei de LEFT-funksje:
=LEFT(A2, FIND(" ", A2)-1)
of
=LEFT(A2, SEARCH(" ", A2)-1)
As jo wierskynlik witte, jout de Excel LEFT-funksje de oantsjutte oantal karakters meast lofts yn in tekenrige. En jo brûke de FIND-funksje om de posysje fan in spaasje (" ") te bepalen om de LEFT-funksje te litten witte hoefolle karakters te ekstrahearje. Dan lûke jo 1 ôf fan 'e posysje fan 'e romte, om't jo net wolle dat de weromjûne wearde de romte befettet.
Om de efternamme út te heljen, brûk de kombinaasje fan de RIGHT, FIND / SEARCH en LEN funksjes. De LEN-funksje is nedich om it totale oantal karakters yn 'e tekenrige te krijen, wêrfan jo de posysje fan 'e spaasje ôflûke:
=RIGHT(A2,LEN(A2)-FIND(" ",A2))
of
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
De folgjende skermôfbylding toant it resultaat:
Foar mear komplekse senario's, lykas it ekstrahearjen fan in middelnamme of it splitsen fan nammen mei efterheaksels, sjoch asjebleaft Hoe sellen splitst yn Excel mei help fan formules.
Foarbyld 2. Fyn Nde foarkommen fan in opjûn karakter yn in tekststring
Stel dat jo wat tekststrings hawwe yn kolom A, sis dan in list mei SKU's, en jo wolle fine de posysje fan it 2e streepke yn in tekenrige. De folgjende formule wurket in traktaasje:
=FIND("-", A2, FIND("-",A2)+1)
De earste twaarguminten binne maklik te ynterpretearjen: sykje in streepke ("-") yn sel A2. Yn it tredde argumint (start_num) ynbêde jo in oare FIND-funksje yn dy't Excel fertelt om te begjinnen mei sykjen te begjinnen mei it karakter dat direkt nei it earste foarkommen fan dash komt (FIND("-",A2)+1).
Om de posysje fan it 3e foarkommen werom te jaan, ynbêde jo de boppesteande formule yn it start_num argumint fan in oare FIND-funksje en foegje 2 ta oan de weromjûne wearde:
=FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)
In oare en wierskynlik in ienfâldiger manier om it N-de foarkommen fan in opjûn karakter te finen is it brûken fan de Excel FIND-funksje yn kombinaasje mei CHAR en SUBSTITUTE:
=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))
Wêr't "-" it karakter yn kwestje is en "3" it N-de foarkommen is dat jo fine wolle.
Yn de boppesteande formule ferfangt de funksje SUBSTITUTE it 3e foarkommen fan streepke ("-") mei CHAR( 1), dat is it ûnprintbere karakter "Start of Heading" yn it ASCII-systeem. Ynstee fan CHAR(1) kinne jo elk oar net-printbere karakter brûke fan 1 oant 31. En dan jout de FIND-funksje de posysje fan dat teken werom yn de tekststring. Dus, de algemiene formule is as folget:
FIND(CHAR(1),SUBSTITUTE( sel , karakter ,CHAR(1), Nde foarkommen ))Op it earste gesicht kin it lykje dat de boppesteande formules net folle praktyske wearde hawwe, mar it folgjende foarbyld sil sjen litte hoe brûkber se binne by it oplossen fan echte taken.
Opmerking. Tink derom dat de Excel FINDfunksje is case-sensitive. Yn ús foarbyld makket dit gjin ferskil, mar as jo mei letters wurkje en jo wolle in gefoelige wedstriid, brûk dan de SEARCH-funksje ynstee fan FIND.
Foarbyld 3. N-tekens ekstrahearje nei in bepaald karakter
Om in substring fan in opjûne lingte binnen elke tekststring te finen, brûk Excel FIND of Excel SEARCH yn kombinaasje mei de MID-funksje. It folgjende foarbyld lit sjen hoe't jo sokke formules yn 'e praktyk brûke kinne.
Yn ús list fan SKU's, stel dat jo de earste 3 tekens nei it earste streepke fine wolle en se yn in oare kolom lûke.
As de groep karakters foarôfgeand oan it earste streepke altyd itselde oantal items befettet (bgl. 2 tekens) soe dit in triviale taak wêze. Jo kinne de MID-funksje brûke om 3 tekens werom te jaan fan in tekenrige, begjinnend by posysje 4 (de earste 2 tekens en in streepke oerslaan):
=MID(A2, 4, 3)
Oerset yn it Ingelsk, seit de formule: "Sjoch yn sel A2, begjin mei it ekstrahearjen fan karakter 4, en geef 3 tekens werom".
Yn wurkblêden kin lykwols de substring dy't jo ekstrahearje moatte oeral begjinne. binnen de tekststring. Yn ús foarbyld kinne jo miskien net witte hoefolle tekens foarôfgeane oan it earste streepke. Om dizze útdaging oan te gean, brûk de FIND-funksje om it begjinpunt te bepalen fan de substring dy't jo ophelje wolle.
De FIND-formule om deposysje fan it 1e streepke is as folget:
=FIND("-",A2)
Om't jo begjinne wolle mei it karakter dat nei it streepke folget, foegje 1 ta oan de weromjûne wearde en ynbêde de boppesteande funksje yn it twadde argumint (start_num) fan de MID-funksje:
=MID(A2, FIND("-",A2)+1, 3)
Yn dit senario wurket de Excel SEARCH-funksje like goed:
=MID(A2, SEARCH("-",A2)+1, 3)
It is geweldich, mar wat as de groep tekens nei it earste streepke in oar oantal tekens befettet? Hmm... dit kin in probleem wêze:
Sa't jo yn 'e boppesteande skermôfbylding sjogge, wurket de formule perfekt foar rigen 1 en 2. Yn rigen 4 en 5 binne de twadde groep befettet 4 tekens, mar allinnich de earste 3 tekens wurde werom. Yn rigen 6 en 7 binne d'r mar 2 tekens yn 'e twadde groep, en dêrom jout ús Excel Search-formule in streepke nei harren.
As jo alle tekens weromjaan wolle tusken de 1e en 2e foarfallen fan in bepaald karakter (streepje yn dit foarbyld), hoe soene jo fierdergean? Hjir is it antwurd:
=MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)
Foar better begryp fan dizze MID-formule, litte wy de arguminten ien foar ien ûndersykje:
- 1e argumint (tekst). It is de tekststring mei de tekens dy't jo ekstrahearje wolle, sel A2 yn dit foarbyld.
- 2e argumint (start_posysje). Spesifisearret de posysje fan it earste karakter dat jo ekstrahearje wolle. Jo brûke de FIND-funksje om it earste streepke yn 'e tekenrige te finen en 1 ta te foegjendy wearde omdat jo begjinne wolle mei it karakter dat folget op it streepke: FIND("-",A2)+1.
- 3e argumint (num_chars). Spesifisearret it oantal tekens dat jo wolle weromjaan. Yn ús formule is dit it lestichste diel. Jo brûke twa FYN (of SEARCH) funksjes, ien bepaalt de posysje fan it earste streepke: FIND ("-", A2). En de oare jout de posysje fan it twadde streepke werom: FIND("-", A2, FYN("-",A2)+1). Dan lûke jo de earste fan de lêste ôf, en dan lûke jo 1 ôf om't jo gjin streepkes opnimme wolle. As resultaat krije jo it oantal karakters tusken de 1e en 2e streepkes, dat is krekt wat wy sykje. Dat, jo feed dy wearde oan it argumint num_chars fan 'e MID-funksje.
Op in fergelykbere manier kinne jo 3 tekens weromjaan nei it 2e streepke:
=MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)
Of, ekstrahearje alle tekens tusken de 2e en 3e streepkes:
=MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)
Foarbyld 4. Sykje tekst tusken heakjes
Stel dat jo in lange tekststring hawwe yn kolom A en jo wolle allinich de tekst yn (haakjes) fine en ekstrahearje.
Dêrfoar hawwe jo de MID-funksje nedich om it winske oantal karakters werom te jaan fan in tekenrige, en of Excel FIND of SEARCH funksje om te bepalen wêr't te begjinnen en hoefolle karakters te ekstrahearje.
=MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("(",A2)-1)
De logika fan dizze formule is fergelykber mei dejingen dy't wy besprutsen hawwe yn 'e foarige foarbyld. En