Avatar billede Nadi Mester
23. maj 2018 - 14:00 Der er 6 kommentarer og
1 løsning

Hvis celle indeholder bestemt tekst så skal output være "tekst"

Hej,

Jeg sidder med et problem i Excel, jeg ikke helt kan få løst. Jeg har flere tusinde rækker i Excel med navn på afsender. Jeg vil gerne ud fra denne celle, have en anden celle der spytter en bestemt tekst ud, hvis f.eks. ordet "ministerium" indgår i kriteriecellen. Kriteriecellerne skal inddeles i næsten 10 kategorier, med forskellige kriterier. Hvordan gør jeg det bedst?
Kunne VBA evt. være en bedre mulighed?

Vh.
Nadi
Avatar billede ebea Ekspert
23. maj 2018 - 15:00 #1
Hvis jeg forstår dig korrekt, så lav en liste (i eks. her i B kolonnen), med de ord du vil søge efter. Og så kopier formlen nedad i A kolonnen (i eks. her) til at dække hele dit område i A kolonnen. Formlen vil så returnere ordet "Tekst" ud for de celler som indeholder dine søgeord.
=HVIS(ELLER(INDEKS(TÆL.HVIS(A1;"*"&$B$1:$B$15&"*");)); "Tekst"; "")
Avatar billede Nadi Mester
23. maj 2018 - 16:17 #2
Tak for svar!
Det svære ved det her er, at jeg ikke kun vil have celle B til at spytte ordet "Tekst" ud.
Det er noget ala det her, jeg gerne vil opnå. Bare med mange flere kategorier under kolonne b, og mange flere kriterier

Her er et eksempel:

Kolonne A                                                  Kolonne B
Røreskole                                                  Skole
Lundehusskolen                                        Skole 
Skallerupskole                                          Skole
efterskole                                                  Skole
Københavns universitet                            Uni
Syddansk universitet                                Uni
beskæftigelsesministeriet                          Staten
finansministeriet                                        Staten
osv..
Avatar billede Nadi Mester
23. maj 2018 - 16:21 #3
Det blev så rodet lidt sammen.
Men alle steder der står "skole" i kolonne a, vil jeg gerne have et output i kolonne b der hedder "skole"
Alle steder i kolonne A, hvor noget starter eller slutter med "universitet" vil jeg gerne have et output der hedder "uni"
Alle steder der hedder noget med "ministerie" skal ahve et output der hedder "staten".

Mit egentlig datasæt har bare flere tusinde af linjer, og derfor tænker jeg, at macrokodning muligvis ville kunne løse det?
Avatar billede puggaard Praktikant
23. maj 2018 - 16:27 #4
tror du kan klare det med INDEX MATCH (+ named ranges for at gøre det pænere)

se dette ark
https://www.dropbox.com/s/mfe00fobkx6c7j4/INDEX%20MATCH%20named%20ranges.xlsx?dl=0
Avatar billede puggaard Praktikant
23. maj 2018 - 16:32 #5
kunne måske godt forklare lidt mere, men prøv lige at ændre lidt i farverne i H eller i teksten i produkt i kolonne B til at indeholde noget fra G.

Mit gæt er at det matcher den funktionalitet du søger.
Avatar billede ebea Ekspert
23. maj 2018 - 19:43 #6
#3  -  Det gav lidt mere klarhed ;-)
Du kan lave det med nedenstående formel (eller brug Puggaard's i #4).
=INDEKS($D$2:$D$20;SUM(TÆL.HVIS($C2;"*"&$B$2:$B$2000&"*")*RÆKKE(B2:B2000)))

D kolonnen, er der hvor du har dine "stikord" som skal give dig et forkortet ord.
B kolonnen er der hvor du har den lange liste du vil søge efter tekst, i.
C kolonnen er der hvor du har dine søgeord (i formlen $C2), f.eks. "ministerie" som så returnerer "Staten" fra D kolonnen.
Og så tilpas formlen til dit brug!
Avatar billede store-morten Ekspert
23. maj 2018 - 22:59 #7
Prøv:
Sub test()

SidsteRække = Range("A" & Rows.Count).End(xlUp).Row
R = 1

For i = 1 To SidsteRække

    If Cells(R, 1).Value Like "*skole*" Then Cells(R, 2).Value = "Skole"
   
    If Cells(R, 1).Value Like "*universitet*" Then Cells(R, 2).Value = "Uni"
         
    If Cells(R, 1).Value Like "*ministerie*" Then Cells(R, 2).Value = "Staten"
   

    R = R + 1
Next i

End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester