Avatar billede mhp_dk Nybegynder
18. august 2003 - 10:13 Der er 14 kommentarer og
2 løsninger

Pivotabel med formler i næste kolonne

Jeg har 1 simpel pivotabeller med 3 kolonner, i kolonne 4 vil jeg så gerne lave min egen formel ud fra andre data, det går også fint, men ved en opdatering kan der f.eks. kommer 100 ny rækker også mangler min formel på de 100 nye rækker, er der nogen der ved hvordan man kan få formlerne med ligsom ved et ODBC kald ?
Avatar billede fobian Nybegynder
18. august 2003 - 11:35 #1
Det lyder som om at du laver den 4. kolonne til højre for din pivot tabel, som almindelige formler, som henter tallene fra de to øvrige kolonner.

Hvis du i stedet højreklikker mens musen peger på din pivottabel og vælger indsæt, så kan du oprette et nyt felt i pivottabellen, som beregner på alle de data der er i tabellen. Når du har valgt indsæt, kommer der en menu frem på skærmen, hvor du kan navngive det nye felt og opbygge din beregningsformel.
Avatar billede mhp_dk Nybegynder
18. august 2003 - 12:44 #2
Det var egenligt også det jeg regnede med, men jeg kan ikke få en menu frem der hedder indsæt i pivotabellen og hvis jeg vælger den indsæt på kolonnen får jeg ikke lov til at indsætte en
Avatar billede fobian Nybegynder
18. august 2003 - 13:11 #3
Det er vigtigt, at musen peger på et område der er indenfor din pivot-tabel, for at du får den rigtige menu frem når du højreklikker. Jeg kører Excel 97 - hvilken version er det du arbejder med?
Avatar billede mhp_dk Nybegynder
18. august 2003 - 13:20 #4
Det er Excel 2000, og jeg mener ikke jeg kan få nogen menu frem der hedder indsæt.
Avatar billede fobian Nybegynder
18. august 2003 - 13:31 #5
Jeg har Excel 2000 på en anden pc, så jeg checker lige på den, når jeg kommer hjem, hvis ikke der er andre, som kommer først med et svar :-)
Avatar billede mhp_dk Nybegynder
18. august 2003 - 14:07 #6
Du har ret, man skal blot makere hele tabellen for at indsætte kolonne, men mit problem er ikke løst fordi jeg har en formel med et opslag i et andet ark og det har man ikke lov til i pivotabellen
Avatar billede fobian Nybegynder
18. august 2003 - 14:24 #7
Det tror jeg at du har ret i.

Hvad så hvis du indsætter denne ekstra kolonne i dit data-sæt og laver beregningen der. Og derefter vælger det nye felt inde fra pivot-tabel Guiden?
Avatar billede mhp_dk Nybegynder
18. august 2003 - 14:27 #8
Heller ikke fordi, det er 2 opslag i en database som desævrre ikke kan blive til 1
Avatar billede fobian Nybegynder
18. august 2003 - 14:58 #9
Så er vi ved at være tilbage til udgangspunktet med din 4. kolonne igen :-)

Du kunne lave en knap på dit regneark, som kan opdatere data og samtidig kopiere din formel fra kolonne 4 ned til den sidste række i pivot-tabellen.
Hvad siger du til det. Jeg kan godt lave sådan en macro i aften, hvis du kan bruge den....
Avatar billede mhp_dk Nybegynder
18. august 2003 - 15:14 #10
Det vil da bare være fint, men det bedste ville nok være at have det i VBA i arket sådan at formlen bliver kopieret ved aktivering af fanebladet..det skal jo ikke være fornemt :o)
Avatar billede fobian Nybegynder
19. august 2003 - 09:09 #11
Nu har jeg lavet et eksempel til dig. Jeg kan godt maile det, hvis du er interesseret. Ellers er koden nedenfor:

Jeg har et dataområde på Ark1 og min pivot tabel er på Ark4. I celle B1 på Ark4 er der mulighed for at vælge forskellige sider i pivotabellens side-dropdown. Det som macroen gør, er at holde øje med, når værdien i B1 ændres, så opdateres formlerne i den ekstra kolonne. Pivottabellen bliver også opdateret, når den aktiveres. Klassemodulet anvendes til at holde styr på værdien i B1.

I ark4's kodemodul placeres koden:

Private Sub Worksheet_Activate()
    Set CPivot = New OpdaterPivot
    CPivot.Område = Range("b1").Value
    ActiveSheet.PivotTables("Pivottabel1").RefreshTable
    Range(Cells(5, 3), Cells(Range("c5").End(xlDown).Row, 3)).ClearContents
    Range(Cells(5, 3), Cells(Range("b4").End(xlDown).Row, 3)).Value = "=+RC[-1]*R1C6"
End Sub

Private Sub Worksheet_Calculate()
    If CPivot.Område <> Range("b1") Then
        CPivot.Område = Range("b1")
        Range(Cells(5, 3), Cells(Range("c5").End(xlDown).Row, 3)).ClearContents
        Range(Cells(5, 3), Cells(Range("b4").End(xlDown).Row, 3)).Value = "=+RC[-1]*R1C6"
    End If
End Sub

Private Sub Worksheet_Deactivate()
    Set CPivot = Nothing
End Sub

I ThisWorkbook kodemodul placeres koden:
Private Sub Workbook_Open()
    Set CPivot = New OpdaterPivot
    CPivot.Område = Sheets("ark4").Range("b1").Value
End Sub

Du skal tilføje et modul og skrive koden:
Public CPivot As OpdaterPivot

Og til sidst tilføje et klassemodul, som du kalder OpdaterPivot, og tilføjer koden:

Option Explicit
Private m_Område As String

Public Property Get Område() As String
    Område = m_Område
End Property

Public Property Let Område(ByVal Omr As String)
    m_Område = Omr
End Property
Avatar billede fobian Nybegynder
21. august 2003 - 10:54 #12
Kan du få det til at virke?
Avatar billede mhp_dk Nybegynder
21. august 2003 - 11:18 #13
Har desværre rimeligt meget at se til på arbejdet lige p.t. men skal vende tilbage med svar hurtigt.....
Avatar billede b_hansen Novice
25. august 2003 - 12:57 #14
en anden løsning kunne måske være at lave beregningen i rådataene?
Avatar billede fobian Nybegynder
04. november 2004 - 10:04 #15
Lukker du spørgsmålet?
Avatar billede mhp_dk Nybegynder
05. november 2004 - 15:25 #16
Sådan !
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