21. august 2007 - 09:59Der 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
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.
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
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!
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
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
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
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.
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.
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
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?
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
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.
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.
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
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
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.
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?
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
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.