Gå til innhold

Excel - telle antall oppføringer per navn


Spr0cket

Anbefalte innlegg

Jeg har en liste i excel. Den går over noen hundre tusen rader i en kolonne, og inneholder flere oppføringer av noen verdier. Hvilke funksjoner, kommandoer eller script kan jeg bruke for å få excel til å vise meg en liste der hver verdi bare forekommer en gang, og i kolonnen ved siden av står det hvor mange ganger verdien forekommer i den opprinnelige listen?

 

Eksempel:

 

Lise

Otto

Otto

Leif

Erik

Leif

Olav

Otto

Leif

Erik

Erik

 

Skal bli til:

Lise 1

Otto 3

Leif 2

Erik 3

Olav 1

 

Siden jeg har temmelig mange oppføringer (noen hundre tusen, office 2007) ønsker jeg å kjøre dette som funksjon, formel eller script. tips?

Lenke til kommentar
Videoannonse
Annonse

takk for svar. jeg har hørt at dette kan være slike ting som er egnet til dumping i en sql-database, for så å gjøre spørringer mot den istedet for å kjøre det i excel. Desverre kan jeg squat diddly om sql, men litt om excel. dog kan jeg ingenting om pivottabeller, så jeg skal se på linken du foreslo.

Lenke til kommentar

veilederen for pivot-tabeller var lite utfyllende i forhold til mitt behov.

 

Jeg har testet å bruke avansert filtert til å fjerne duplikater for så å kopiere formelen

antall.hvis($A$1:$A$600000;B1)

men dette tar utrolig lang tid og er i det hele svært lite automatisert.

 

andre forslag?

Endret av Spr0cket
Lenke til kommentar
=antall.hvis(A1:A20000;"Lise")

 

det teller antall Lise i A1 til A20000

 

ja det var der jeg mente, har ikke tilgang til formelen nå ettersom excel jobber.

 

denne fremgangsmåten krever at man gjør det i to operasjonen, først avansert filter for å fjerne duplikater, for så å skrive inn den formlene du foreslår i cellen ved siden av hele raden av filtrerte verdier. For 60 000 unike verdier tar dette sykt lang tid, og det er så enorm amatørmessig å klikke den sorte firkanten nede i hjørnet på formelcellen for å kopiere den videre... Det må da være mulig å gjøre dette på en mer hensiktsmessig måte.

 

For å rette opp min forrige post, =antall.hvis("FRA:TIL";"Verdi som det spørres mot")

 

Fins det noen måte å hurtigkopiere en formel til hele kolonnen? jeg bruker en kombinasjon av referanser slik at "FRA:TIL" er absoulutte, og "Verdi som det spørres mot" er relativ for den filtrerte kolonnen. (gitt eksemplet til aklla: =antall.hvis($A$1:$A$600000;B1) der B er kolonnen med filtrerte data.

Lenke til kommentar

Som foreslått kan du bruke antall.hvis formelen. Jeg liker det at du bruker cellereferanse på verdien som det spørres mot da det er enkelt for deg å endre verdiene eller "trekke" formelen rundt og at den fremdeles er rett. Når du spør om du kan gjøre den relativ lurer jeg på om det er andelen lise det er i forhold til totalt antall oppføringer. Dersom det er tilfelle kan du kombinere det med formelen "antalla" som teller antall celler som ikke er tom. Som en ekstra kontroll kan du sjekke at summen av alle variablene er lik den samme som antalla viser, slik at du vet at det ikke er skrivefeil, eller eventuelt hvor mange skrivefeil, det er i datasettet.

 

Deretter deler du lise på antall oppføringer, eller summen av antall.hvis formlene, og får opp en relativ andel.

 

Om du har veldig mange forskjellige variabler tror jeg du kan bruke kommandoen "fjern duplikater" under fanen "data" for å få frem alle variasjonene du har i listen for deretter å bruke disse videre med antall.hvis formelen. Dette sparer deg vel for en del arbeid dersom du f.eks. har 2-300 forskjellige navn i listen. Dersom du sliter med at excel bruker all maskinkraft når du kopierer en celle med dra og slipp funksjonen kan du slå av automatisk beregning og sette denne til manuell under fanen "formler". Da kan du gjøre alle formler klare og sette den til å arbeide når du f.eks. tar matpause.

Lenke til kommentar

Pivot-tabell er den eneste kloke måten å gjøre slikt. Du lager laange omveier med formler og museklikking fordi du ikke fikk til med en gang. Prøv igjen heller:

 

Stå i lista. Fane Sett inn - klikk Pivottabell.

 

Dra-slipp Navn (eller hva listeoverskriften din er) i Radetiketter. Dra-slipp Navn også i Verdier. Ferdig.

 

HTH. Beste hilsen Harald

Lenke til kommentar
  • 2 måneder senere...

Ein enno enklare måte er å bruke "Delsammendrag" i Excel. Har du ei slik liste med navn:

Lise

Otto

Otto

Leif

Erik

Leif.....

 

So anbef. eg å sette inn eit navn på denne kolonna (om ikkje du har det allereie). Dette kan dei fleste gjennnom å høgreklikke "nr1" til venstre i 1. linje og velge "Sett inn" (ny linje). Skriv f.eks "FORNAVN" i celle A1.

 

So merker du heile tabellen gjennom å klikke på den lille firkanten til venstre for kolonne A. Deretter gå til >Data og >Sorter og der velger du sorter tabellen med basis i FORNAVN" fra A til Å. Då gjenstår berre eit klikk; gå til >Data og klikk >Delsammendrag. Og der velger du "Ved hver endring i Fornavn" bruker du funksjonen "Antall" og lag desammendrag for "Navn"og klikk >OK. (Dette er sannsynlegvis også standardvalga).

 

Da skal du få oppe den samme tabellen som ser slik ut i begynnelsen:

 

Fornavn

Erik

Antall Erik 1

Leif

Leif

Antall Leif 2

 

så kommer verdiene i kolonne C, D, E osv.....

Med pluss og minus-teikna heilt til venstre i regnearket kan du opne og lukke desse ulike nivåa på ein effektiv måte. Fordelen er at du no har alle dei andre verdiane i dei øvrige kolonnene tilgjengeleg.

Endret av Dabola
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...