Anzeige
Archiv - Navigation
1724to1728
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellen vergleichen

Tabellen vergleichen
22.11.2019 10:18:24
Andrea
Hallo Liebe Exelfreunde,
ich benötige mal wieder eure Hilfe. Gibt es die Möglichkeit Werte aus 4Tabellen(gleicher Aufbau) in einer Tabelle zusammenzufassen, sodass ich die Werte aus aus tabelle1-4 nebeneinander sehe.
Jede Tabelle ist in Spalter 1 mit ID's versehen und in den weiteren Spaltenüberschriften sind die Tage des Monats mit Datum eingetragen. Ich möchte erreichen dass ich am 01. des Monats aller 4 Werte vergleichen kann.
Vielen Dank im Voraus
Andrea

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen vergleichen
28.11.2019 14:50:15
Andrea
sorry war die letzten Tage verhindert, musste mich erst einmal um andere Sachen kümmern.
werde mich aber an Sverweis setzen und hoffen dass er so flexibel ist wie ich ihn brauche.
VG Andrea
AW: Tabellen vergleichen - Makro-Lösung
22.11.2019 14:21:45
fcs
Hallo Andrea,
mit dem nachfolgenden Makro werden die Daten in eine per Pivot auswertbare Form umgestellt und dann ein Pivottabellenbericht generiert.
Voraussetzung ist hier, dass die Werte Zahlen sind.
das Makro kannst du in ein allgemeines Modul in deiner persönliche Makroarbeitsmappe übernehmen.
Wenn du die Tage alle nebeneinander haben willst, dann kannst du das Feld Datum auch al1 1. Feld in den Spaltenbereich verschieben.
Ansonsten muss du mal probieren, welche Anordnung der Felder ID. Datum und Tabelle die günstigste Anordnung für einen Vergleich liefert - Danach kann man dann das Makro noch etwas anpassen.
LG
Franz
Sub Vergleichstabelle_erstellen_2()
'Auswertung via Pivotbericht
Dim iWs As Integer, Zeile_L As Long, Zeile As Long, Spalte As Long
Dim wkb As Workbook
Dim wksZiel As Worksheet
Dim varDatum, rngID As Range, rngWerte As Range
Set wkb = ActiveWorkbook
Application.StatusBar = "Daten der 4 Tabellen werden in neuer Mappe neu angeordnet"
'Neue Mape anlegen für Vergleichsdaten
Application.Workbooks.Add Template:=xlWBATWorksheet
Set wksZiel = ActiveWorkbook.Worksheets(1)
'Zieltabelle  - Spaltentitel eintragen und formatieren
With wksZiel
Zeile = 1
.Cells(Zeile, 1) = "ID"
.Cells(Zeile, 2) = "Datum"
.Cells(Zeile, 3) = "Wert"
.Cells(Zeile, 4) = "Tabelle"
.Range("B:B").NumberFormat = "DD.MM.YYYY"
.Range("A2").Select
ActiveWindow.FreezePanes = True
.Name = "Vergleich " & Format(Date, "YYYY-MM-DD")
End With
Application.ScreenUpdating = False
'Die 4 Tabellenblätter abarbeiten
Zeile = Zeile + 1
For iWs = 1 To 4
With wkb.Worksheets(iWs)
Zeile_L = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rngID = .Range(.Cells(2, 1), .Cells(Zeile_L, 1))
'Die Spalten ab Soalte 2 abarbeiten
For Spalte = 2 To .Cells(1, .Columns.Count).End(xlToLeft).Column
varDatum = .Cells(1, Spalte).Value
Set rngWerte = .Range(.Cells(2, Spalte), .Cells(Zeile_L, Spalte))
With wksZiel
rngID.Copy .Cells(Zeile, 1)
.Range(.Cells(Zeile, 2), .Cells(Zeile + rngID.Rows.Count - 1, 2)) =  _
varDatum
rngWerte.Copy .Cells(Zeile, 3)
.Range(.Cells(Zeile, 4), .Cells(Zeile + rngID.Rows.Count - 1, 4)) = _
wkb.Worksheets(iWs).Name
End With
Zeile = Zeile + rngID.Rows.Count
Next
End With
Next
With wksZiel
.Columns.AutoFit
'Rahmenlinien ergänzen
With .UsedRange
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End With
End With
Call MakePivot(wksData:=wksZiel)
Application.StatusBar = False
Application.ScreenUpdating = True
MsgBox "Fertig"
End Sub
Sub MakePivot(wksData As Worksheet)
' Pivot Auswertung erstellen
Dim wksPivot As Worksheet
Dim pvTab As PivotTable
'Tabellenblatt für die auswertung anlegen
wksData.Parent.Worksheets.Add
Set wksPivot = ActiveSheet
'Pivot-tabellenbericht erstellen
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
wksData.Name & "!" & wksData.UsedRange.Address(True, True, xlR1C1)).CreatePivotTable _
TableDestination:=wksPivot.Name & "!R3C1", TableName:="PivotTable1"
wksPivot.Select
wksPivot.Name = "Auswertung"
Set pvTab = wksPivot.PivotTables(1)
'Optioen des Pivotberichtes setzen
With pvTab
.ColumnGrand = False
.HasAutoFormat = True
.DisplayErrorString = False
.DisplayNullString = True
.EnableDrilldown = True
.ErrorString = ""
.MergeLabels = False
.NullString = ""
.PageFieldOrder = 2
.PageFieldWrapCount = 0
.PreserveFormatting = True
.RowGrand = False
.SaveData = True
.PrintTitles = False
.RepeatItemsOnEachPrintedPage = True
.TotalsAnnotation = False
.CompactRowIndent = 1
.InGridDropZones = False
.DisplayFieldCaptions = True
.DisplayMemberPropertyTooltips = False
.DisplayContextTooltips = True
.ShowDrillIndicators = True
.PrintDrillIndicators = False
.AllowMultipleFilters = False
.SortUsingCustomLists = True
.FieldListSortAscending = False
.ShowValuesRow = False
.CalculatedMembersInFilters = False
.RowAxisLayout xlTabularRow
End With
With pvTab.PivotCache
.RefreshOnFileOpen = False
.MissingItemsLimit = xlMissingItemsNone
End With
pvTab.RepeatAllLabels xlDoNotRepeatLabels
'Spalten /Felder im Bericht plazieren
With pvTab.PivotFields("Tabelle")
.Orientation = xlColumnField
.Position = 1
End With
With pvTab.PivotFields("Datum")
.Orientation = xlRowField
.Position = 1
End With
With pvTab.PivotFields("ID")
.Orientation = xlRowField
.Position = 2
End With
pvTab.AddDataField pvTab.PivotFields("Wert"), "Summe von Wert", xlSum
'keine Teilergebnisse anzeigen
pvTab.PivotFields("ID").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
pvTab.PivotFields("Datum").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
pvTab.PivotFields("Wert").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
pvTab.PivotFields("Tabelle").Subtotals = Array _
(False, False, False, False, False, False, False, False, False, False, False, False)
Range("C5").Select
ActiveWindow.FreezePanes = True
wksPivot.Columns.AutoFit
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige