Många textproblem i Excel handlar egentligen om att plocka ut en del av en cell: förnamnet ur ett fullständigt namn, domänen ur en e-postadress eller gatunamnet ur en adress. Funktionerna för att klippa ut text behöver veta hur många tecken de ska ta, eller var de ska börja. Står mellanslaget på plats 5 i en cell och på plats 9 i nästa fungerar inte ett fast tal. Då måste Excel först räkna ut var tecknet står.
Det är vad SÖK och HITTA gör. De letar upp ett tecken eller ett ord i en textsträng och returnerar positionen som ett tal. I den här artikeln går vi igenom skillnaden mellan funktionerna och hur du hittar ett mellanslag eller ett @. Sedan visar vi hur du kombinerar positionen med VÄNSTER, HÖGER och EXTEXT för att dela upp texten. Du får också se hur du hittar andra eller tredje förekomsten av ett tecken, hur du kontrollerar om en cell innehåller en viss text och vad du gör när sökningen inte hittar något.
Vad gör SÖK och HITTA?
SÖK och HITTA gör i grunden samma sak. De letar efter en text inuti en annan text och returnerar positionen där träffen börjar, räknat i tecken från vänster. Syntaxen är också densamma:
=SÖK(sök; inom; [startpos])
=HITTA(sök; inom; [startpos])
- sök är tecknet eller texten du letar efter, till exempel
" "eller"@". Skriv texten inom citattecken eller hänvisa till en cell. - inom är texten som ska genomsökas, oftast en cellreferens som
A2. - startpos är valfri och anger vid vilket tecken sökningen ska börja. Utelämnar du den börjar sökningen på tecken 1. Resultatet räknas ändå alltid från textens första tecken, inte från startpositionen.
Om texten inte finns returnerar båda funktionerna felet #VÄRDEFEL!. Hur du hanterar det tar vi upp längre ner i artikeln.
Skillnaden: skiftläge och jokertecken
Två saker skiljer funktionerna åt:
- SÖK bryr sig inte om VERSALER och gemener, så ”e” och ”E” räknas som samma tecken. SÖK kan också använda jokertecken.
?står för ett valfritt tecken och*för valfritt antal tecken. Om du vill söka efter ett riktigt frågetecken eller en asterisk sätter du ett tilde framför:=SÖK("~?";A2). - HITTA är skiftlägeskänslig, så ”e” och ”E” räknas som olika tecken. HITTA saknar jokertecken, och
?och*tolkas som vanliga tecken.
I exemplet nedan söker båda funktionerna efter samma tecken i samma text. När A2 innehåller ”Excelkungen” och vi letar efter ett litet ”e” svarar SÖK 1, eftersom det stora E:et först i ordet räknas som en träff. HITTA hoppar över det stora E:et och svarar 4. Samma sak händer med ”Sundsvall”: SÖK hittar det stora S:et på plats 1, medan HITTA letar efter ett litet s och hittar det på plats 5.

Jokertecknen fungerar på samma sätt. =SÖK("k?ng";A2) på ”Excelkungen” returnerar 6 eftersom ? matchar ”u”. =HITTA("k?ng";A2) letar i stället efter just tecknen ”k?ng” och ger därför #VÄRDEFEL!.
Tumregeln är enkel. Använd SÖK i de flesta fall, särskilt när du letar efter mellanslag, skiljetecken eller ord där skiftläget inte spelar någon roll. Välj HITTA när skillnaden mellan stor och liten bokstav faktiskt betyder något, till exempel i artikelkoder där ”AB” och ”ab” är olika saker.
Hitta positionen för ett mellanslag eller @
Det vanligaste skälet att använda SÖK är att hitta en avgränsare, alltså tecknet som skiljer två delar av en text åt. I ett fullständigt namn är det oftast mellanslaget mellan för- och efternamn. I en e-postadress är det @-tecknet mellan användarnamnet och domänen.
För att hitta mellanslaget i namnet i A2 skriver du:
=SÖK(" ";A2)
Mellan citattecknen står ett enda mellanslag. Om A2 innehåller Anna Lindqvist blir svaret 5. Excel räknar från vänster och börjar på 1: A-n-n-a är tecken 1–4 och mellanslaget är tecken 5. Även mellanslag räknas som tecken.
E-postadressen fungerar på samma sätt, men nu letar du efter @:
=SÖK("@";D2)
För anna.lindqvist@foretag.se blir resultatet 15. Användarnamnet anna.lindqvist är 14 tecken långt, punkten inräknad, och @ står direkt efter.
I exemplet nedan står formlerna i kolumn B och E. Varje rad ger ett eget tal, eftersom mellanslaget och @-tecknet hamnar på olika ställen beroende på hur långt förnamnet eller användarnamnet är.

Talet som SÖK ger tillbaka är alltså ingen text. Det är en position, och den säger två saker. Allt före positionen är första delen av texten, och antalet tecken i den delen är positionen minus 1. Allt efter positionen är andra delen. Det är därför SÖK nästan alltid används tillsammans med andra textfunktioner. Positionen talar om var texten ska klippas, och VÄNSTER, HÖGER eller EXTEXT gör själva klippet. Hur det går till visas i nästa avsnitt.
Om du vill att versaler och gemener ska spela roll kan du byta SÖK mot HITTA, till exempel =HITTA("@";D2). För mellanslag och @ blir resultatet detsamma, eftersom de tecknen inte har någon versal eller gemen form.
Kombinera SÖK och HITTA med VÄNSTER, HÖGER och EXTEXT
Positionen från SÖK eller HITTA blir användbar när du skickar in den i en annan textfunktion. VÄNSTER, HÖGER och EXTEXT behöver veta hur många tecken de ska ta, eller var de ska börja. Det talet räknar SÖK ut åt dig, och formeln fungerar då även när namnen och adresserna är olika långa. En genomgång av själva textfunktionerna finns i artikeln Effektiv texthantering i Excel: Viktiga formler.
Förnamn: allt till vänster om mellanslaget
Om A2 innehåller Anna Lindberg returnerar =SÖK(" ";A2) talet 5, eftersom mellanslaget är det femte tecknet. Förnamnet består däremot bara av fyra tecken. Därför drar du bort 1:
=VÄNSTER(A2;SÖK(" ";A2)-1)
Utan -1 skulle VÄNSTER ta med mellanslaget, och resultatet blir ”Anna ” med ett mellanslag på slutet. Det syns inte på skärmen, men det kan ställa till det senare när du jämför eller slår upp värden.
Efternamn: allt till höger om mellanslaget
HÖGER räknar från slutet av texten. Därför behöver du veta hur många tecken som står efter mellanslaget. Det får du genom att ta hela längden minus mellanslagets position:
=HÖGER(A2;LÄNGD(A2)-SÖK(" ";A2))
Anna Lindberg har 13 tecken och mellanslaget står på plats 5. 13 − 5 = 8, vilket är exakt längden på Lindberg. Här behövs ingen justering med 1, eftersom mellanslaget redan ingår i de fem tecken som dras bort.
Domän ur en e-postadress med EXTEXT
EXTEXT tar ut text från en valfri startposition. Domänen börjar på tecknet direkt efter @, så du lägger till 1 till positionen som SÖK returnerar:
=EXTEXT(E2;SÖK("@";E2)+1;LÄNGD(E2))
Det tredje argumentet anger hur många tecken som ska tas. Du behöver inte räkna fram det exakt. LÄNGD(E2) är alltid tillräckligt stort, och EXTEXT stannar ändå när texten tar slut. I anna.lindberg@foretag.se står @ på plats 14, så EXTEXT börjar på plats 15 och returnerar foretag.se. Vill du i stället ha delen före @ fungerar samma princip som för förnamnet: =VÄNSTER(E2;SÖK("@";E2)-1).
I exemplet nedan står namnen i kolumn A och e-postadresserna i kolumn E. Formlerna i B, C och F är desamma på varje rad, trots att texterna är olika långa.

