Avatar billede offerlam Nybegynder
21. august 2007 - 09:59 Der er 44 kommentarer og
2 løsninger

Optælling af ord forkomster i en kolonne

Hejsa Eksperter

Jeg er ikke super sej til excel og kunne godt bruge noget hjælp med det her problem.

Jeg står med en kolonne som har x antal email adresser stående og som godt kan ha den samme mail adresse forkomme to gange. Jeg har brug for en kommando som tæller de her mail adresser op og som fortæller mig hvormange forkomster der er af hver mail adresse

fx

sdfng@dfljg.com 2
slnslk@slkgslk.com 4
dsfln@slk.com 10258

noget i den still

kan det lade sig gøre?

i mine øjne lyder det her svært så jeg har valgt at gi 60 point :)
Avatar billede b_hansen Novice
21. august 2007 - 10:09 #1
Det kan godt lade sig gøre. Du skal bruge funktionen =TÆL.HVIS()

Hvis du har dine mailadresser i kolonne A, ser formlen sådan ud: TÆL.HVIS(A$1:A$1000;A1)

Denne tæller antallet af forekomster af Celle A1 i kolonne A, række 1 til 100. Du skal huske dollartegnene i A$1 og A$100, da det fastlåser det interval, der optælles.

Formlen kopieres nu nedad i dit regneark
Avatar billede b_hansen Novice
21. august 2007 - 10:12 #2
Hvis du så ønsker en liste, hvor hver mailadresse kun forekommer én gang, skal du markere række 1, klikke på menupunktet Data, vælge Filter og derefter autofilter
Avatar billede offerlam Nybegynder
21. august 2007 - 10:26 #3
hejsa b hansen

er der en måde hvorpå den kan tæller uendeligt nedaf? jeg ved ikke fra gang til gang om der er 1000 eller 100 forkomster i en kollone nemlig :) tak for det hurtige svar!
Avatar billede b_hansen Novice
21. august 2007 - 10:34 #4
Ja, du kan blot rette formlen til hele kolonnen:
TÆL.HVIS(A$1:A$65535;A1)

Men hsuk, at du skal kopiere den nedad hver gang
Avatar billede luffeladefoged Praktikant
21. august 2007 - 10:42 #5
Blander mig lige med et muligt hint om du skal bruge listen over mailadresser, hvor hver kun optræder en gang, så har xl et indbygget værktøj til dette ... ihvertfald i 2003:
hvis din liste er i col A med overskriften "A" i A1, så skriv "A" i celle B1 og tag menu - data - filter - advanced filter, click på options "copy to another location" og på "unique records only". Definer list range til A1:A1000, criteria range til den samme A1..A1000 og copy to boksen til B1. Tryk OK og så skulle den være der. Blanke bliver dog ikke helt fjernet, men vil summeres til at kun at optræde én gang, hvilket så vil være uden betydning hvis listen kun består af alphanumeriske værdier.
Hilsen Luffe
Avatar billede offerlam Nybegynder
21. august 2007 - 10:54 #6
Tak Luffe men vil det også give dig en værdig tilbage der siger hvormange forkomster der så er af den pågældende mail adresse?

B hansen
jeg omskrev din formel til mit dokument =TÆL.HVIS(D$1D$20000;D)
men fik afvide at der var en fejl i formlen kan du forklare det?
Avatar billede b_hansen Novice
21. august 2007 - 10:59 #7
ja det kan jeg. Du har kun skrevet D efter semikolon. Der skal stå D1

Og svaret på dit spørgsmål til luffe er, at man kan se antallet, når du kopierer min formel hele vejen ned i datasættet
Avatar billede b_hansen Novice
21. august 2007 - 11:00 #8
Du havde også glemt et kolon, så din formel skal være sådan: =TÆL.HVIS(D$1:D$20000;D1)
Avatar billede offerlam Nybegynder
21. august 2007 - 11:20 #9
hmm ok det virker jo men jeg har ikke læst hvad du skrev grundtigt nok. De tæller ganske rigtig op af hvormange forkomster der af af dataen i D1 i hele kollonne D

Men det jeg har brug for er at den selv skriver hvad forkomsten hedder og tæller alle forkomster op i kolonne D

kan det overhoved lade sig gøre?

håber jeg gjorde mig forstålig :)
Avatar billede b_hansen Novice
21. august 2007 - 11:33 #10
Det forstår jeg ikke helt???? Forekomsten står jo allerede i kolonne D?

Men måske skal du kigge lidt på en pivottabel
Avatar billede offerlam Nybegynder
21. august 2007 - 12:05 #11
Kolonne D indeholder forskellige rækker med email adresser D1 D2 D3 D4.....nedaf

Jeg har brug for en formel der kan fortælle mig hvormange gange abc@abc.dk forkommer i kolonne D

fx

D1 = qwe@qwe.dk
D2 = abc@abc.dk
D3 = qwe@qwe.dk
D4 = abc@abc.dk
D5 = abc@abc.dk
D6 = øæå@øæå.dk

formlen skal så kunne vise mig dette resultat fx:

qwe@qwe.dk 2
abc@abc.dk 3
øæå@øæå.dk 1

kan det lade sig gører?
Avatar billede offerlam Nybegynder
21. august 2007 - 12:06 #12
nu brugte jeg konkret abc@abc.dk men som du kan se fra eksemplet skal den kunne tælle alle de forskellige mails op som står hele vejen ned i kolonne D
Avatar billede luffeladefoged Praktikant
21. august 2007 - 12:13 #13
Hvis du kombinerer kommentarerne lidt:
- først laver du Hansens formel i kol.E
- laver en unik ny liste i kol.F med advance filter som jeg beskrev
- så laver du en vlookup (mener det er vopslag på dansk) i kol.G, med reference til kol D & E: =VLOOKUP(F51;D:E;2;FALSE)
Så skulle du have en færdig unik list med antal forekomster.
Alternativt kan du selvfølgelig benytte pivot tabel - om du har fod på dem
Hilsen
Avatar billede luffeladefoged Praktikant
21. august 2007 - 12:19 #14
LOPSLAG hedder den på dansk - bytter altid rundt på de to :o)
Avatar billede b_hansen Novice
21. august 2007 - 12:28 #15
For mig at se, har vi jo allerede givet den ønskede løsning:

Trin 1: Indsæt formel, der laver optælling (TÆL.HVIS())
Trin 2: Lav et filter, der viser de unikke poster

Eller:
Trin 1. Marker hele datasættet, vælg Data, vælg Pivottabel

Personligt ville jeg foretrække den første løsning, da den er nemmere og hurtigere
Avatar billede offerlam Nybegynder
21. august 2007 - 13:58 #16
luffe jeg har lavet det du beskrev i et nyt regneark

kopiert hansens kode ind i toppen af E =TÆL.HVIS(F$1:F$20000;F19)

Indsat min liste af emails i kolonne F

Indsat din LOPSLAG formel i toppen af kol. G = =LOPSLAG(F51;D:E;2;FALSE)

men det virker ikke. Kolonne E skriver den samlede antal emails der er i kolonne F
Formlen i kolonne G virker heller ikke den skriver bare #NAME#

kan det være fejlen ligger i G i koden hvor der står D, kan ikke se hvad kolonne D har med det hele at gøre?
Avatar billede offerlam Nybegynder
21. august 2007 - 14:01 #17
det er fordi jeg ikke har lavet det der advanceret filter, men på hvilke felter skal det filter pege, det er jo nye kolonner?
Avatar billede b_hansen Novice
21. august 2007 - 14:05 #18
Hvis du flytter din tabel til et nyt regneark, skal du huske at anføre referencen til dit oprindelige dataområde. Din formel kigger nemlig i det nark, og ikke det gamle, hvor optællingen er sket.

=LOPSLAG(F51;'Gammelt arknavn'!D:E;2;False)
Avatar billede b_hansen Novice
21. august 2007 - 14:10 #19
Alternativt kan du give dit oprindelige datasæt et navn, som du så kan referere til. Det gør du ved at markere de gamle data, klikke i lille, hvide felt ovenover kolonne A, og der give det et navn, eksempelvis Data

Så kan du bruge dette navn i din opslagsformel: =LOPSLAG(F51;data;2,False)

Og for at gardere dig mod at der kan komme flere data, kan du markere de relevante kolonner i stedet, og så give dette område et navn.
Avatar billede luffeladefoged Praktikant
21. august 2007 - 14:20 #20
Jeg refererede til kolonne D fordi du beskrev du havde dine e:mails i denne kolonne D1, D2, etc. ;o)
Du har også byttet lidt rundt på rækkefølgen - en lopslag kigger fra venstre mod højre, så derfor er rækkefølgen vigtig.
Så hvis vi nu forudsætter du har dine e:mails i kol.F, som du har kopieret over til:
- så laver du hansens formel i kol.G
- så laver du advancefilter i kol.H: din liste er i col F med overskriften EMAILS i F1, så skriver du EMAILS i celle H1 også - tag menu - data - filter - advanced filter, click på options "copy to another location" og på "unique records only". Definer list range til F1:F20000, criteria range til den samme F1:F20000 og copy to boksen til H1. Tryk OK og så skulle din unikke liste være klar i kol.H
- i celle I2 skriver du så formlen: =VLOOKUP(H2;F:G;2;FALSE) og kopierer dernedaf.
Så burde den altså være der.
Siden den returnere #name kunne det jo tyde på du havde en engelsk version. Hansens formel hedder så =countif istedet for =tæl.hvis, men hvis det er en dansk version, skal du udskifte =vlookup med =lopslag og false inde i formlen med falsk.
Håber det lykkes  // Luffe
Avatar billede offerlam Nybegynder
21. august 2007 - 15:39 #21
Jeg bruger dansk exel/office

Nå, nu har jeg lavet det som du skrev det sidst luffe og self har jeg nosset i det, tror jeg da.

F inde holder alle mine mails helevejen ned af kolonnen

G har i øverste celle  har koden fra hansen som viser mig hvormange forskellige mail adresser der er i F - =TÆL.HVIS(F$1:F$20000;F19)

H Er resultatet af advanced filter og skulle gerne ud fra det vise alle de mails som er forskellige

I har i øverste celle din kode =VLOOKUP(H2;F:G;2;FALSE)

**************

Hvordan sætter jeg din kode ind for hele kolonen? for jeg når jeg prøver at copy paste går 2007 helt bananas

Ud over det viser din kode stadig bare NAME i feltet

hvad gør jeg galt?
Avatar billede b_hansen Novice
21. august 2007 - 19:31 #22
Hvis du har en dansk udgave, skal formlen hedde =LOPSLAG(H2;F:G;2;FALSK)
Avatar billede luffeladefoged Praktikant
21. august 2007 - 22:44 #23
Det er måske mig der har forvirret, eftersom jeg gik udfra at fejlmeddelelsen #name så var en engelsk version. Åbenbart ikke i den danske 2007 - den er tydeligvis blevet lidt mere international ;o) Men som hansen også skriver: udskift =vlookup med =lopslag og false inde i formlen med falsk.
Stadigvæk ville jeg da mene du kunne kopiere den nedaf - fejl eller ikke fejl - hvordan går den bananas?
Avatar billede luffeladefoged Praktikant
28. august 2007 - 10:48 #24
Fik du det fikset?
Avatar billede offerlam Nybegynder
28. august 2007 - 14:05 #25
Mange tak for din hjælp den er virkelig værdsat

Men jeg har mega travlt for tiden med andre ting men skal nok kigge på det så snart jeg kan!!! :)

Håber det er ok
Avatar billede offerlam Nybegynder
29. august 2007 - 15:55 #26
Ok så fik jeg tid til at kigge på det igen.

Jeg har erstartet formlen i I med =lopslag(H2;F:G;2;FALSE) som du skrev

Nå jeg gør det er det ligesom den markere både I og H med blåt men kun rundt om det felt jeg sætter formlen ind i. Og den skriver stadig #name

Sådan som det ser ud for mig har vi nu

kolonne F:

1 rubrik står der from og efterfølgende rubrikker indeholder email adresser UDEN sortering

Kolonne G:

Der satte jeg hansens formle ind i øverste rubrik og der står nu 1245 hvilket nok er antallet af mails som er unikke

Kolonne H:

Øverste rubrik står der from og efterfølgende rubrikker står der de unikke mail adresser

Kolonne I:

Der satte jeg =lopslag(H2;F:G;2;FALSE) formlen ind på anden rubrik (I2) og den skriver bare #name i den rubrik

Jeg er lidt MIF (mig ikke forstå) på hvad jeg skal gører :) gav dette dig et hint om hvad der kunne være galt?
Avatar billede luffeladefoged Praktikant
29. august 2007 - 16:43 #27
Jeg håber det. Siden den returnerer #name, ville jeg altså mene det var en engelsk version du havde og derfor skal bruge =vlookup istedet for =lopslag, men det siger du jo det ikke er. Så er der tilbage at udskifte ordet "false" med det danske "falsk", således at det danske lopslag hænger sammen med det danske falsk. Eventuelt kan du prøve og skrive tallet 0 istedet for falsk - det skulle helt sikkert virke både på dansk og engelsk.
Grunden til det med blåt er cellen H2 den highlighter som offset værdien.
Ydermere lyder det som om du ikke har kopieret formlen i kolonne G dernedaf endnu. Formlen med =TÆL.HVIS(F$1:F$20000;F19) skal du nok ændre til TÆL.HVIS(F$2:F$20000;F2) og placere denne i G2 og så kopiere den nedaf så der står et ciffer ud for hver eneste email adresse.
Hvis formlen tæl.hvis virker må det jo være en dansk udgave :o)

Det skal nok lykkes på et tidspunkt det her - det er prøvet før
Hilsen  Luffe
Avatar billede luffeladefoged Praktikant
29. august 2007 - 16:45 #28
Lige en anden ting: deler du normalt argumenter i formler op med ; eller med ,?
Avatar billede luffeladefoged Praktikant
29. august 2007 - 16:45 #29
Nå, nej, din tæl.hvis funker med ; så det må jo være ; du deler op med.
Avatar billede offerlam Nybegynder
29. august 2007 - 17:02 #30
har egentlig fri nu, men tog lige et kig på det da jeg så mailen fra eksperten

Jeg gjort som du skrev og nu skriver hansens formel 12 i alle rubrikker derned af. Ud over det er det her et uddrag fra en logfile så der er pændt mange mail adresser, så er der en nemmere måde at kopier formlerne derned af jeg bruger bare ctrl c og v.

Har også kopiert din egen formel og erstarttet falsk med 0 hvilket gør at nu står formlen bare på linjen. Ud over det har jeg samme problem med den som jeg har med hansens formler i og med der er en del rubrikker der skal kopieres ned.
Avatar billede luffeladefoged Praktikant
29. august 2007 - 23:59 #31
Hvis tæl.hvis giver 12 - kunne det tænkes at der var 12 af hver?

Jeg bruger selv <ctrl>c og v, som regel kombineret med f.eks. at jeg tager <ctrl>c, pil til venstre, <end>pil ned, pil til højre, holder <shift> nede mens jeg tager <end>pil op og <enter> eller <ctrl>v. Lyder måske omstændigt, men når det lige sidder i fingrene går det hurtigt :o)En mere gængs metode er at dobbeltklikke på den sorte firkant nederst i højre hjørne når man står i den pågældende celle, så vil cellen kopiere sig ned til bunden af de celler der svarer til kolonnen lige til venstre for.

Når du har erstattet med 0 og det så virker, må det være fordi ordet "false" var forkert før.

Men virker det så?

Du kunne eventuelt verificere om det virker med et mindre datamateriale der kunne overskues - 30-40 linjer?

Ellers må du sende sheet'et så kan jeg måske gennemskue hvad der skyldes det ikke virker.

... og du behøver ikke tage overarbejde for min skyld - vi skal nok få løst det her.
Avatar billede b_hansen Novice
30. august 2007 - 08:33 #32
prøv lige at kopiere dine formler herind, så vi kan se nøjagtigt, hvordan du har skrevet dem i regnearket.

Jeg har en misttanke om, at du optæller den samme værdi i i hver celle i stedet for en ny værdi.
Avatar billede luffeladefoged Praktikant
30. august 2007 - 12:15 #33
Ups - tilbød du kunne sende sheet'et - men glemte at skrive adresse:
luffe_ladefoged snabela hotmail punktum com
Er der tale om sensitive data, send evt. de første 30-40 linjer for eksemplets skyld
/ Luffe
Avatar billede luffeladefoged Praktikant
03. september 2007 - 09:44 #34
Lykkedes det denne gang?
/ Luffe
Avatar billede offerlam Nybegynder
03. september 2007 - 13:58 #35
nej jeg mailer dig lige dokumentet, men skal lige rette det til ;) har lige et par arbejdsopgaver der skal afsluttes først men det bliver idag :)
Avatar billede luffeladefoged Praktikant
05. september 2007 - 10:14 #36
Et lidt simplere forslag er blevet udarbejdet:
Col.A. - rådata
Col.B. - unik sortering
Col.C. - countif / tæl.hvis formel for frekvens, med range i col.A og kriterie værdier i Col.B
Derved kan vlookup / lopslag arbejdsgangen udelades.
/ Luffe
Avatar billede offerlam Nybegynder
05. september 2007 - 10:39 #37
Super alternativ du lavede men jeg forstår ikke hvordan sin sotering af emails virker, der lader ikke til at være nogen kode?

Det skulle jo gerne virke sådan at den (i dit dokuemnt) i kolonde b viser de unikke mails, hvor er koden for det?

Det kunne også være fedt hvis man kunne sætte det sådan op at den gjorde det hele automatisk bare man satte listen af mails ind i dokumentet, så soterede den og viste alle de unikke mails og hvormange komster af diverse unikke mails der var.

håber ikke jeg ber om for meget med det
Avatar billede luffeladefoged Praktikant
05. september 2007 - 13:20 #38
Returnerer sheet hvor jeg har lavet samme arbejdsgang som ovenstående:
1) Kopieret rådata i col.A
2) Unik sortering til col.B
3) Formler for frekvens i col.C

Dette kan selvfølgelig optages / laves som en makro, men da jeg ikke er den store ørn til VBA vil jeg afholde mig fra at kunne rette i en sådan, således den tager alle rådata og ikke kun et bestemt område, osv. Måske du skulle oprette et nyt spørgsmål i forbindelse med dette?

Hilsen  Luffe
Avatar billede luffeladefoged Praktikant
05. september 2007 - 16:19 #39
Et svar
Avatar billede offerlam Nybegynder
05. september 2007 - 17:00 #40
tak for hjælpen, det var stort!
Avatar billede luffeladefoged Praktikant
05. september 2007 - 17:51 #41
Du må da godt lige acceptere svaret - ;o)
Avatar billede offerlam Nybegynder
06. september 2007 - 14:02 #42
har trykket på accepter kanppen, 3 gange endnu? har du ikke fået point?
Avatar billede luffeladefoged Praktikant
06. september 2007 - 14:36 #43
Du har måske ikke trykket hårdt nok ;o)
Jeg ved det ikke - har du highlighted navnet før du trykker accepter'?
Ellers kan du jo give positiv karma hvis du synes det er rimeligt - jeg overlever nok uden point.
Hilsen Luffe
Avatar billede offerlam Nybegynder
06. september 2007 - 14:54 #44
ah man skal highlighte
Avatar billede luffeladefoged Praktikant
06. september 2007 - 15:15 #45
Så lykkedes det tydeligvis - takker.
Og takker for udfordringen.
// Luffe
Avatar billede offerlam Nybegynder
06. september 2007 - 15:17 #46
det var så lidt ;)
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