Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datenblätter zusammenführen und auswerten

Datenblätter zusammenführen und auswerten
Heiko
Liebe Excelprofis,
Ich verzweifle gerade an folgendem Problem. Ich habe eine Exceldatei mit mehreren Tabellenblättern die unterschiedliche Jahre darstellen (Blattname = Jahreszahl)
In Spalte A sind Artikelnummern angegeben, in Spalte B der Preis (siehe Bsp-Tabelle ohne Blatt "Ziel")
https://www.herber.de/bbs/user/71220.xls
Ich möchte nun automatisch ein weiteres Tabellenblatt erstellen, indem die vorherigen zusammengefügt werden (Aussehen s. Blatt "Ziel"). Dabei sollen die Artikelnummern verglichen werden, wenn diese identisch sind soll der Preis des Artikels in die entsprechende Jahresspalte des Ziel-Blattes eingetragen werden.
Vielen Dank schonmal für eure Hilfe,
Gruß Heiko
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datenblätter zusammenführen und auswerten
24.08.2010 09:01:07
Mike
Hey Heiko,
füge bei B3 auf der Zieltabelle folgende Formel ein:
=WENN(ISTNV(SVERWEIS($A3; '2010'!$A$2:$B$7; 2; FALSCH)); 0; SVERWEIS($A3; '2010'!$A$2:$B$7; 2; FALSCH))
Sind bei den leeren Artikelnummern keine €-Zeichen gewünscht, ändere den Wert 0; auf "";. Für die
weiteren Jahre ist denn lediglich 2010 durch 2011 / 2012 zu ersetzen.
Gruss
Mike
Anzeige
AW: Datenblätter zusammenführen und auswerten
24.08.2010 09:28:12
Heiko
Hallo Mike,
Deine Funktion funktioniert, vielen Dank.
Allerdings fehlt mir eher ein Automatismus, in dem zusätzlich die Artikelnummern aus den Blättern 2010, 2011, 2012,... in das Zielblatt eingetragen, sortiert und doppelte Einträge gelöscht werden. Außerdem ändern sich die Blattbezeichnungen und Anzahl der Inputblätter. Bei Nutzung der Funktion WENN(ISTNV(...)) müsste ich dann immer die Verweise händisch abändern.
Viele Grüße,
Heiko
Anzeige
AW: Datenblätter zusammenführen und auswerten
24.08.2010 09:41:02
EvilRik
Hallo Heiko,
versuch das mal.
Option Explicit
Sub Blatteinfügen()
Dim wks, ArtikelNr, ArtikelPreis, zae1, zae2, zae3, Anz
On Error Resume Next
With ThisWorkbook
.Worksheets.Add , Worksheets(.Sheets.Count), 1, xlWorksheet
.ActiveSheet.Name = "Ziel"
.Worksheets("Ziel").Cells(2, 1) = "ArtikelNummer"
For Each wks In ThisWorkbook.Worksheets
zae1 = zae1 + 1
If wks.Name  "Ziel" Then
.Worksheets("Ziel").Cells(1, zae1 + 1) = "Preis"
.Worksheets("Ziel").Cells(2, zae1 + 1) = wks.Name
For zae2 = 1 To 10000
ArtikelNr = .Worksheets(wks.Name).Cells(zae2 + 1, 1)
ArtikelPreis = .Worksheets(wks.Name).Cells(zae2 + 1, 2)
If IsEmpty(ArtikelNr) Then Exit For
Anz = " "
Anz = WorksheetFunction.Match(ArtikelNr, .Worksheets("Ziel").Range("A3: _
A10000"), 0)
If IsNumeric(Anz) And Anz > 0 Then
.Worksheets("Ziel").Cells(Anz + 2, zae1 + 1) = ArtikelPreis
Else
zae3 = zae3 + 1
.Worksheets("Ziel").Cells(zae3 + 2, 1) = ArtikelNr
.Worksheets("Ziel").Cells(zae3 + 2, zae1 + 1) = ArtikelPreis
End If
Next zae2
End If
Next
End With
End Sub
Gruß Henrik
Anzeige
AW: Datenblätter zusammenführen und auswerten
24.08.2010 11:26:41
EvilRik
Hallo Heiko,
versuch das mal.
Option Explicit
Sub Blatteinfügen()
Dim wks, ArtikelNr, ArtikelPreis, zae1, zae2, zae3, Anz
On Error Resume Next
With ThisWorkbook
.Worksheets.Add , Worksheets(.Sheets.Count), 1, xlWorksheet
.ActiveSheet.Name = "Ziel"
.Worksheets("Ziel").Cells(2, 1) = "ArtikelNummer"
For Each wks In ThisWorkbook.Worksheets
zae1 = zae1 + 1
If wks.Name  "Ziel" Then
.Worksheets("Ziel").Cells(1, zae1 + 1) = "Preis"
.Worksheets("Ziel").Cells(2, zae1 + 1) = wks.Name
For zae2 = 1 To 10000
ArtikelNr = .Worksheets(wks.Name).Cells(zae2 + 1, 1)
ArtikelPreis = .Worksheets(wks.Name).Cells(zae2 + 1, 2)
If IsEmpty(ArtikelNr) Then Exit For
Anz = " "
Anz = WorksheetFunction.Match(ArtikelNr, .Worksheets("Ziel").Range("A3: _
A10000"), 0)
If IsNumeric(Anz) And Anz > 0 Then
.Worksheets("Ziel").Cells(Anz + 2, zae1 + 1) = ArtikelPreis
Else
zae3 = zae3 + 1
.Worksheets("Ziel").Cells(zae3 + 2, 1) = ArtikelNr
.Worksheets("Ziel").Cells(zae3 + 2, zae1 + 1) = ArtikelPreis
End If
Next zae2
End If
Next
End With
End Sub
Gruß Henrik
Anzeige
AW: Datenblätter zusammenführen und auswerten
24.08.2010 11:44:08
Heiko
Hallo Henrik,
Vielen Dank, funktioniert super. Habe noch folgenden Code zum Sortieren eingefügt:
ActiveSheet.Range("A3:F60000").Select
Selection.Sort Key1:=ActiveSheet.Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Damit ist mein Tag gerettet.
Viele Grüße
Heiko
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige