Excel-hjælp til de små opgaver

Hvis celle indeholder tekst i Excel: HVIS med SØG og ER.TAL

Tjek om en celle indeholder et ord i Excel med HVIS, ER.TAL og SØG, eller tæl og læg sammen med jokertegn. Med en øvelse, du kan prøve her.

Af Nicolaj, stifter af ExcelOpgaver · · 3 min. læsning

Vil du have HVIS til at reagere, hvis en celle indeholder et bestemt ord i Excel, så skriv =HVIS(ER.TAL(SØG("udsalg";A2));"Nedsat";""). SØG finder ordet, og ER.TAL gør svaret om til SAND eller FALSK, som HVIS kan bruge. Det er ikke nok at skrive =HVIS(A2="*udsalg*";"Nedsat";""). Siden her viser, hvorfor, og hvad du bruger i stedet.

Hvis celle indeholder tekst i Excel: formlen trin for trin

Du har en liste over varer, hvor nogle har ordet udsalg i navnet. Du vil markere dem med Nedsat i kolonne B. Formlen er bygget af tre dele, og de er nemmest at forstå hver for sig.

Den første er SØG (SEARCH). Den leder efter en tekst inde i en anden tekst og giver placeringen af det første tegn. I "Sofa - udsalg" starter udsalg ved tegn nr. 8:

B4=SØG("udsalg";A4)
AB
1VarePlacering
2Spisebord UDSALG
3Lænestol
4Sofa - udsalg8
5Kontorstol

SØG finder udsalg som tegn nr. 8 i Sofa - udsalg. Teksten, du leder efter, står først.

Den anden del er, hvad SØG gør, når ordet ikke findes. Så giver den en fejl, ikke 0 eller tom tekst:

B3=SØG("udsalg";A3)
AB
1VarePlacering
2Spisebord UDSALG
3Lænestol#VÆRDI!
4Sofa - udsalg
5Kontorstol

Står ordet ikke i teksten, giver SØG en fejl. Lænestol indeholder ikke udsalg, så svaret er #VÆRDI!.

Det er her, ER.TAL (ISNUMBER) kommer ind. ER.TAL svarer SAND, hvis den får et tal, og FALSK, hvis den får noget andet, også en fejl. Pakker du SØG ind i ER.TAL, har du en test, der er sand, når ordet findes, og falsk, når det ikke gør. Den sidste del er HVIS, der vælger, hvad der skal stå:

B4=HVIS(ER.TAL(SØG("udsalg";A4));"Nedsat";"")
AB
1VareStatus
2Spisebord UDSALG
3Lænestol
4Sofa - udsalgNedsat
5Kontorstol

ER.TAL gør placeringen til SAND, og HVIS vælger teksten. SØG ser ikke forskel på store og små bogstaver, så det virker også på UDSALG.

Opgaven Tjek om en tekst indeholder et ord træner præcis den kombination. Prøv selv. Varelisten er den samme, og formlen skal kunne kopieres ned til alle fire rækker:

Prøv selv

Find udsalgsvarerne

Skriv i B2 en formel, der giver Nedsat, hvis varenavnet i A2 indeholder udsalg, og ellers lader cellen stå tom. Den skal kunne kopieres ned.

B2
ABCDEF
1Vare Status
2Spisebord UDSALG
3Lænestol
4Sofa - udsalg
5Kontorstol
6
7
8

Klik i B2, og skriv din formel.

Lægger du mærke til, at UDSALG med stort i første række også bliver fundet? SØG er ligeglad med store og små bogstaver, så det passer til de fleste lister.

Hvorfor jokertegn ikke virker i HVIS

Mange prøver først =HVIS(A2="*udsalg*";"Nedsat";""). De ved, at stjernen står for hvad som helst, så ordet burde kunne stå hvor som helst. Men stjernen er et jokertegn i nogle funktioner, ikke i lighedstegnet. Et lighedstegn sammenligner to ting præcist. Her sammenligner det teksten i A4 med teksten *udsalg* med stjerner, og de to er ikke ens:

B4=HVIS(A4="*udsalg*";"Nedsat";"")
AB
1VareStatus
2Spisebord UDSALG
3Lænestol
4Sofa - udsalg
5Kontorstol

Her virker jokertegnet ikke. HVIS sammenligner med teksten *udsalg* bogstaveligt, og den findes ikke i cellen. Cellen står tom.

Formlen giver derfor ikke en fejl. Den giver bare det forkerte svar, og det er det farlige: Du ser en tom kolonne og tror, at ingen varer er nedsat. Hold derfor øje med det, hvis en formel med jokertegn aldrig finder noget.

Tæl eller læg sammen med jokertegn

Jokertegn virker i funktioner, der har et kriterium som argument, som TÆL.HVIS og SUM.HVIS. Her står stjernen for al tekst før og efter ordet. =TÆL.HVIS(A2:A5;"*udsalg*") tæller de celler, hvor udsalg står et sted i teksten:

D1=TÆL.HVIS(A2:A5;"*udsalg*")
ABCD
1VareStatusAntal udsalg2
2Spisebord UDSALG
3Lænestol
4Sofa - udsalg
5Kontorstol

I TÆL.HVIS virker stjernen som jokertegn. Formlen tæller de to celler, hvor udsalg står et sted i teksten.

Prøv selv:

Prøv selv

Tæl udsalgsvarerne

Skriv i D1 en formel, der tæller, hvor mange varenavne i A2:A5 der indeholder udsalg.

D1
ABCDEF
1Vare Status Antal udsalg
2Spisebord UDSALG
3Lænestol
4Sofa - udsalg
5Kontorstol
6
7
8

Klik i D1, og skriv din formel.

Opgaven Tæl med et jokertegn går mere i dybden. SUM.HVIS virker på samme måde, når du vil lægge noget sammen for de rækker, hvor ordet indgår:

D2=SUM.HVIS(A2:A5;"*udsalg*";B2:B5)
ABCD
1VarePrisPris på udsalg
2Spisebord UDSALG59999998
3Lænestol2499
4Sofa - udsalg3999
5Kontorstol1299

SUM.HVIS med stjerner lægger priserne sammen for de varer, hvor udsalg indgår i navnet: 5.999 plus 3.999.

Prøv det i opgaven SUM.HVIS med et jokertegn.

Store og små bogstaver

SØG ser ikke forskel på store og små bogstaver. Det gør FIND. FIND bruges, når forskellen har en betydning, fx i koder, hvor A og a er to forskellige ting. Leder FIND efter udsalg med lille u, finder den ikke UDSALG med stort:

B2=ER.TAL(FIND("udsalg";A2))
AB
1VareFindes?
2Spisebord UDSALGFALSK

FIND skelner mellem store og små bogstaver. UDSALG med stort er ikke det samme som udsalg, så ER.TAL svarer FALSK.

Hvordan SØG og FIND ellers virker, og hvordan du søger i hele arket med Ctrl+F, står på siden om at finde tekst i en celle i Excel.

Pas på delord

SØG finder tekststykker og ikke hele ord. Leder du efter sal, finder den også udsalg, fordi sal står inde i det. Skal kun hele ord tælle, sætter du et mellemrum foran og efter ordet, både i det, du leder efter, og om cellen: =ER.TAL(SØG(" sal ";" "&A2&" ")). Mellemrummene om A2 sørger for, at ordet også bliver fundet, når det står først eller sidst i teksten. Går der skilletegn som komma og bindestreg ind i teksten, skal de med i overvejelsen, for så står ordet ikke altid mellem to mellemrum.

Flere ord

Vil du markere varer, der indeholder et af flere ord, kan du lade ELLER (OR) samle to tests. ELLER er sand, hvis mindst én af dem er sand:

B2=HVIS(ELLER(ER.TAL(SØG("udsalg";A2));ER.TAL(SØG("tilbud";A2)));"Nedsat";"")
AB
1VareStatus
2Reol - tilbudNedsat

ELLER lader to tests gælde på én gang. Reolen har ikke udsalg i navnet, men ordet tilbud, så den bliver også markeret.

Vil du kræve, at begge ord står i teksten, bruger du OG i stedet for ELLER. Har du mange ord, er det bedre at skrive dem i en liste i arket og tælle med en formel.

Prøv det i en opgave

Det at reagere på et ord midt i en tekst dukker op, hver gang en liste er skrevet i fri tekst. Prøv opgaven HVIS en celle indeholder et ord gratis. Du skriver formlen selv, og den bliver rettet med det samme.

Nicolaj

Om forfatteren

Nicolaj, stifter af ExcelOpgaver

Jeg er softwareudvikler og har bygget ExcelOpgaver fra bunden, også selve regnearket og den motor der regner formlerne ud. For at få det til at virke har jeg skullet forstå hver funktion helt ned i detaljen: hvordan LOPSLAG opfører sig når koden har et mellemrum for meget, hvorfor en dato i virkeligheden er et tal, og hvornår AFRUND giver et andet svar end talformatet.

Mere om Nicolaj

Øv det i opgaver

Opgaver i et rigtigt regneark, der bliver rettet med det samme.

Funktionssider

Ofte stillede spørgsmål

Hvordan tjekker jeg, om en celle indeholder et ord?

Skriv =ER.TAL(SØG("ord";A2)). Formlen giver SAND, hvis ordet står et sted i cellen, og FALSK, hvis det ikke gør.

Hvorfor virker =HVIS(A2="*ord*") ikke?

HVIS forstår ikke jokertegn, når du bruger lighedstegn. Den leder efter teksten *ord* bogstaveligt. Brug SØG og ER.TAL i stedet.

Hvordan tæller jeg celler, der indeholder et ord?

Brug TÆL.HVIS med stjerner om ordet, fx =TÆL.HVIS(A2:A10;"*ord*"). Her virker jokertegn.

Skelner formlen mellem store og små bogstaver?

Ikke med SØG. Skal stort og småt passe, bruger du FIND i stedet.

Se også