Tumregeln för +1 och −1
- −1 när du vill ha texten före tecknet. Positionen pekar på själva tecknet, och det ska inte följa med.
- +1 när du vill börja efter tecknet, till exempel som startposition i EXTEXT.
- Ingen justering när du räknar med
LÄNGD(...)-SÖK(...)i HÖGER, eftersom tecknet redan räknas bort.
Allt detta fungerar likadant med HITTA om du behöver skilja på versaler och gemener. Om formeln ger ett oväntat resultat trots rätt uppbyggnad kan det bero på osynliga tecken i cellen. Läs mer i Rensa bort radbrytningar, dolda tecken och extra mellanslag i Excel.
Formler passar bäst när källdatan ändras och resultatet ska uppdateras av sig själv. Ska du bara dela upp en lista en gång kan det gå snabbare att dela upp text i kolumner med Excels inbyggda verktyg. Och när delarna är utplockade kan du sätta ihop dem i ny ordning, till exempel Lindberg, Anna. Det beskrivs i Slå ihop text från flera celler: TEXTJOIN, SAMMANFOGA och &.
Hitta andra eller tredje förekomsten av ett tecken
SÖK och HITTA stannar vid den första träffen. I en adress som Storgatan 12 Malmö finns två mellanslag, och om du vill ha ut ortnamnet behöver du positionen för det andra. Det finns två sätt att komma åt det.
Nästla SÖK i startpositionen
Det tredje argumentet, startpositionen, styr var sökningen börjar. Låt en inre SÖK hitta det första mellanslaget och starta den yttre sökningen ett tecken efter det:
=SÖK(" ";A2;SÖK(" ";A2)+1)
Den inre delen ger 10 för Storgatan 12 Malmö. Med +1 börjar den yttre sökningen på tecken 11, alltså efter det första mellanslaget, och hittar nästa på position 13. Utan +1 skulle den yttre sökningen börja på själva mellanslaget och ge 10 igen.
För det tredje mellanslaget nästlar du ett steg till:
=SÖK(" ";A2;SÖK(" ";A2;SÖK(" ";A2)+1)+1)
Det fungerar, men formeln blir svår att läsa ju fler förekomster du behöver gå förbi.
Märk ut förekomsten med BYT.UT
BYT.UT har ett fjärde argument som anger vilken förekomst som ska bytas ut. Byt ut just det n:te mellanslaget mot ett tecken som inte finns i texten, till exempel #, och sök sedan efter det tecknet:
=SÖK("#";BYT.UT(A2;" ";"#";3))
Den här formeln ger positionen för det tredje mellanslaget. Byt 3 mot 2, 4 eller vilket tal du vill. Formeln blir lika lång oavsett vilken förekomst du letar efter.
Plocka ut sista ordet
Adresser har olika många ord, så du vet inte i förväg vilket mellanslag som är det sista. Antalet mellanslag kan du räkna fram genom att jämföra textens längd med och utan mellanslag:
LÄNGD(A2)-LÄNGD(BYT.UT(A2;" ";""))
Skicka in det talet som förekomst i BYT.UT, så markeras alltid det sista mellanslaget. Sedan tar HÖGER allt som står efter det:
=HÖGER(A2;LÄNGD(A2)-SÖK("#";BYT.UT(A2;" ";"#";LÄNGD(A2)-LÄNGD(BYT.UT(A2;" ";"")))))
I exemplet nedan visar kolumn B positionen för det andra mellanslaget med den nästlade SÖK-formeln. Kolumn C hämtar ortnamnet med BYT.UT-metoden, oavsett om adressen består av tre, fyra eller fem ord.

Metoden räknar varje mellanslag. Står det ett extra mellanslag sist i cellen blir resultatet tomt, så se till att texten är rensad innan du använder formeln.
💡 Ytterligare läsning
När du väl hittat rätt position i cellen kan nästa steg vara att faktiskt ändra innehållet, och då är det bra att känna till skillnaden mellan ERSÄTT eller BYT.UT.
Kontrollera om en cell innehåller en viss text
Ofta vill du inte veta var texten står, bara om den finns i cellen. Det kan gälla att markera alla ordrader som innehåller ”retur”, alla e-postadresser från en viss domän eller alla produkter med ”eko” i namnet. Då använder du samma SÖK som tidigare och ser bara efter om den ger ett tal eller ett fel.
ÄRTAL och SÖK ger SANT eller FALSKT
När SÖK hittar texten returnerar den en position, alltså ett tal. När texten saknas blir resultatet #VÄRDEFEL!. ÄRTAL gör om det till ett tydligt ja eller nej:
=ÄRTAL(SÖK("retur";A2))
Formeln ger SANT om ordet ”retur” finns någonstans i A2 och FALSKT om det inte gör det. Eftersom SÖK inte bryr sig om skiftläge räknas ”Retur”, ”RETUR” och ”returnerad” som träffar. Ska stora och små bokstäver spela roll byter du till HITTA:
=ÄRTAL(HITTA("SE";A2))
Den hittar ”SE” men inte ”se”, vilket kan vara användbart för landskoder eller artikelnummer.
Returnera Ja/Nej med OM
SANT och FALSKT duger bra i filter och villkorsstyrd formatering. Vill du ha en läsbar text i kolumnen lägger du formeln i en OM:
=OM(ÄRTAL(SÖK("retur";A2));"Ja";"Nej")
Du kan förstås returnera vad som helst i stället för Ja och Nej, till exempel en kategori, en tom sträng "" eller ett värde från en annan cell.
Det är praktiskt att lägga söktexten i en egen cell i stället för att skriva in den i formeln. Står söktexten i E1 skriver du:
=OM(ÄRTAL(SÖK($E$1;A2));"Ja";"Nej")
Då kan du ändra vad du letar efter utan att röra formlerna. Tänk bara på att en tom E1 ger Ja på varje rad, eftersom SÖK med tom söktext returnerar startpositionen 1.
Leta efter flera ord samtidigt
Med ELLER kontrollerar du om något av flera ord finns i cellen:
=OM(ELLER(ÄRTAL(SÖK("retur";A2));ÄRTAL(SÖK("reklamation";A2)));"Ja";"Nej")
Byter du ELLER mot OCH måste båda orden finnas med för att resultatet ska bli Ja.
Se upp för delträffar
SÖK letar efter tecknen var som helst i cellen, inte efter hela ord. En sökning på ”eko” ger alltså träff på både ”Eko kaffe” och ”Ekonomipärm”. Vill du bara träffa ordet i sin helhet kan du lägga till mellanslag runt både söktexten och cellens innehåll:
=ÄRTAL(SÖK(" eko ";" "&A2&" "))
Mellanslagen runt A2 gör att ordet hittas även när det står först eller sist i cellen. Ord som följs av komma eller punkt fångas däremot inte med den här metoden.
Därför hittar SÖK och HITTA inte texten
Ibland ger formeln ett felvärde eller fel position trots att tecknet syns i cellen. Oftast beror det på en av fyra saker: tecknet finns faktiskt inte där, skiftläget stämmer inte, cellen innehåller osynliga tecken, eller det du ser är inte det som är lagrat i cellen.
#VÄRDEFEL! när tecknet saknas
Om SÖK eller HITTA inte hittar det du letar efter returneras #VÄRDEFEL!. Samma fel får du om startpositionen är mindre än 1 eller större än textens längd. I en lista med namn räcker det att en enda cell saknar mellanslag, till exempel ”Madonna”, för att formeln ska ge fel på den raden.
Med OMFEL bestämmer du själv vad som ska visas i stället:
=OMFEL(SÖK(" ";A2);0)returnerar 0 om mellanslag saknas.=OMFEL(VÄNSTER(A2;SÖK(" ";A2)-1);A2)plockar ut förnamnet och returnerar hela cellen om den bara innehåller ett ord.
Lägg OMFEL ytterst, runt hela formeln. Då fångas felet oavsett om det uppstår i SÖK eller i VÄNSTER, HÖGER eller EXTEXT. Fler varianter av de funktionerna hittar du i Effektiv texthantering i Excel: Viktiga formler.
Var försiktig med att dölja alla fel. Ett tomt resultat kan dölja att datat ser annorlunda ut än du tror, så kontrollera gärna först vilka rader som faktiskt ger fel.
Skiftläget stämmer inte med HITTA
HITTA skiljer på versaler och gemener. =HITTA("ab";"AB-123") ger #VÄRDEFEL!, medan =SÖK("ab";"AB-123") returnerar 1. Om du inte uttryckligen behöver skilja på versaler och gemener är SÖK oftast det säkrare valet.
Med SÖK kan du i stället råka ut för motsatt problem. Frågetecken och asterisk fungerar som jokertecken, så =SÖK("?";A2) hittar första tecknet i vilken text som helst. Skriv ~? eller ~* när du letar efter själva tecknet.
Tom sökcell ger alltid 1
Om söktexten hämtas från en cell som är tom returnerar både SÖK och HITTA 1, eller startpositionen om du har angett en. Formeln ser då ut att fungera men ger fel svar. Om du bygger en sökruta kan du gardera dig med =OM(D1="";"";SÖK(D1;A2)).
Osynliga tecken i cellen
Text som klistrats in från webbsidor, PDF-filer eller affärssystem innehåller ofta tecken som inte syns. De vanligaste är:
- Extra mellanslag, till exempel ett inledande mellanslag. Då hittar
=SÖK(" ";A2)position 1 i stället för mellanslaget mellan för- och efternamn.=RENSA(A2)tar bort inledande och avslutande mellanslag och gör flera mellanslag i rad till ett. - Hårda mellanslag med teckenkod 160. De ser ut som vanliga mellanslag men matchas inte av
" ", och RENSA tar inte bort dem. Sök efter dem med=SÖK(TECKENKOD(160);A2)eller byt ut dem med=BYT.UT(A2;TECKENKOD(160);" "). - Radbrytningar med teckenkod 10, som skapas med Alt+Enter eller följer med vid import. Du hittar dem med
=SÖK(TECKENKOD(10);A2), och STÄDA tar bort dem.
Ett snabbt sätt att avslöja dolda tecken är att jämföra =LÄNGD(A2) med antalet tecken du ser. Med =KOD(EXTEXT(A2;n;1)) kan du sedan ta reda på vilket tecken som står på position n. Fler tekniker beskrivs i artikeln om dolda tecken som stör sökningen.
Det som visas är inte det som lagras
Datum och formaterade tal lagras som tal. Ett datum som visas som 2024-03-15 är egentligen talet 45366, så =SÖK("-";A2) ger #VÄRDEFEL!. På samma sätt söker formeln i det lagrade värdet och inte i ett visat tusentalsavgränsande mellanslag. Gör om värdet till text först, till exempel med =SÖK("-";TEXT(A2;"ÅÅÅÅ-MM-DD")).
Har du många rader med oregelbunden text kan det vara enklare att Dela upp text i kolumner i Excel med inbyggda verktyg, eftersom de klarar rader som saknar avgränsare utan att ge fel. Om du vill foga ihop de rensade delarna efteråt beskrivs det i Slå ihop text från flera celler: TEXTJOIN, SAMMANFOGA och &.
Sammanfattning
SÖK och HITTA gör samma sak: de talar om på vilken position ett tecken eller ord står i en cell. Det talet använder du sedan i andra formler.
- Välj SÖK när det inte spelar någon roll om texten står med versaler eller gemener, eller när du behöver jokertecken som
*och?. I de flesta vardagsfall, som att hitta ett mellanslag eller ett @, är SÖK det enklaste valet. - Välj HITTA när skiftläget är viktigt, till exempel för att skilja ”AB” från ”ab” i en artikelkod.
Positionen blir användbar först när du kombinerar den med textfunktionerna. Med VÄNSTER tar du ut allt före tecknet, med HÖGER och LÄNGD allt efter det och med EXTEXT en bit i mitten. Behöver du nästa förekomst anger du en startposition, och för den sista förekomsten tar du hjälp av BYT.UT. Vill du bara veta om texten finns lägger du SÖK i ÄRTAL och OM. Fånga #VÄRDEFEL! med OMFEL när tecknet saknas.
Fler textformler hittar du i Effektiv texthantering i Excel: Viktiga formler. Ska du bara dela upp en kolumn en gång kan guiden Dela upp text i kolumner i Excel gå snabbare än formler. Hittar formlerna inte texten fast den syns i cellen, läs Rensa bort radbrytningar, dolda tecken och extra mellanslag i Excel.
När du har delat upp texten vill du ofta sätta ihop delarna på ett nytt sätt, till exempel som ”Efternamn, Förnamn”. Hur det går till visar artikeln Slå ihop text från flera celler: TEXTJOIN, SAMMANFOGA och &.