Avatar billede simon_iknow Nybegynder
07. april 2005 - 12:52 Der er 18 kommentarer og
1 løsning

Frekvenser i excel

Hej jeg har lidt et problem... Jeg har et spørgeskema af 50 spørgsmål hvor hvert spørgsmål fylder 1 kolonne. Jeg ønsker at lave en frekvens på hvert spørgsmål.... det vil sige tælle 1...2....3 osv. taller i hver kolonne. Dette kan jeg selvfølgelig gøre via pivot tabeller men det vil tage for lang tid at gøre på 50 spørgsmål ..... er der andre løsninger ????? måske via en makro ?????
Avatar billede sjap Praktikant
07. april 2005 - 13:05 #1
Hvad med Sum.hvis - funktionen, f.eks.:

=SUM.HVIS(A1:A50;1;A1:A50)
Avatar billede simon_iknow Nybegynder
07. april 2005 - 13:11 #2
Jeg ønsker ikke at bruge sum.hvis funktion eller frekvens formlen da tallene i hver kolonne kan ændre sig fra kolonne til kolonne..... det vil sige at der i den ene kan stå tallene 1-5 og i en anden 50-60.... det skal fungere automatisk eksempelvis via en makro
Avatar billede simon_iknow Nybegynder
07. april 2005 - 13:14 #3
Jeg ønsker heller ikke at bruge tæl.hvis funktionen........
Avatar billede sjap Praktikant
07. april 2005 - 13:23 #4
Nu var det vist også en fejl, at jeg foreslog sum.hvis - det skulle selvfølgelig have været tæl.hvis.

Jeg forstår ikke hvad du er ude efter. Du skriver at du gerne vil tælle f.eks. hvor mange et-taller, der er i hver kolonne. Så er det jo indlysende at bruge tæl.hvis funktionen - for det er jo lige det, den kan finde ud af. Så jeg forstår ikke hvorfor du ikke vil bruge den.
Avatar billede simon_iknow Nybegynder
07. april 2005 - 13:37 #5
Jeg vil gerne have at den kører igennem et loop... pivot tabel..... jeg forsøger at lave noget i stil med dette........: Men pivottabel delen virker ikke :-(

Sheets("data").Activate

Do Until IsEmpty(Cells(1, 3)) = True
    Columns("c:c").Select
    Selection.Copy
    Columns("a:a").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Columns("c:c").Select
    Selection.Delete Shift:=xlToLeft
   
    Dim pivotnavn As String
    pivotnavn = ThisWorkbook.Worksheets("data").Range("a1").Value
   
    Columns("a:a").Select
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "Data!a1").CreatePivotTable TableDestination:="", TableName:="Pivottabel2" _
        , DefaultVersion:=xlPivotTableVersion10
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
    ActiveSheet.Cells(3, 1).Select
    ActiveSheet.PivotTables("Pivottabel1").AddFields RowFields:="& pivotnavn &"
    ActiveSheet.PivotTables("Pivottabel1").PivotFields("& pivotnavn &").Orientation = _
        xlDataField
   
  Loop
End Sub
Avatar billede sjap Praktikant
07. april 2005 - 14:00 #6
Hvorfor er det lige at du vil lave et loop?

Den skal måske lige pudses lidt af, men nedenstående laver en optælling af hver værdi:

    Columns("A:A").Select
    ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:="Ark1!C1", TableDestination:="[Mappe2]Ark2!R1C1", TableName:="Pivottabel1"
    ActiveSheet.PivotTables("Pivottabel1").PivotFields("2").Orientation = xlDataField
    ActiveSheet.PivotTables("Pivottabel1").AddFields RowFields:="2"
    ActiveSheet.PivotTables("Pivottabel1").PivotFields("Antal af 2").Orientation = xlHidden
    ActiveSheet.PivotTables("Pivottabel1").PivotFields("2").Orientation = xlDataField
    ActiveSheet.PivotTables("Pivottabel1").PivotFields("Data").PivotItems("Antal af 2").Position = 1
Avatar billede simon_iknow Nybegynder
07. april 2005 - 14:03 #7
Det er fordi jeg har brug for en pivot tabel pr. kolonne og der kan være op til 50 kolonner. Se det som et spørgeskema hvor der skal være en pivottabel pr spørgsmål
Avatar billede sjap Praktikant
07. april 2005 - 14:08 #8
OK. Så tror jeg, jeg fattede det! Beklager, hvis jeg er lidt tungnem.
Avatar billede simon_iknow Nybegynder
07. april 2005 - 14:20 #9
Det er sku lidt svært at forklare på skrift.... jeg har jo billedet af hvad der skal gøres inde i hovedet, så for mig er det jo ganske let at forstå..... jeg er bare glad for at kunne få det forklaret :-)
Avatar billede sjap Praktikant
07. april 2005 - 14:22 #10
Kender det kun alt for godt. Det kan være meget svært at få det på skrift.
Avatar billede sjap Praktikant
07. april 2005 - 14:29 #11
Pivottabeller er ikke lige min stærke side, men hvad går galt i din makro? Virker makroen, når du ikke looper?
Avatar billede simon_iknow Nybegynder
07. april 2005 - 14:31 #12
Nej makroen virker ikke på noget tidspunkt... tror måske at excel har lidt problemer med at oprette pivottabel via makro.... men igen vb er ikke lige min stærkeste side
Avatar billede sjap Praktikant
07. april 2005 - 14:32 #13
Hvis jeg ikke tager meget fejl, så ser det ud til at din kode kopiere kolonne C til kolonne A og så laver en pivottabel ud fra kolonne A. Og det gør den så indtil Cells(1, 3) er tom (hvis den nogensinde bliver det, for jeg kan ikke lige se hvornår den skifter værdi).
Avatar billede sjap Praktikant
07. april 2005 - 14:33 #14
Nedenstående kode laver en pivottabel (men jeg ved ikke om det er sådan du vil have den):

    Columns("A:A").Select
    ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:="Ark1!C1", TableDestination:="[Mappe2]Ark3!R1C1", TableName:="Pivottabel3"
    ActiveSheet.PivotTables("Pivottabel3").AddFields RowFields:="Spørgsmål 1"
    With ActiveSheet.PivotTables("Pivottabel3").PivotFields("Spørgsmål 1")
        .Orientation = xlDataField
        .Name = "Antal"
    End With
Avatar billede simon_iknow Nybegynder
07. april 2005 - 14:35 #15
Her skulle den gerne slette kolonne c hvorefter den flytter række d til c..... kopierer c til a igen .......og når der ikke er flere kolonner med tal i så slutter den

  Columns("c:c").Select
    Selection.Delete Shift:=xlToLeft
Avatar billede sjap Praktikant
07. april 2005 - 14:37 #16
Den havde jeg fuldstændigt overset! Smart nok.
Avatar billede sjap Praktikant
07. april 2005 - 15:13 #17
Det tog lidt tid (det er s..... svært!), men nu tror jeg, der ligger er brugbart forslag.

Forslaget bruger dit ark "data", og derudover skal du lige lave et tomt ark der hedder "Ark3". Navnet kan vi altid ændre, men indtil videre vil prøve at få makroen til at fungere.

Sub FlerePivot()
Dim PivotNavn As String
Dim Tæller As Integer

Sheets("data").Activate
Tæller = 0
Do Until IsEmpty(Cells(1, 3)) = True
    Tæller = Tæller + 1
    Columns("c:c").Select
    Selection.Copy
    Columns("a:a").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Columns("c:c").Select
    Selection.Delete Shift:=xlToLeft
   
    PivotNavn = ThisWorkbook.Worksheets("Data").Range("a1").Value
   
    Columns("a:a").Select
    ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:="Data!C1", TableDestination:="[Mappe2.xls]Ark3!R" & (Tæller - 1) * 10 + 1 & "C1", TableName:="PivotTabel " & Tæller
    ActiveSheet.PivotTables("PivotTabel " & Tæller).AddFields RowFields:=PivotNavn
    ActiveSheet.PivotTables("PivotTabel " & Tæller).PivotFields(PivotNavn).Orientation = xlDataField
    Sheets("data").Activate
Loop

End Sub
Avatar billede simon_iknow Nybegynder
07. april 2005 - 15:20 #18
Det er sku genialt ..... tak skal du have det virker fint :-)
Avatar billede sjap Praktikant
07. april 2005 - 15:23 #19
:0)
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