Excel FIND en SOEK funksies met formule voorbeelde

  • Deel Dit
Michael Brown

Die tutoriaal verduidelik die sintaksis van die Excel FIND- en SOEK-funksies en verskaf formule-voorbeelde van gevorderde nie-triviale gebruike.

In die laaste artikel het ons die basiese beginsels van die Excel behandel. Soek en vervang dialoog. In baie situasies wil u egter hê dat Excel data uit ander selle outomaties moet vind en onttrek op grond van u kriteria. So, kom ons kyk van naderby na wat die Excel-soekfunksies bied.

    Excel FIND-funksie

    Die FIND-funksie in Excel word gebruik om die posisie van 'n spesifieke karakter of substring binne 'n teksstring.

    Die sintaksis van die Excel Soek-funksie is soos volg:

    FIND(vind_teks, binne_teks, [begin_num])

    Die eerste 2 argumente word vereis, die laaste een is opsioneel.

    • Vind_teks - die karakter of substring wat jy wil vind.
    • Binne_teks - die teksstring na binne gesoek word. Gewoonlik word dit as 'n selverwysing verskaf, maar jy kan ook die string direk in die formule tik.
    • Start_num - 'n opsionele argument wat spesifiseer van watter karakter die soektog sal begin. As dit weggelaat word, begin die soektog vanaf die 1ste karakter van die binneteksstring.

    As die FIND-funksie nie die vind_tekskarakter(e) vind nie, sal 'n #VALUE! fout word teruggestuur.

    Byvoorbeeld, die formule =FIND("d", "find") gee 4 terug omdat "d" die 4de letter in die woord " vind is". Die formule =FIND("a", "find") weer, die mees komplekse deel is die laaste argument wat die formule vertel hoeveel karakters om terug te gee. Daardie redelik lang uitdrukking in die num_chars-argument doen die volgende:

    • Eers vind jy die posisie van die slothakies: SEARCH(")",A2)
    • Daarna vind jy die posisie van die openingshakies: SEARCH("(",A2)
    • En dan, jy bereken die verskil tussen die posisies van die sluiting en opening hakies en trek 1 van daardie getal af, want jy wil nie een van die hakies in die resultaat hê nie: SEARCH(")",A2)-SEARCH("(",A2))-1

    Natuurlik verhinder niks jou om die Excel FIND-funksie in plaas van SOEK te gebruik nie, want hooflettergevoeligheid of hoofletteronsensitiwiteit maak geen verskil in hierdie voorbeeld nie.

    Hopelik is dit tutoriaal het 'n bietjie lig gewerp oor hoe om SOEK- en VIND-funksies in Excel te gebruik. In die volgende tutoriaal gaan ons die VERVANG-funksie noukeurig ondersoek, so bly asseblief ingeskakel. Dankie dat jy gelees het!

    Laai oefenwerkboek af

    VIND en SOEK formulevoorbeelde

    gee 'n fout omdat daar geen "a" in " vindis nie".

    Excel FIND-funksie - dinge om te onthou!

    Om 'n FIND-formule korrek in Excel te gebruik, hou die volgende eenvoudige feite in gedagte:

    1. Die FIND-funksie is hooflettergevoelig . As jy op soek is na 'n hoofletter-onsensitiewe pasmaat, gebruik die SEARCH-funksie.
    2. Die FIND-funksie in Excel laat nie die gebruik van jokertekens toe nie.
    3. As die vind_teks-argument verskeie karakters bevat, gee die FIND-funksie die posisie van die eerste karakter terug. Byvoorbeeld, die formule FIND("ap","gelukkig") gee 2 terug omdat "a" in die 2de letter in die woord "gelukkig".
    4. As binne_teks verskeie voorkomste van bevat find_text, die eerste voorkoms word teruggestuur. Byvoorbeeld, FIND("l", "hallo") gee 3 terug, wat die posisie is van die eerste "l" karakter in die woord "hallo".
    5. As vind_teks 'n leë string "", gee die Excel FIND-formule die eerste karakter in die soekstring terug.
    6. Die Excel FIND-funksie gee die #VALUE! fout as enige van die volgende voorkom:
      • Vind_teks bestaan ​​nie in binne_teks nie.
      • Begin_getal bevat meer karakters as binne_teks.
      • Begin_getal is 0 (nul) of 'n negatiewe getal.

    Excel SEARCH-funksie

    Die SEARCH-funksie in Excel is baie soortgelyk aan FIND deurdat dit ook die ligging van 'n substring in 'n teksstring. Is sintaksis en argumente soortgelyk aan dié van FIND:

    SEARCH(vind_teks, binne_teks, [begin_getal])

    Anders as FIND, is die SEARCH-funksie hoofletter-onsensitief en dit laat die gebruik van die jokertekens toe , soos gedemonstreer in die volgende voorbeeld.

    En hier is 'n paar basiese Excel SOEK-formules:

    =SEARCH("market", "supermarket") gee 6 terug omdat die substring "mark" begin by die 6de karakter van die woord "supermark" .

    =SEARCH("e", "Excel") gee 1 terug omdat "e" die eerste karakter in die woord "Excel" is, wat die hoofletter ignoreer.

    Soos FIND, gee Excel se SEARCH-funksie die #VALUE! fout as:

    • Die waarde van die vind_teks-argument is nie gevind nie.
    • Die begin_getal argument is groter as die lengte van binne_teks.
    • Begin_getal is gelyk aan of minder as nul.

    Verder in hierdie tutoriaal sal jy 'n paar meer betekenisvolle formulevoorbeelde vind wat demonstreer hoe om SOEK-funksie in Excel-werkblaaie te gebruik.

    Soos reeds genoem, is die FIND- en SEARCH-funksies in Excel baie dieselfde wat sintaksis en gebruike betref. Hulle het egter 'n paar verskille.

    Die belangrikste verskil tussen die Excel SEARCH- en FIND-funksies is dat SEARCH hoofletter-onsensitief is, terwyl FIND hooflettergevoelig is.

    Byvoorbeeld , SEARCH("e", "Excel") gee 1 terug omdat dit diedie geval van "E", terwyl FIND("e", "Excel") 4 gee omdat dit die geval in ag neem.

    2. Soek met jokertekens

    Anders as FIND, aanvaar die Excel SEARCH-funksie jokertekenkarakters in die vind_teks-argument:

    • 'n Vraagteken (?) pas by een karakter, en
    • 'n Sterretjie (*) pas by enige reeks karakters.

    Om te sien hoe dit op werklike data werk, oorweeg die volgende voorbeeld:

    Soos jy in die skermkiekie hierbo sien, gee die formule SEARCH("funksie*2013", A2) die posisie van die eerste karakter ("f") in die substring terug as die teksstring waarna verwys word in die binneteks-argument beide "funksie" bevat en "2013", maak nie saak hoeveel ander karakters daar tussenin is nie.

    Wenk. Om 'n werklike vraagteken (?) of asterisk (*) te vind, tik 'n tilde (~) voor die ooreenstemmende karakter.

    Excel FIND en SOEK formule voorbeelde

    In die praktyk word die Excel FIND en SOEK funksies selde op hul eie gebruik. Tipies sal jy hulle in kombinasie met ander funksies soos MID, LINKS of REGS gebruik, en die volgende formulevoorbeelde demonstreer sommige werklike gebruike.

    Voorbeeld 1. Soek 'n string voor of na 'n gegewe karakter

    Hierdie voorbeeld wys hoe jy alle karakters in 'n teksstring aan die linkerkant of regs van 'n spesifieke karakter kan vind en onttrek. Om dinge makliker te maak om te verstaan, oorweeg dievolgende voorbeeld.

    Gestel jy het 'n kolom met name (kolom A) en jy wil die Voornaam en Van in aparte kolomme trek.

    Om die voornaam te kry, kan jy gebruik FIND (of SOEK) in samewerking met die LINKER-funksie:

    =LEFT(A2, FIND(" ", A2)-1)

    of

    =LEFT(A2, SEARCH(" ", A2)-1)

    Soos jy waarskynlik weet, gee die Excel LINKS-funksie die gespesifiseerde aantal karakters aan die linkerkant in 'n string. En jy gebruik die FIND-funksie om die posisie van 'n spasie (" ") te bepaal om die LEFT-funksie te laat weet hoeveel karakters om te onttrek. Dan trek jy 1 van die spasie se posisie af, want jy wil nie hê dat die teruggekeerde waarde die spasie moet insluit nie.

    Om die van te onttrek, gebruik die kombinasie van die REGS, VIND / SOEK en LEN funksies. Die LEN-funksie is nodig om die totale aantal karakters in die string te kry, waarvan jy die posisie van die spasie aftrek:

    =RIGHT(A2,LEN(A2)-FIND(" ",A2))

    of

    =RIGHT(A2,LEN(A2)-SEARCH(" ",A2))

    Die volgende skermkiekie demonstreer die resultaat:

    Vir meer komplekse scenario's, soos om 'n middelnaam te onttrek of name met agtervoegsels te verdeel, sien asseblief Hoe om selle in Excel te verdeel gebruik formules.

    Voorbeeld 2. Vind Nde voorkoms van 'n gegewe karakter in 'n teksstring

    Gestel jy het 'n paar teksstringe in kolom A, sê 'n lys van SKU's, en jy wil vind die posisie van die 2de strepie in 'n string. Die volgende formule werk 'n lekkerte:

    =FIND("-", A2, FIND("-",A2)+1)

    Die eerste tweeargumente is maklik om te interpreteer: soek 'n streep ("-") in sel A2. In die derde argument (start_num), sluit jy nog 'n FIND-funksie in wat vir Excel sê om te begin soek begin met die karakter wat direk na die eerste voorkoms van streep kom (FIND("-",A2)+1).

    Om die posisie van die 3de voorkoms terug te gee, insluit jy die formule hierbo in die begin_num-argument van 'n ander FIND-funksie en voeg 2 by die teruggekeerde waarde:

    =FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)

    'n Ander en waarskynlik 'n eenvoudiger manier om die Nde voorkoms van 'n gegewe karakter te vind, is die gebruik van die Excel FIND-funksie in kombinasie met CHAR en SUBSTITUT:

    =FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))

    Waar "-" die betrokke karakter is en "3" die Nde voorkoms is wat jy wil vind.

    In die formule hierbo vervang die PLAASVERVANGER-funksie die 3de voorkoms van strepie ("-") met CHAR( 1), wat die ondrukbare "Start of Heading"-karakter in die ASCII-stelsel is. In plaas van CHAR(1) kan jy enige ander ondrukbare karakter van 1 tot 31 gebruik. En dan gee die FIND-funksie die posisie van daardie karakter in die teksstring terug. Dus, die algemene formule is soos volg:

    FIND(CHAR(1),SUBSTITUTE( sel , karakter ,CHAR(1), Nde voorkoms ))

    Met die eerste oogopslag mag dit voorkom asof bogenoemde formules min praktiese waarde het, maar die volgende voorbeeld sal wys hoe nuttig dit is om werklike take op te los.

    Let wel. Onthou asseblief dat die Excel FINDfunksie is hooflettersensitief. In ons voorbeeld maak dit geen verskil nie, maar as jy met letters werk en jy wil 'n hoofletteronsensitiewe pasmaat gebruik, gebruik die SOEK-funksie in plaas van FIND.

    Voorbeeld 3. Onttrek N karakters na 'n sekere karakter

    Om 'n substring van 'n gegewe lengte binne enige teksstring op te spoor, gebruik Excel FIND of Excel SEARCH in kombinasie met die MID-funksie. Die volgende voorbeeld demonstreer hoe jy sulke formules in die praktyk kan gebruik.

    In ons lys van SKU's, veronderstel dat jy die eerste 3 karakters na die eerste streep wil vind en hulle in 'n ander kolom wil trek.

    As die groep karakters wat die eerste streep voorafgaan altyd dieselfde aantal items bevat (bv. 2 chars) sal dit 'n onbenullige taak wees. Jy kan die MID-funksie gebruik om 3 karakters van 'n string terug te gee, begin by posisie 4 (slaan die eerste 2 karakters en 'n streep oor):

    =MID(A2, 4, 3)

    Vertaal in Engels, sê die formule: "Kyk in sel A2, begin om uit karakter 4 te onttrek, en gee 3 karakters terug".

    In werklike werkblaaie kan die substring wat jy moet onttrek egter enige plek begin binne die teksstring. In ons voorbeeld weet jy dalk nie hoeveel karakters die eerste streep voorafgaan nie. Om hierdie uitdaging die hoof te bied, gebruik die FIND-funksie om die beginpunt van die substring te bepaal wat jy wil herwin.

    Die FIND-formule om dieposisie van die 1ste streep is soos volg:

    =FIND("-",A2)

    Omdat jy wil begin met die karakter wat die streep volg, voeg 1 by die teruggestuurde waarde en sluit die bogenoemde funksie in die tweede argument in (begin_getal) van die MID-funksie:

    =MID(A2, FIND("-",A2)+1, 3)

    In hierdie scenario werk die Excel SEARCH-funksie ewe goed:

    =MID(A2, SEARCH("-",A2)+1, 3)

    Dit is wonderlik, maar wat as die groep tekens wat volg op die eerste streep 'n ander aantal karakters bevat? Hmm... dit kan dalk 'n probleem wees:

    Soos jy in die skermkiekie hierbo sien, werk die formule perfek vir rye 1 en 2. In rye 4 en 5 is die tweede groep bevat 4 karakters, maar slegs die eerste 3 karakters word teruggestuur. In rye 6 en 7 is daar net 2 karakters in die tweede groep, en daarom gee ons Excel Search-formule 'n streep wat daarop volg.

    As jy alle karakters tussen die 1ste en 2de voorkoms wou terugstuur. van 'n sekere karakter (streep in hierdie voorbeeld), hoe sal jy voortgaan? Hier is die antwoord:

    =MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)

    Vir 'n beter begrip van hierdie MID-formule, kom ons ondersoek sy argumente een vir een:

    • 1ste argument (teks). Dit is die teksstring wat die karakters bevat wat jy wil onttrek, sel A2 in hierdie voorbeeld.
    • 2de argument (begin_posisie). Spesifiseer die posisie van die eerste karakter wat jy wil onttrek. Jy gebruik die FIND-funksie om die eerste streep in die string op te spoor en voeg 1 bydaardie waarde omdat jy wil begin met die karakter wat op die streep volg: FIND("-",A2)+1.
    • 3de argument (getal_tekens). Spesifiseer die aantal karakters wat jy wil terugstuur. In ons formule is dit die moeilikste deel. Jy gebruik twee FIND (of SOEK) funksies, een bepaal die posisie van die eerste streep: FIND("-",A2). En die ander gee die posisie van die tweede streep terug: FIND("-", A2, FIND("-",A2)+1). Dan trek jy eersgenoemde van laasgenoemde af, en trek dan 1 af omdat jy nie een van die strepies wil insluit nie. As gevolg hiervan, sal jy die aantal karakters tussen die 1ste en 2de strepies kry, wat presies is waarna ons soek. So, jy voer daardie waarde na die num_chars-argument van die MID-funksie.

    Op 'n soortgelyke wyse kan jy 3 karakters na die 2de streep terugstuur:

    =MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)

    Of trek al die karakters tussen die 2de en 3de strepies uit:

    =MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)

    Voorbeeld 4. Soek teks tussen hakies

    Gestel jy het 'n lang teksstring in kolom A en jy wil net die teks ingesluit in (hakies) vind en onttrek.

    Om dit te doen, sal jy die MID-funksie nodig hê om die verlangde aantal karakters van terug te gee. 'n string, en of Excel FIND of SEARCH funksie om te bepaal waar om te begin en hoeveel karakters om te onttrek.

    =MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("(",A2)-1)

    Die logika van hierdie formule is soortgelyk aan dié wat ons in die vorige bespreek het voorbeeld. En

    Michael Brown is 'n toegewyde tegnologie-entoesias met 'n passie om komplekse prosesse te vereenvoudig deur sagteware-instrumente te gebruik. Met meer as 'n dekade se ondervinding in die tegnologiebedryf, het hy sy vaardighede in Microsoft Excel en Outlook, sowel as Google Sheets en Docs, opgeskerp. Michael se blog is toegewy daaraan om sy kennis en kundigheid met ander te deel, en verskaf maklik-om-te volg wenke en tutoriale vir die verbetering van produktiwiteit en doeltreffendheid. Of jy nou 'n ervare professionele persoon of 'n beginner is, Michael se blog bied waardevolle insigte en praktiese raad om die meeste uit hierdie noodsaaklike sagteware-nutsmiddels te kry.