Avatar billede miraq Nybegynder
26. juli 2007 - 09:30 Der er 12 kommentarer og
1 løsning

Tælle antal forekomster

Jeg får en masse data fra et andet system som bliver kopieret over i et Excel, det ligner lidt nedenstående
  A          B                  C          D
1 1        tekst1              Hans
2 2      tekst1;#tekst2        Peter
3 3      tekst1;#tekst14      Hans

Jeg skal have lavet en formel, hvor jeg kan se hvor mange gange Hans har tekst1. Jeg kan sagtens lave formlen, hvis der kun står et ord i B kolonnen, men det system det kommer fra, kan der stå flere ting i samme felt, og dette kan ikke laves om, ej kan der ændres på den måde det skrives på altså "tekst1;#tekst2"
Er det ikke muligt at kunne tælle hvor mange gange ordet tekst1 forekommer i kolonne B?
Avatar billede jkrons Professor
26. juli 2007 - 09:41 #1
Du kan godt tælle antallet af forekomster i B-kolonnen. Det kan du gøre med

=TÆL.HVIS(B1:B100;"tekst1#*"), men du kan desværre ikke bruge den samme metodik i SUMPRODUKT. =SUMPRODUKT((C1:C3="Hans")*(B1:B3="Tekst1#*")) vil således give en fejl,. da jokertegn ikke er tilladt i en tekst.

Så du er nok nødt til at opdele dine kolonner i flere, for at kunne tælle. Det kan du gøre med Data - Tekst til kolonner.
Avatar billede excelent Ekspert
26. juli 2007 - 09:53 #2
Function Antal(rng As Range, txt)
Application.Volatile
For Each c In rng
If InStr(1, c, txt) > 0 And c.Offset(0, 1) = "Hans" Then x = x + 1
Next
Antal = x
End Function

i arket taster du :

=Antal(B1:B100;"tekst1")
Avatar billede miraq Nybegynder
26. juli 2007 - 10:09 #3
excelent:
Nu er jeg ikke så avanceret excel bruger, hvor skal jeg indtaste den function? :-)
Avatar billede excelent Ekspert
26. juli 2007 - 10:13 #4
i arket taster du ALT+F11
i meneuen Insert vælger du Module
indsæt koden i vindue

tilbage i arket kan du så anvende formlen:

=Antal(B1:B100;"tekst1")
Avatar billede miraq Nybegynder
26. juli 2007 - 10:15 #5
Jeg prøvede at bruge excels eget forslag : =COUNTIF(B1:B100="tekst1") men den fungere ikke, der skal jeg skrive =COUNTIF(B1:B100;"tekst1"), man kan altså ikke bruge ; og = tegn?
Avatar billede miraq Nybegynder
26. juli 2007 - 10:55 #6
Kan du forklare den

Function Antal(rng As Range, txt)
Application.Volatile
For Each c In rng
If InStr(1, c, txt) > 0 And c.Offset(0, 1) = "Hans" Then x = x + 1
Next
Antal = x
End Function

Hvor ved den hvilken en kolonne den skal finde "Hans" i. Jeg kan nemlig ikke få den til at fungere. Har fint nok indtastet den i module, og gemt det, men =Antal(B1:B100;"tekst1") laver fejl.
Avatar billede excelent Ekspert
26. juli 2007 - 10:58 #7
ud fra hvad du skriver i din første kommentar
gætter jeg på det er i kolonne C
er det ikke det ?
Avatar billede miraq Nybegynder
26. juli 2007 - 11:06 #8
Har prøvet at sætte det præcist op som skrevet, men får fejl hver gang. Kan det ikke være i functionen der er et problem? Excel arket er præcist som beskrevet.
Avatar billede excelent Ekspert
26. juli 2007 - 11:11 #9
tast ALT+F11
se efter om der står

Option Explicit

hvis der gør så prøv slet den linie
Avatar billede excelent Ekspert
26. juli 2007 - 11:16 #10
Avatar billede miraq Nybegynder
26. juli 2007 - 12:38 #11
Perfekt nu virker det. Der var lige sneget sig et ; ind i stedet for ,

Takker mange gange.

Excelent, mangler lige at kunne give dig point, kan ikke acceptere dit svar, da knappen mangler
Avatar billede excelent Ekspert
26. juli 2007 - 12:48 #12
ok velbekom
Avatar billede miraq Nybegynder
26. juli 2007 - 12:58 #13
Perfekt
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
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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