Avatar billede whisper Nybegynder
17. oktober 2012 - 10:18 Der er 8 kommentarer og
1 løsning

Excel 2010: Tæl unikke forekomster på tværs af to kolonner

Jeg har et større datasæt. Heri ønsker jeg at analysere med udgangspunkt i to kolonner:
"Unikt ID" og "Dato"
Et unikt ID kan sagtens optræde flere gange i denne kolonne.

Jeg ønsker at tælle, hvor mange gange hvert unikke ID optræder med en unik dato.

Eks:

UniktID | Dato

ABC    | 01-08-12
ABC    | 01-08-12
DEF    | 01-08-12
ABC    | 08-08-12
ABC    | 09-08-12
GHI    | 26-08-12
ABC    | 15-08-12
GHI    | 26-08-12
DEF    | 29-09-12

Output skal så gerne være en ny kolonne i datasættet, der viser antal unikke datoer for hvert unikt ID, således:

UniktID | Dato    | Ant. unikke datoer

ABC    | 01-08-12 | 4
ABC    | 01-08-12 | 4
DEF    | 01-08-12 | 2
ABC    | 08-08-12 | 4
ABC    | 09-08-12 | 4
GHI    | 26-08-12 | 1
ABC    | 15-08-12 | 4
GHI    | 26-08-12 | 1
DEF    | 29-09-12 | 2


På forhånd tak for hjælpen.
Avatar billede Slettet bruger
17. oktober 2012 - 11:09 #1
Hvis du har dine data i A1:B9, så kan du, hvis du kan leve med hjælpeceller, i C1:C9 gøre følgende:

I C1 indtaster du =A1&B1 og kopierer nedad til C9
I D1 kan du herefter indtaste:

=SUMPRODUKT(($A$1:$A$9=$A1)/TÆL.HVIS($C$1:$C$9;$C$1:$C$9&""))
Formlen kopieres ned.

Hvis du ikke kan leve med hjælpeceller kan du bruge denne matrixformel i F1:

=SUM(($A$1:$A$9=$A1)/(($A$1:$A$9<>$A1)+MPRODUKT(--(HVIS($A$1:$A$9=$A1;$B$1:$B$9)=TRANSPONER($B$1:$B$9));--($A$1:$A$9=$A1))))

Igen kopieres formlen nedad.

Hans
Avatar billede anedi Ekspert
17. oktober 2012 - 13:18 #2
Du kan også benytte tæl.hviser funktionen:

Du kan i et nyt faneblad (Ark2) liste alle dine datoer nedad i kolonne A eksempelvis, og liste alle dine unikke ID'er udad i række 1

        ABC  ABE  osv.
1-1-2012
2-1-2012
osv.

Indsæt følgende formel:
=TÆL.HVISER('Ark1'!$A$1:$A$1000;'Ark2'!b$1;'Ark1'!$B$1:$B$1000;'Ark2'!$a2)

og træk den henad og ned i hele området.

Vh
Anedi
Avatar billede whisper Nybegynder
17. oktober 2012 - 15:53 #3
Tak for de to løsningsforslag.

De virker umiddelbart fint begge to når jeg tester dem på mit eksempel ovenfor.
Jeg løber dog ind i et problem når jeg skal anvende dem på mit "rigtige" datasæt som indeholder over 3400 rækker. Jeg får simpelthen en fejlmeddelelser der siger, at Excel løb tør for ressourcer :/
Avatar billede whisper Nybegynder
17. oktober 2012 - 15:58 #4
Min kommentar var henvendt til dkhanknu

anedi: jeg kan desværre ikke bruge din løsning, da jeg gerne vil kunne forholde dataene direkte til resten af kolonnerne i det pågældende regneark.
Avatar billede Slettet bruger
17. oktober 2012 - 16:55 #5
Til #3

Ja matrixformler er beregningstunge, ikke mindst den sidste af de to.
Hvis du kan/vil sende filen, så skal jeg gerne forsøge.

hans.knudsensnabelamail.tele.dk
(udskift snabela med @)
Avatar billede bernhardtjessen Nybegynder
17. oktober 2012 - 22:45 #6
Hej

Jeg har prøvet med:
=VENSTRE(A1;3) i en celle og
=HØJRE(A1;8) i den næste celle
Den 3. celle skal default være 1

Derefter kan du lave en pivottabel  - og på den måde har du oversigten.

Hvis du skal arbejde videre med den er det ikke sikkert, at pivottabel virker, men du har i hvert fald isoleret cellerne til tal, der kan regnes på.

du kan copy og paste resultaterne fra pivottabellen, men jeg ved godt - det er ikke den optimale løsning.

Hvordan kan man ellers anvende værdierne fra en pivottabel
Avatar billede Slettet bruger
18. oktober 2012 - 06:11 #7
Hvis du kan bruge løsningsforslaget i #6 så glem det følgende.
Ellers prøv den løsning jeg foreslog med hjælpeceller i kolonne C og så følgende matrixformel:

=TÆL(1/FREKVENS(HVIS(($A$1:$A$3400=A1);SAMMENLIGN($C$1:$C$3400;$C$1:$C$3400;0));RÆKKE($A$1:$A$3400)-MIN(RÆKKE($A$1:$A$3400))+1))

Jeg har testet på 3400 rækker og det går (synes jeg) acceptabelt hurtigt.

Hans

(er først tilbage igen lørdag aften)
Avatar billede Slettet bruger
18. oktober 2012 - 07:58 #8
Lige en tilføjelse.
Lav en liste over unikke ID, dvs.

ABC
DEF
GHI
osv.

og så referer til dem i formlen sådan at der ikke er brug for kopiere formlen til 3400 celler, men kun til så mange celler som der er unikke ID'er.

Du kan bruge Avanceret filter til at lave sådan en unik liste.

Hans
Avatar billede anedi Ekspert
18. oktober 2012 - 08:51 #9
Hej igen

Jeg mener altså stadig godt du kan bruge tæl.hviser-funktionen. Jeg havde bare misforstået ordenen på dine data.

Hvis du gerne vil have det til at stå, som det står i forvejen skriver du i celle c1:

=tæl.hviser($A$1:$A$1000;A1;$B$1:$B$1000;B1)

Og så trækker du den ned til nummer celle C1000 (eller hvor langt den nu skal gå). Den er ikke så beregningstung som matrixformler.

Vh
Anedi
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