07. september 2016 - 20:06Der er
11 kommentarer og 1 løsning
filtrer celler der indeholder et bestemt ord
Kære alle Håber der er nogen som kan hjælpe ? Jeg har et relativt stort excelark indeholdende celler med tekst. Kan man ikke få excel til at kun at vise de celler som inderholder et bestemt ord ?
Jeg bruger: excel:mac 2008 MacBook Pro, OSX v. 10.11.5
Tilføj en ekstra kolonne og indsæt følgende formel og kopier ned =TÆL.HVIS(A2:M2;$P$1) Ret A2:M2 samt $P$1 til aktuel forhold I P1 indtaster du det ord du vil søge / filtrere Sæt Autofilter på og filtrer i den nye kolonne og fjern flueben ved 0
hej Excelent Tak for dit forslag, når jeg bruger dit forslag og filtrere med udsagnet =, så findes der ingen celler. Jeg går ud fra at din løsning forudsætter at der kun er ét ord i hver celle? I mit tilfælde er der måske 4 linier tekst, og der skal fines ét bestemt ord i teksten. Til info har jeg imellemtiden opgraderet Excell til ver. 2016 for MAC, for at se om det kunne hjælpe mig?
Så vil jeg anbefale en vba-function som indsættes i et alm. modul
Function FindOrd(rng As Range, ord As String, space As String) tal = 0 For Each c In rng x = Split(c, space) For t = 0 To UBound(x) If x(t) = ord Then tal = tal + 1 Next Next FindOrd = tal End Function
Så skriver du i den nye kolonnes første celle (hvor du vil teste) sikkert række 2
=FindOrd(A2:M2;$P$1;" ")
ret A2:M2 til aktuel, $P$1 er cellen hvor du har søgeord - ret til aktuel " " angiver at der er mellemrum imellem ordene i dine tekster.
Kære Excelent, du har fuldstændig ret i, at der ud for hver række kommer en angivelse af hvor mange hits der er. Når jeg så filtrere har jeg tilbage ikke blot de rækker/celler hvori "ordet" indgår, men også de celler som er "False" hvis denne optræder i en rækken med en "TRUE" celle. Jeg ville gerne kunne filtrere "False" celler fra, og lade "True" celler stå tilbage, uanset om de optræder i en række hvor det er et sandt udsagn?
Jeg er bestemt ikke nogen nørd til VBA, men har for interessens skyld lige downloadet en lille guide i VBA programmering, men kender du evt. gode læringsmaterialer om emnet?
Hvis du foretrækker False/True frem for 0 eller +tal så : Function FindOrd(rng As Range, ord As String, space As String) tal = 0 For Each c In rng x = Split(c, space) For t = 0 To UBound(x) If x(t) = ord Then tal = tal + 1 Next Next If tal > 0 Then tal = True Else tal = False FindOrd = tal End Function
Og når du så filtrerer false fra, så står tilbage de rækker hvor dit søgeord står i en eller flere af cellerne i samme række. Så lyder det som om du også vil filtrere de celler/kolonner fra hvor ordet ikke indgår i samme række. Hvad så hvis ordet indgår i en af de kolonner du filtrerer fra...?
Du kan altså kun filtrere hele række eller kolonner, ikke enkelte celler. Eller har jeg misset noget ?
Det var lige det jeg frygtede, at jeg kun kan filtrere på hele rækker eller kolonner :-( Kan man så bede programmet om at lave en kopi af arket (kan dog let gøres manuelt) og derefter bede programmet om at slette/rydde de celler som IKKE indeholder ordet ?
Koden startes via ALT+F8 Opretter en kopi af arket, markerer celler som ikke indeholder ordet med rød baggrund. Du får valg mellem at slette eller fortryde. (husk aktuelle ark skal være aktiv-fremme)
For Each c In rng x = Split(c, " ") For t = 0 To UBound(x) If x(t) = ord Then tal = tal + 1 Next If tal = 0 Then c.Interior.ColorIndex = 3 tal = 0 Next If MsgBox("Skal de røde celler slettes ? ", vbYesNo) = vbYes Then For Each c In rng x = Split(c, " ") For t = 0 To UBound(x) If x(t) = ord Then tal = tal + 1 Next If tal = 0 Then c.Formula = "=#N/A" tal = 0 Next
Velbekom Der findes masser af steder på nettet hvor man kan finde løsninger på forskellige problemstillinger. Søg fx på google på "excel forums vba". Men ellers learn by doing.
Synes godt om
Ny brugerNybegynder
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.