Avatar billede Kim Nybegynder
26. januar 2012 - 11:23 Der er 6 kommentarer og
1 løsning

sammenlægning af dynamiske tabeller i en pivotabel

Hej Forum

Jeg har 4 faneblade med 4 tabeller som hver repræsenterer et vagtskema for en by
Hvert vagtskema indeholder en række felter med
Navn, lønnr, dato (for vagten), antal timer, salg (medarbejderens omsætning).

Arkene er dynamiske, og bliver løbende opdateret med nye vagter. Jeg ønsker at sammenkøre de 4 tabeller i en pivottabel, men fordi arkende er dynamiske kan jeg ikke lige se hvordan jeg lægge tabellerne sammen?
Avatar billede Thorp Praktikant
26. januar 2012 - 12:45 #1
Excel std. pivottabeller kan kun referer til én tabel. Skal du sammenkoble flere dynamiske tabeller vil jeg anbefale at du benytter dig af powerpivot.
Avatar billede Kim Nybegynder
26. januar 2012 - 13:00 #2
Ok - Jeg bruger excel 2007, og så vidt jeg kan se fungerer powerpivot kun med excel 2010??
Avatar billede Thorp Praktikant
26. januar 2012 - 13:08 #3
Du skal vel også kunne se vagter pr. by?
Avatar billede Kim Nybegynder
26. januar 2012 - 13:43 #4
Ja det skal jeg - Her har jeg en ekstra kolonne, så der for hver række står et bynavn
Avatar billede Thorp Praktikant
26. januar 2012 - 17:25 #5
Du kan prøve denne workaround:

Gem dit excelark med dine faner. Åben et nyt regneark, hvor du via menuen Data vælger "Hent eksterne data" "Fra andre kilder". Her vælger du fra "Microsoft Query". I dialogboksen "Vælg datakilde" vælger du "Excel Files*" herefter trykker du på OK knappen, og du finder dit gemte regneark og klikker på OK. I "Guiden Forespørgsel - vælg kolonner" vælger du dine faner og inkludere dem i forespørgslen. Her er det vigtigt at kolonneoverskrifterne i dine faner er helt ens. Herefter klikker du på næste og trykker OK til den dialogboks der fremkommer. Nu ser du dine Faner som Tabeller i Microsoft Query. Herefter trykker du på SQL knappen og skriver følgende SQL-sætning:

SELECT Navn, Lønnr, dato, timer, salg, by FROM 'Bynavn_1$'
UNION ALL
SELECT Navn, Lønnr, dato, timer, salg, by FROM 'Bynavn_2$'
UNION ALL
SELECT Navn, Lønnr, dato, timer, salg, by FROM 'Bynavn_3$'
UNION ALL
SELECT Navn, Lønnr, dato, timer, salg, by FROM 'Bynavn_4$'

Hvor Bynavn_x er dine faner.

Herefter klikker du på OK og dine tabeller skulle nu gerne være samlet i én tabel. Herefter klikker du på "Returner data" og vælger pivottabel som importformat.

Når du skal opdatere din pivottabel klikker du bare på "Opdater alle" under data menuen og dine ændringer skulle gerne slå igennem i din pivottabel.
Avatar billede Kim Nybegynder
12. maj 2012 - 10:03 #6
Jeg har brugt denne løsning


Sub GetDataFromAllSheets()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim Optælningskonstant As Integer

DeleteRows (2)


Call GetDataDemo("livredderrapport 2012 Kolding.xlsm", 0)

Optælningskonstant = Cells(2, 21)

Call GetDataDemo("livredderrapport 2012 Odense.xlsm", Optælningskonstant)

Optælningskonstant = Cells(2, 21)

Call GetDataDemo("livredderrapport 2012 Aalborg.xlsm", Optælningskonstant)

Optælningskonstant = Cells(2, 21)

Call GetDataDemo("livredderrapport 2012 Århus.xlsm", Optælningskonstant)






End Sub

'you can extract data from a closed file by using an
'XLM macro. Credit for this technique goes to John
'Walkenback > http://j-walk.com/ss/excel/tips/tip82.htm

Sub GetDataDemo(FileNameInput, InputInteger)
   
    Dim FilePath$, Row&, Column&, Address$
    Dim NumRows As Integer, FileName As String
   
       
    'change constants & FilePath below to suit
    '***************************************
    FileName = FileNameInput
       
    Const SheetName$ = "Vagtdata"
    FilePath = ActiveWorkbook.Path & "\"
   
   
    '****************************** Getting number of rows
    Application.ScreenUpdating = False
    If Dir(FilePath & FileName) = Empty Then
        MsgBox "The file " & FileName & " was not found", , "File Doesn't Exist"
        Exit Sub
    End If
    Address = Cells(2, 1).Address
    NumRows = GetData(FilePath, FileName, "Data Baggrundskode", Address)
    '*******************************

    Const NumColumns& = 14
    Const NumStart& = 4
    '***************************************
   
    DoEvents
    Application.ScreenUpdating = False
    If Dir(FilePath & FileName) = Empty Then
        MsgBox "The file " & FileName & " was not found", , "File Doesn't Exist"
        Exit Sub
    End If
    For Row = 1 To NumRows
        For Column = 1 To NumColumns
            Address = Cells(Row + NumStart, Column).Address
            Cells(Row + 1 + InputInteger, Column) = GetData(FilePath, FileName, SheetName, Address)
        Next Column
    Next Row
    ActiveWindow.DisplayZeros = False
   
    Cells(2, 21) = NumRows + InputInteger
   
End Sub


Private Function GetData(Path, File, Sheet, Address)
    Dim Data$
    Data = "'" & Path & "[" & File & "]" & Sheet & "'!" & _
    Range(Address).Range("A1").Address(, , xlR1C1)
    GetData = ExecuteExcel4Macro(Data)
End Function


Sub DeleteRows(ByVal HeaderRow As Long)
'''''''''''''''''''''''''''''''''''''''''
'Deletes all Rows starting from HeaderRow
'to the last row of the Worksheet
'''''''''''''''''''''''''''''''''''''''''
'Set the range to be deleted
Dim rngRange As Range
With Sheets("Vagtdata")
  Set rngRange = .Range _
    (.Cells(HeaderRow, 1), .Cells(.Rows.Count, 1)).EntireRow
End With
'Delete this range
rngRange.Delete
End Sub
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