Excel FIND- og SEARCH-funktioner med eksempler på formler

  • Del Dette
Michael Brown

Vejledningen forklarer syntaksen for Excel-funktionerne FIND og SEARCH og giver eksempler på avancerede formler, der ikke er trivielle anvendelser.

I den sidste artikel behandlede vi det grundlæggende i Excel-dialogboksen Find og erstat. I mange situationer ønsker du imidlertid, at Excel automatisk skal finde og udtrække data fra andre celler baseret på dine kriterier. Lad os derfor se nærmere på, hvad Excel-søgefunktionerne har at tilbyde.

    Excel FIND-funktion

    FIND-funktionen i Excel bruges til at returnere positionen for et bestemt tegn eller en delstreng i en tekststreng.

    Syntaksen for Excel Find-funktionen er som følger:

    FIND(find_text, within_text, [start_num])

    De to første argumenter er obligatoriske, det sidste er valgfrit.

    • Find_tekst - det tegn eller den delstreng, du ønsker at finde.
    • Inden for_tekst - den tekststreng, der skal søges i. Normalt angives den som en cellehenvisning, men du kan også skrive strengen direkte i formlen.
    • Start_nummer - et valgfrit argument, der angiver, fra hvilket tegn søgningen skal starte. Hvis det udelades, starter søgningen fra det første tegn i within_text-strengen.

    Hvis FIND-funktionen ikke finder find_text-tegnet(erne), returneres en #VALUE! fejl.

    For eksempel kan formlen =FIND("d", "find") giver 4, fordi "d" er det 4. bogstav i ordet " finde ". Formlen =FIND("a", "find") returnerer en fejl, fordi der ikke er noget "a" i " finde ".

    Excel FIND-funktion - ting at huske!

    Hvis du vil bruge en FIND-formel korrekt i Excel, skal du huske på følgende enkle fakta:

    1. FIND-funktionen er er følsom over for store og små bogstaver Hvis du søger efter et match, der ikke tager hensyn til store og små bogstaver, skal du bruge funktionen SØG.
    2. FIND-funktionen i Excel giver ikke mulighed for at bruge jokertegn .
    3. Hvis argumentet find_text indeholder flere tegn, returnerer FIND-funktionen placeringen af første tegn F.eks. giver formlen FIND("ap", "happy") 2, fordi "a" er det andet bogstav i ordet "happy".
    4. Hvis within_text indeholder flere forekomster FIND("l", "hello") returnerer f.eks. 3, hvilket er placeringen af det første "l"-tegn i ordet "hello".
    5. Hvis find_text er en tom streng "", returnerer Excel FIND-formlen det første tegn i søgestrengen.
    6. Excel FIND-funktionen returnerer den #VALUE! fejl hvis en af følgende situationer opstår:
      • Find_text findes ikke i within_text.
      • Start_num indeholder flere tegn end within_text.
      • Start_num er 0 (nul) eller et negativt tal.

    Excel SEARCH-funktion

    SEARCH-funktionen i Excel ligner meget FIND, idet den også returnerer placeringen af en delstreng i en tekststreng. Dens syntaks og argumenter ligner dem for FIND:

    SEARCH(find_text, within_text, [start_num])

    I modsætning til FIND er funktionen SEARCH skift mellem store og små bogstaver og den tillader brug af jokertegn, som vist i følgende eksempel.

    Og her er et par grundlæggende Excel SØGNING formler:

    =SEARCH("marked", "supermarked") returnerer 6, fordi delstrengen "market" begynder ved det sjette tegn i ordet "supermarked".

    =SEARCH("e", "Excel") returnerer 1, fordi "e" er det første tegn i ordet "Excel", og der ses bort fra kasus.

    Ligesom FIND returnerer Excel's SEARCH-funktion fejlen #VALUE! hvis:

    • Værdien af find_text-argumentet er ikke fundet.
    • Argumentet start_num er større end længden af within_text.
    • Start_num er lig med eller mindre end nul.

    Længere nede i denne vejledning finder du et par eksempler på flere meningsfulde formler, der viser, hvordan du bruger SEARCH-funktionen i Excel-regneark.

    Som allerede nævnt er FIND- og SEARCH-funktionerne i Excel meget ens med hensyn til syntaks og anvendelsesmuligheder. Der er dog et par forskelle mellem dem.

    1. FIND med hensyn til store og små bogstaver vs. SEARCH uden hensyn til store og små bogstaver

    Den væsentligste forskel mellem Excel-funktionerne SEARCH og FIND er, at SEARCH ikke tager hensyn til store og små bogstaver, mens FIND tager hensyn til store og små bogstaver.

    F.eks. returnerer SEARCH("e", "Excel") 1, fordi den ignorerer kasus på "E", mens FIND("e", "Excel") returnerer 4, fordi den tager højde for kasus.

    2. Søg med wildcard-tegn

    I modsætning til FIND accepterer Excel SEARCH-funktionen wildcard-tegn i argumentet find_text:

    • Et spørgsmålstegn (?) svarer til ét tegn, og
    • En asterisk (*) passer til en hvilken som helst serie af tegn.

    For at se, hvordan det virker på rigtige data, kan du se følgende eksempel:

    Som du kan se på skærmbilledet ovenfor, returnerer formlen SEARCH("function*2013", A2) positionen for det første tegn ("f") i delstrengen, hvis den tekststreng, der henvises til i within_text-argumentet, indeholder både "function" og "2013", uanset hvor mange andre tegn der er imellem.

    Tip. Hvis du vil finde et spørgsmålstegn (?) eller en stjerne (*), skal du skrive en tilde (~) før det tilsvarende tegn.

    Eksempler på Excel FIND- og SEARCH-formler

    I praksis bruges Excel-funktionerne FIND og SEARCH sjældent alene. Typisk bruger du dem i kombination med andre funktioner som MID, LEFT eller RIGHT, og de følgende eksempler på formler viser nogle eksempler på brug i det virkelige liv.

    Eksempel 1. Find en streng, der går forud for eller følger efter et givet tegn

    Dette eksempel viser, hvordan du kan finde og udtrække alle tegn i en tekststreng til venstre eller højre for et bestemt tegn. For at gøre det lettere at forstå, kan du se på følgende eksempel.

    Antag, at du har en kolonne med navne (kolonne A), og at du ønsker at trække fornavn og efternavn ud i separate kolonner.

    For at få fat i fornavnet kan du bruge FIND (eller SEARCH) sammen med funktionen LEFT:

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

    eller

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

    Som du sikkert ved, returnerer Excel's LEFT-funktion det angivne antal tegn længst til venstre i en streng. Og du bruger FIND-funktionen til at bestemme placeringen af et mellemrum (" "), så LEFT-funktionen ved, hvor mange tegn den skal udtrække. Derefter trækker du 1 fra mellemrummets position, fordi du ikke ønsker, at den returnerede værdi skal indeholde mellemrummet.

    For at udtrække efternavnet skal du bruge kombinationen af funktionerne RIGHT, FIND / SEARCH og LEN. LEN-funktionen er nødvendig for at få det samlede antal tegn i strengen, hvorfra du trækker mellemrumsplaceringerne fra:

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

    eller

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

    Følgende skærmbillede viser resultatet:

    For mere komplekse scenarier, f.eks. udtrækning af et mellemnavn eller opdeling af navne med suffikser, se Sådan opdeles celler i Excel ved hjælp af formler.

    Eksempel 2. Find den N-te forekomst af et givet tegn i en tekststreng

    Antag, at du har nogle tekststrenge i kolonne A, f.eks. en liste over SKU'er, og du vil finde positionen for den 2. i en streng. Følgende formel fungerer fint:

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

    De to første argumenter er nemme at fortolke: Find en bindestreg ("-") i celle A2. I det tredje argument (start_num) indlejrer du en anden FIND-funktion, der fortæller Excel, at den skal begynde at søge med det tegn, der kommer lige efter den første forekomst af bindestreg (FIND("-",A2)+1).

    For at returnere positionen for 3. forekomst , du indlejrer ovenstående formel i start_num-argumentet i en anden FIND-funktion og tilføjer 2 til den returnerede værdi:

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

    En anden og sandsynligvis enklere måde at finde den N-te forekomst af et givet tegn på er ved at bruge Excel-funktionen FIND i kombination med CHAR og SUBSTITUTE:

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

    Hvor "-" er det pågældende tegn, og "3" er den N-te forekomst, du vil finde.

    I ovenstående formel erstatter SUBSTITUTE-funktionen den tredje forekomst af bindestreg ("-") med CHAR(1), som er det ikke-printbare "Start of Heading"-tegn i ASCII-systemet. I stedet for CHAR(1) kan du bruge et hvilket som helst andet ikke-printbart tegn fra 1 til 31. Derefter returnerer FIND-funktionen positionen af det pågældende tegn i tekststrengen. Den generelle formel er således som følger:

    FIND(CHAR(1),SUBSTITUTE( celle , karakter ,CHAR(1), N-te forekomst ))

    Ved første øjekast kan det se ud til, at ovenstående formler ikke har nogen praktisk værdi, men det næste eksempel viser, hvor nyttige de er til at løse virkelige opgaver.

    Bemærk: Husk, at Excel FIND-funktionen er stregfølsom. I vores eksempel gør det ingen forskel, men hvis du arbejder med bogstaver og vil have en skift mellem store og små bogstaver bruge funktionen SØG i stedet for FIND.

    Eksempel 3. Udtrække N tegn efter et bestemt tegn

    Hvis du vil finde en delstreng af en given længde i en tekststreng, skal du bruge Excel FIND eller Excel SEARCH i kombination med MID-funktionen. Det følgende eksempel viser, hvordan du kan bruge sådanne formler i praksis.

    Hvis vi antager, at du i vores liste over SKU'er vil finde de første 3 tegn efter den første bindestreg og trække dem i en anden kolonne.

    Hvis gruppen af tegn, der går forud for den første bindestreg, altid indeholder det samme antal elementer (f.eks. 2 tegn), er dette en triviel opgave. Du kan bruge MID-funktionen til at returnere 3 tegn fra en streng, startende ved position 4 (og springe de første 2 tegn og en bindestreg over):

    =MID(A2, 4, 3)

    Oversat til dansk siger formlen: "Se i celle A2, begynd at udtrække fra tegn 4 og returner 3 tegn".

    I virkelige regneark kan den delstreng, du skal udtrække, imidlertid starte hvor som helst i tekststrengen. I vores eksempel ved du måske ikke, hvor mange tegn der går forud for den første bindestreg. For at klare denne udfordring skal du bruge FIND-funktionen til at bestemme startpunktet for den delstreng, du vil udtrække.

    FIND-formlen til at returnere positionen for den første streg er som følger:

    =FIND("-",A2)

    Da du vil starte med det tegn, der følger efter bindestregen, skal du tilføje 1 til den returnerede værdi og indlejre ovenstående funktion i det andet argument (start_num) i MID-funktionen:

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

    I dette scenario fungerer Excel SEARCH-funktionen lige så godt:

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

    Det er fint, men hvad nu hvis gruppen af tegn efter den første bindestreg indeholder et andet antal tegn? Hmm... det kan være et problem:

    Som du kan se på ovenstående skærmbillede, fungerer formlen perfekt for række 1 og 2. I række 4 og 5 indeholder den anden gruppe 4 tegn, men kun de første 3 tegn returneres. I række 6 og 7 er der kun 2 tegn i den anden gruppe, og derfor returnerer vores Excel-søgeformel en streg efter dem.

    Hvis du ønsker at vende tilbage alle tegn mellem den 1. og 2. forekomst af et bestemt tegn (bindestreg i dette eksempel), hvordan vil du så gå frem? Her er svaret:

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

    For at få en bedre forståelse af denne MID-formel skal vi undersøge dens argumenter et for et:

    • 1. argument (text). Det er tekststrengen, der indeholder de tegn, du vil udtrække, celle A2 i dette eksempel.
    • Andet argument (start_position). Angiver positionen for det første tegn, du vil udtrække. Du bruger FIND-funktionen til at finde den første bindestreg i strengen og lægger 1 til denne værdi, fordi du vil starte med det tegn, der følger efter bindestregen: FIND("-",A2)+1.
    • 3. argument (num_chars). Angiver det antal tegn, du ønsker at returnere. I vores formel er dette den vanskeligste del. Du bruger to FIND (eller SEARCH) funktioner, den ene bestemmer placeringen af den første bindestreg: FIND("-",A2). Og den anden returnerer placeringen af den anden bindestreg: FIND("-", A2, FIND("-",A2)+1). Derefter trækker du førstnævnte fra sidstnævnte, og derefter trækker du 1 fra, fordi du ikke ønsker atsom du får antallet af tegn mellem det første og andet bindestreg, hvilket er præcis, hvad vi leder efter. Du indfører denne værdi i MID-funktionens argument num_chars.

    På samme måde kan du returnere 3 tegn efter den anden bindestreg:

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

    Eller uddrag alle tegn mellem det andet og tredje bindestreg:

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

    Eksempel 4. Find tekst mellem parenteser

    Antag, at du har en lang tekststreng i kolonne A, og at du kun vil finde og udtrække den tekst, der er omgivet af (parenteser).

    For at gøre dette skal du bruge MID-funktionen til at returnere det ønskede antal tegn fra en streng og enten Excel FIND- eller SEARCH-funktionen til at bestemme, hvor du skal starte og hvor mange tegn du skal udtrække.

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

    Logikken i denne formel ligner den, vi diskuterede i det foregående eksempel. Og igen er den mest komplekse del det sidste argument, der fortæller formlen, hvor mange tegn den skal returnere. Det temmelig lange udtryk i num_chars-argumentet gør følgende:

    • Først skal du finde placeringen af den afsluttende parentes: SEARCH(")",A2)
    • Herefter skal du finde placeringen af den indledende parentes: SEARCH("((",A2)
    • Derefter beregner du forskellen mellem placeringen af den lukkende og den åbnende parentes og trækker 1 fra dette tal, fordi du ikke ønsker nogen af parenteserne i resultatet: SEARCH(")",A2)-SEARCH("("(",A2))-1

    Der er naturligvis ikke noget, der forhindrer dig i at bruge Excel-funktionen FIND i stedet for SEARCH, da det ikke gør nogen forskel i dette eksempel, om der er forskel på store eller små bogstaver.

    Forhåbentlig har denne vejledning kastet lidt lys over, hvordan man bruger SEARCH- og FIND-funktionerne i Excel. I den næste vejledning vil vi se nærmere på REPLACE-funktionen, så bliv endelig hængende. Tak for læsningen!

    Download arbejdsbog til øvelser

    Eksempler på formler for FIND og SEARCH

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.