Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1588to1592
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
Viele Daten in eine Tabelle zusammenführen
13.11.2017 08:44:27
Julian
Moin moin,
Ich bin auf euer Forum in meiner Suche auf Hilfe gestoßen ( vorher immer als stummer Leser und SuFu Nutzer). In Excel kann ich relativ gut mit Formeln und Aufbau umgehen, aber in VBA bin ich eine Niete.(gehe aber in einen Kurs im Februar) Verwenden tue ich Excel 2016( so heißt es auf jedenfalls, konnte ich aber nicht auswählen in den Excel Versionen)
Mein Problem ist sehr ähnlich wie von Daniele :
https://www.herber.de/forum/archiv/716to720/718726_Viele_Excel_Dateien_zu_einer_zusammenfuehren.html
Nun zu meinem Problem:
Ich muss viele Daten zusammen führen. Das es mit einem Makro geht, konnte ich an Danieles Beispiel sehen.
Leider ist dieses so bei mir nicht anwendbar.
Ich muss eine Lastgangerfassung für Strom in meinem Unternehmen machen und die Daten bekomme ich von unserem Netzversorger. Dieser hat mir die Daten in Ordnern geschickt Januar-Dezember (so schauen die Bezeichnungen aus 160101_Lastgangdaten_Firma_XXX ( bedeutet also die Datum zu Weisung für den 01.01.2016)
Dies gibt es jetzt für die anderen 365 Tage jeweils dann aufgeteilt auf die einzelnen Monate.
In soweit geht es ja auch bei Danieles Problem. Bei mir geht es leider aber weiter.
In der Excel Datei selber sind 28 Reiter von A-AA mit einem Ort bezeichnet.
Ich muss jetzt jeweils passend zu dem Ort ( der ist immer gleich geschrieben) die Daten der Lastgänge zuweisen( also für alle 365 Tage)
Könnte mir da jemand helfen :)

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Viele Daten in eine Tabelle zusammenführen
13.11.2017 08:52:48
Armin
Hallo Julian,
lade doch bitte mal 2 Beispiele hoch (Daten und wie die Sammelmappe aussehen soll).
Gruß Armin
AW: 2006?
13.11.2017 09:01:03
Fennek
Hallo,
ähnliche Anfragen kommen "fast jeden Tag", d.h. es sollten auch andere Quellen als 2006 zu finden sein.
Das reine Einlesen der Daten ist vermutlich nicht so schwierig, aber zusammen mit den angedeuteten Auswertungen kann man sich "einige Stunden" damit beschäftigen. Ohne finanzielle Honorierung werde ich mich nicht engagieren.
Aber es gibt hier auch viele andere, die das vielleicht so programmieren. In jedem Fall ist eine kleine Musterdatei notwendig.
mfg
Anzeige
AW: Viele Daten in eine Tabelle zusammenführen
13.11.2017 09:32:15
Julian
Hallo ihr beiden,
@ Armin
vielen Dank für deine flotte Nachricht,
eine Beispiel Datei habe ich mal mir richtigen Daten aber falschen Namen zurecht gebastelt
https://www.herber.de/bbs/user/117633.xlsx
Ziel ist es nachher alle Daten von einem Jahr zu haben, sodass ich per Pivot Tabelle den Gesamtstrombedarf Monat/Woche auslesen kann.
Die Rote Schrift in der Ergebnistabelle habe ich nur zur Veranschaulichung eingetragen, die darf natürlich bei einer Pivot Tabelle dort nicht sein.
@ Fennek
Danke dir auch, kann es verstehen, dass man sowas ggf. honoriert haben möchte ( ich bekomme es nicht mal honoriert, da kann ich schlecht etwas weitergeben :( )
Leider habe ich sowas wie meine Anfrage nicht finden können ( ja man findet echt viele, aber die meisten wollen das in einzelne Tabellenblätter aufteilt haben und nicht alles in einem Blatt in die einzelnen Spalten)
Anzeige
AW: Viele Daten in eine Tabelle zusammenführen
13.11.2017 12:19:43
Günther
Moin,
vom Prinzip her sollte das mit Power Query zu "erschlagen" sein.
Aber ich habe aufgehört nachzudenken, als ich der Ergebnistabelle keine einzige Formel gesehen habe und auch nicht ad hoc erkennen konnte, wie die Zahlen zustande kommen.
Ansonsten finde ich deine Reaktion auf Fenneks (durchaus korrekte Anmerkung) richtig nett formuliert. ;-) Ich ergänze das mal (aus meiner Sichtweise) so: Dein Arbeit- oder Auftraggeber will damit Geld erwirtschaften und das möglichst ohne einen (zusätzlichen) Cent zu bezahlen. Der Aufwand für die (saubere) Lösung ist nicht unerheblich, da sollte der Vorgesetzte (oder wer auch immer) einmal wissen, dass ein normaler Excel-User dabei an Grenzen stößt, die externer Hilfe bedürfen. Und dort kann man dann ja auch mal etwas von hiermit zu erwirtschafteten Profit (nicht negativ gemeint) abgeben. Ein Forum sollte aus meiner Sicht Hilfe zur Selbsthilfe "liefern", aber keine ethisch fragwürdige Profitmaximierung unterstützen. Trau dich doch einfach, deine Grenzen aufzuzeigen! Auf Dauer lohnt es sich gewiss.
Anzeige
AW: Viele Daten in eine Tabelle zusammenführen
13.11.2017 13:16:17
Julian
Mahlzeit Günther,
in der Ergebnistabelle sollen auch keine Formeln sein. Die Daten selber kommen (roh) wie du Sie siehst, in der Tabelle und sollen nur unter einander stehen, sodass ich per Pivot Tabelle eine Jahres/Monats/Wochenauswertung machen kann. Jede Tabelle sieht hierbei aus wie das erste Tabellenblatt der Beispieldatei und soll wie in meinem Beispiel einfach untereinander aufgeführt sein.
Profitmaximierung tuen leider sehr viele :(
Ich bin aber noch Student und mache gerade ein Pflichtpraktikum, welches mein 6. Semester vorschreibt. Dort kann ich froh sein einen Arbeitgeber gefunden zu haben, der noch ein paar Euro springen lässt. Deswegen auch mein Schmänkerle zu Fennek ( und ja, mir ist klar, dass manche Sachen einfach bezahlt werden müssten und nicht in einem Hilfe-Forum geklärt werden sollte) Hatte einfach gehofft, dass es ähnlich umsetzbar ist, wie bei Daniele, wo es anscheinend mit einem einfachem Makro ging.
Ich melde mein Thema mal als gelöst, auch wenn es nicht gelöst ist, da ich den Netzversorger erreichen konnte und diesem war es möglich mir nicht nur tagesweise die Daten zu geben, sondern es schon sofort in eine Tabelle für das komplette Jahr zu packen.
PS:
Ich bekomme im Frühjahr eine Excel-Fortbildung an der VHS, so steckt der AG doch ein wenig Geld in mehr Wissen :)
Anzeige
AW: Viele Daten in eine Tabelle zusammenführen
13.11.2017 18:21:17
fcs
Hallo Julian,
ich hatte mich schon mit deinem Problem beschäfftigt bevor du die Info gegeben hast, dass du eine Gesamtdatei fürd Jahr bekommen kannst.
Deshalb hier noch meine 2 Varianten, um die Tagesdateien in eine Gesamtdatei zu überführen.
Gruß
Franz
'Variante A ist optimal für Pivot-Auswertung, erzeugt aber fast eine Million Datenzeilen
'Laufzeit des Makros dürfte bei 365 Dateien sehr groß sein,
Sub Auswertung_vorbereiten_Var_A()
Dim wkbQ As Workbook
Dim wksQ As Worksheet
Dim wksW As Worksheet
Dim wksZ As Worksheet
Dim Zei_Z As Long
Dim Zei_Q As Long, Spa_Q As Long
Dim varJahr As String
Dim varOrdner
Dim arrMonate
Dim strDatei
Dim intTag As Integer, intMonat As Integer
Dim rngDatum As Range
Dim strAbnahme As String, varEnergie, varmax
Dim CalcStatus As Long
'Array mit dem Monatsnamen erzeugen
ReDim arrMonate(1 To 12)
For intMonat = 1 To 12
arrMonate(intMonat) = Format(DateSerial(2000, intMonat, 1), "MMMM")
Next
varJahr = InputBox("Jahr (letzte 2 Ziffern) für das die Auswertung " _
& "durchgeführt werden soll:", "Auswertung Wirkenergie Bezug", 16)
If varJahr = "" Then GoTo Beenden
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Bitte übergeordneten Ordner mit den Monats-Ordnern auswählen"
If .Show = -1 Then
varOrdner = .SelectedItems(1)
Else
GoTo Beenden
End If
End With
With Application
.ScreenUpdating = False
CalcStatus = .Calculation
.Calculation = xlCalculationManual
End With
For intMonat = 1 To 12
If Dir(varOrdner & "\" & arrMonate(intMonat), vbDirectory)  "" Then
For intTag = 1 To 31
strDatei = Dir(varOrdner & "\" & arrMonate(intMonat) & "\" _
& Format(Val(varJahr), "00") _
& Format(intMonat, "00") & Format(intTag, "00") & "*.xlsx", vbNormal)
If strDatei  "" Then
strDatei = varOrdner & "\" & arrMonate(intMonat) & "\" & strDatei
Set wkbQ = Application.Workbooks.Open(strDatei, ReadOnly:=True)
Set wksQ = wkbQ.Worksheets(1)
If wksZ Is Nothing Then
'Ergebnisblatt anlegen
Application.Workbooks.Add Template:=xlWBATWorksheet
Set wksZ = ActiveSheet
Zei_Z = 1
With wksZ
.Name = "Wirkenergie Bezug"
.Cells(Zei_Z, 1) = "Abnahmestelle"
.Cells(Zei_Z, 2) = "Datum_Zeit"
.Cells(Zei_Z, 3) = "kW"
.Cells(Zei_Z, 4) = "Energie"
.Cells(Zei_Z, 5) = "Max"
.Columns(1).AutoFit
.Columns(2).ColumnWidth = 15
Range("A2").Select
ActiveWindow.FreezePanes = True
Zei_Z = Zei_Z + 1
End With
End If
With wksQ
'Datums-Text in Spalte A in Datumswerte umwandeln
For Zei_Q = 13 To .Cells(.Rows.Count, 1).End(xlUp).Row
With .Cells(Zei_Q, 1)
.Value = CDate(.Text)
End With
Next
Zei_Q = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rngDatum = .Range(.Cells(13, 1), .Cells(Zei_Q, 1))
'Abnahmestellen abarbeiten
For Spa_Q = 2 To .Cells(7, Columns.Count).End(xlToLeft).Column
strAbnahme = .Cells(7, Spa_Q).Text
varEnergie = .Cells(9, Spa_Q).Value
varmax = .Cells(10, Spa_Q).Value
With wksZ
.Range(.Cells(Zei_Z, 1), _
.Cells(Zei_Z + rngDatum.Rows.Count - 1, 1)).Value =  _
strAbnahme
.Cells(Zei_Z, 4).Value = varEnergie
.Cells(Zei_Z, 5).Value = varmax
End With
rngDatum.Copy
wksZ.Cells(Zei_Z, 2).PasteSpecial Paste:=xlPasteValues
rngDatum.Offset(0, Spa_Q - 1).Copy
wksZ.Cells(Zei_Z, 3).PasteSpecial Paste:=xlPasteValues
Zei_Z = Zei_Z + rngDatum.Rows.Count
Next
Set rngDatum = Nothing
End With
Application.CutCopyMode = False
wkbQ.Close savechanges:=False
Set wkbQ = Nothing
Set wksQ = Nothing
End If
Next
End If
Next
With wksZ
.Columns(2).NumberFormat = "DD.MM.YY hh:mm"
.Columns(3).NumberFormat = "#,##0.00"
.Columns(4).NumberFormat = "#,##0.0"
.Columns(5).NumberFormat = "#,##0.00"
End With
With Application
.ScreenUpdating = True
.Calculation = CalcStatus
End With
MsgBox "Fertig"
Beenden:
End Sub
'Variante B entspricht in etwa deiner Vorgabe für die Ergebnistabelle
Sub Auswertung_vorbereiten_Var_B()
Dim wkbQ As Workbook
Dim wksQ As Worksheet
Dim wksW As Worksheet
Dim wksZ As Worksheet
Dim Zei_Z As Long
Dim Zei_Q As Long
Dim varJahr As String
Dim varOrdner
Dim arrMonate
Dim strDatei
Dim intTag As Integer, intMonat As Integer
Dim rngDatum As Range
Dim CalcStatus As Long
'Array mit dem Monatsnamen erzeugen
ReDim arrMonate(1 To 12)
For intMonat = 1 To 12
arrMonate(intMonat) = Format(DateSerial(2000, intMonat, 1), "MMMM")
Next
varJahr = InputBox("Jahr (letzte 2 Ziffern) für das die Auswertung " _
& "durchgeführt werden soll:", "Auswertung Wirkenergie Bezug", 16)
If varJahr = "" Then GoTo Beenden
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Bitte übergeordneten Ordner mit den Monats-Ordnern auswählen"
If .Show = -1 Then
varOrdner = .SelectedItems(1)
Else
GoTo Beenden
End If
End With
With Application
.ScreenUpdating = False
CalcStatus = .Calculation
.Calculation = xlCalculationManual
End With
For intMonat = 1 To 12
If Dir(varOrdner & "\" & arrMonate(intMonat), vbDirectory)  "" Then
For intTag = 1 To 31
strDatei = Dir(varOrdner & "\" & arrMonate(intMonat) & "\" _
& Format(Val(varJahr), "00") _
& Format(intMonat, "00") & Format(intTag, "00") & "*.xlsx", vbNormal)
If strDatei  "" Then
strDatei = varOrdner & "\" & arrMonate(intMonat) & "\" & strDatei
Set wkbQ = Application.Workbooks.Open(strDatei, ReadOnly:=True)
Set wksQ = wkbQ.Worksheets(1)
If wksZ Is Nothing Then
'Ergebnisblatt anlegen
Application.Workbooks.Add Template:=xlWBATWorksheet
Set wksZ = ActiveSheet
Zei_Z = 1
With wksZ
.Name = "Wirkenergie Bezug"
wksQ.Range(wksQ.Rows(2), wksQ.Rows(7)).Copy .Rows(1)
wksQ.Rows(7).Copy
wksZ.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
.Range("A6").Copy .Range("B2")
.Range("A6") = "Datum_Zeit"
Range("A7").Select
ActiveWindow.FreezePanes = True
Zei_Z = Zei_Z + 6
End With
End If
With wksQ
'Datums-Text in Spalte A in Datumswerte umwandeln
For Zei_Q = 13 To .Cells(.Rows.Count, 1).End(xlUp).Row
With .Cells(Zei_Q, 1)
.Value = CDate(.Text)
End With
Next
Zei_Q = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rngDatum = .Range(.Cells(13, 1), .Cells(Zei_Q, 1))
rngDatum.EntireRow.Copy wksZ.Cells(Zei_Z, 1)
Zei_Z = Zei_Z + rngDatum.Rows.Count
Set rngDatum = Nothing
End With
Application.CutCopyMode = False
wkbQ.Close savechanges:=False
Set wkbQ = Nothing
Set wksQ = Nothing
End If
Next
End If
Next
With wksZ
With .Columns(1)
.NumberFormat = "DD.MM.YY hh:mm"
.AutoFit
End With
End With
With Application
.ScreenUpdating = True
.Calculation = CalcStatus
End With
MsgBox "Fertig"
Beenden:
End Sub

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige