Avatar billede livse9 Nybegynder
20. november 2008 - 14:04 Der er 21 kommentarer og
2 løsninger

Hvor mange gange optræder data - kender ikke data

Jeg har et stort regneark, med masser af data. Jeg har brug for at vide hvor mange gange forskellige data optræder - jeg ved ikke hvilke data det er.

Altså: I fx kolonne A har jeg en masse numre. Jeg ved ikke hvilke numre der er, men nogle optræder mere end 1 gang. Jeg har brug for at tælle hvor mange der optræder 1 gang, hvor mange to gange, tre gange osv, og til 10 gange, til sidst skal jeg vide hvor mange der optræder over ti gange. Hjælp :)

Mit problem er netop at jeg ikke ved hvilke værdier jeg kigger efter, ellers var det relativ enkelt løst.

Jeg skal bruge en funktion der kan fortælle mig hvor mange værdier der optræder en gang, hvor mange to gange osv

Ønsket output:

Antal med 1 fejl    7
Antal med 2 fejl    5
Antal med 3 fejl    0
Antal med 4 fejl    6
Osv til 10

Håber på god hjælp 
Avatar billede lerskov Praktikant
20. november 2008 - 15:14 #1
Har du proøvet at bruge en Pivottabel? kan det ikke bruges.
Avatar billede jkrons Professor
20. november 2008 - 18:49 #2
Det nemmeste er nok at siortere listen efter numrene. Vælg derefter Data - Subtotaler. Indsæt subtotalen antal, for hver skift i nummerkolonnen.
Avatar billede jkrons Professor
20. november 2008 - 18:53 #3
En anden løsning er, at skrive tallene fra 1 til 10 ien tom kolonne. Marker cellerne ved siden af, plus 1. Altså har du fx tallene i D1:D10 skal du markere E1:E11.

Mens markeringen er på indtaster du denne formel =FREKVENS(A1:A200000;D1:D10), hvor A1:A200000 er det område, du har tal i. Afslut formlen med Ctr´+skift+enter - altså som en matrixformel.

Cellen, hvor der ikke står noget i D-kolonnen, er antallet af forekomster over 10.
Avatar billede livse9 Nybegynder
20. november 2008 - 22:15 #4
Sagen er at det skal kunne bruges uden at man gør andet end at paste data ind, så det nytter ikke at der skal sorteres. og jeg kan nemt løse det ved at indsætte en hjælpekolonne, men det er jo ikke rigtig sjovt. Men det er måske ikke muligt at undgå? Er der virkelig ikke nogle funktioner der kan udføre det?

Det er et regneark der skal køres en gang årligt i en anden afdeling.
Avatar billede livse9 Nybegynder
21. november 2008 - 09:14 #5
Jkrons: forstår ikke helt den med frekvens - vil du prøve at give et eksempel? Det lyder som den bedste løsning, hvis det ikke kan lade sig gøre helt at undgå ekstra kolonner :)
Avatar billede jkrons Professor
21. november 2008 - 09:30 #6
Subtotal kræver ikek ekstrakolonner. Jeg kan godt forstå, at du ikke forstår Frekvens i denne sammenhæng, for jeg kan se, at jeg har misforstået dit spørgsmål, så den kan faktisk ikke bruges på den måde.
Avatar billede livse9 Nybegynder
21. november 2008 - 09:59 #7
Ja, men subtotaql kræver manuel bearbejdelse af data, og det går desværre ikke.
Avatar billede jkrons Professor
21. november 2008 - 11:34 #8
Lad mig lige prøve at forstå det én gang til:

Du har en stor mænde tal fx i A-kolonnen. u vil du vide, hvor mange forskellige tal, der forekommer én gang, hvor mange, der forekommer to gange osv. Du er ikke interesseret i at få at vide hvilke tal der er tale om, men kun tallet?
Avatar billede livse9 Nybegynder
21. november 2008 - 12:32 #9
Ja præcis :)

Det er komponenter der fejler, og jeg ønsker at vide hvor mange komponenter der har 1 fejl, hvor mange har 2 osv. Jeg er ligeglad med hvilke komponenter det drejer sig om.
Avatar billede jkrons Professor
21. november 2008 - 13:15 #10
Og løsningen må ikke sorteres eller på anden måde kræve manuel manipulering af data? Er makroer en mulighed?
Avatar billede livse9 Nybegynder
21. november 2008 - 13:17 #11
Nej lige præcis :)

Sagen er at jeg efterlader arket i en afdeling hvor der ikke er nogen der kender Excel. Alene det at skulle paste data over har krævet instruktion, så det skal helst køre fuldstændig automatisk. Jeg overlever hjælpekolonner hvis det ikke kan være anderledes ;o) Jeg vil nødig ud i en makro, da jeg aldrig har prøvet det.. Er det svært?
Avatar billede livse9 Nybegynder
21. november 2008 - 13:26 #12
Jeg har kigget i "hjælp" under statistikske funktioner, og er sikker på at den ligger der, men at jeg bare ikke aner hvad den hedder..
Avatar billede jkrons Professor
21. november 2008 - 13:28 #13
Jeg er enig i, at hvis funktionen eksisterer, findes den der. Jeg kender bare ikke umiddelbart en funktion, der kan tælle noget ukendt. Men jeg kigger lige på det.
Avatar billede livse9 Nybegynder
21. november 2008 - 14:25 #14
Jeg kan løse det ved at indsætte en hjælpekolonne, der ikke behøver manuel manipulering, hvori der står
=TÆL.HVIS(A:A;A2)
=TÆL.HVIS(A:A;A3)
osv

Derefter laver jeg min
Antal med 1 fejl   
Antal med 2 fejl 
Antal med 3 fejl   
Antal med 4 fejl   

Og skriver
=tæl.hvis(B:B;1)
=TÆL.HVIS(B:B;2)/2
osv.

Det er ikke nogen særlig elegant løsning, så hvis der er nogen der kan finde en funktion er jeg meget interesseret :)
Avatar billede jkrons Professor
21. november 2008 - 14:38 #15
Jeg er med på, at din løsning ikke er elegant. Slet ikke, hvis tallene i A står i tilfældig rækkefølge og der er felre tusinde af dem. Specielt ikke, hvis du ikek ved, hvad det største antal fejl, der kan forekomme er, for så bliver den sidste formel svært at lave på forhånd.
Avatar billede livse9 Nybegynder
21. november 2008 - 14:42 #16
Ja den sidste er den volder problemer, og så synes jeg bare det er en kluntet løsning. Så jeg håber stadig at du kan finde en mere elegant løsning ;o)
Avatar billede livse9 Nybegynder
21. november 2008 - 14:43 #17
Der er 3.000 linier i øvrigt, hvis det har nogen betydning :)
Avatar billede excelent Ekspert
22. november 2008 - 18:33 #18
Sub Forekomster()

Dim x(3000)
Dim y(3000)
Dim rng
Set rng = Sheets("Ark1").Range("A1:A3000")

For t = 1 To 3000
x(t) = Sheets("Ark1").Cells(t, 1)
Next

For t = 1 To 3000
For l = t + 1 To 3000
If x(t) = x(l) Then x(l) = ""
Next
Next

For t = 1 To 3000
If x(t) <> "" Then
If Application.CountIf(rng, x(t)) < 11 Then
y(Application.CountIf(rng, x(t))) = y(Application.CountIf(rng, x(t))) + 1
End If
If Application.CountIf(rng, x(t)) >= 11 Then y(11) = y(11) + 1
End If
Next

For t = 1 To 11
If y(t) = "" Then y(t) = 0
If t < 11 Then MsgBox "Antal værdier som forekommer " & t & " gange = " & y(t)
If t = 11 Then MsgBox "Summen af værdier som forekommer mere end 10 gange = " & y(t)
Next

End Sub

---------------------
Ovenstående kode indsættes i din Projektmappe på følgende måde:
Kopier koden (CTRL+c)
Retur i arket tast (ALT+F11)
Vælg Module i menuen Insert
Indsæt koden der (CTRL+v)
Retur til arket med (ALT+q)
I arket tast (ALT+F8)
vælg Forekomster og klik Afspil

Resultatet vises på skærmen, jeg ved ikke hvor du vil have dem i arket
Avatar billede jkrons Professor
23. november 2008 - 12:17 #19
excelent-> Jeg tror du skal lave det om til en UDF, hvis tallene skal lunne aflæses i regnearket uden at brugeren foretager sig noget.
Avatar billede jkrons Professor
23. november 2008 - 12:22 #20
Personligt tror jeg selv mest på den løsning, du selv er nået frem til. Lav evt. hjælpekolonnen i et andet ark, som du så skjuler.
Avatar billede livse9 Nybegynder
26. november 2008 - 11:54 #21
Hej

Tak for alle inputs, jeg havde håbet på en simpel funktion. jkrons og excelent, sender i svar? Så deler jeg pointene mellem jer, som tak for indsatsen :)

VH Liv
Avatar billede jkrons Professor
26. november 2008 - 13:49 #22
Jeg har læst alle mine kilder igennem, og tilsyneladende findes der ikke en indbygget funktion, der kan tælle værdier, hvis disse er ukendte - elelr antallet af varianter er. Men her er et svar.
Avatar billede excelent Ekspert
26. november 2008 - 15:01 #23
Heller ikke mig bekendt findes en sådan funktion
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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