Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Suche eine geeignete Funktion
#1
Hallo,

ich benötige Hilfe bei dem folgenden Problem:

Ich habe eine Excel-Datei mit mehreren Tabellenblättern. In jedem Tabellenblatt sind in der ersten Spalte viele Nummern aufgeführt, wie etwa 12345678. In der Zeile hinter jeder Nummer stehen Informationen zu dieser Nummer, wie Lagerbestand, Lagerwert, Umsatz etc. Ich habe drei Tabellenblätter und aus den drei Tabellenblättern soll am Ende eins werden.

Das Tabellenblatt, dass sich am Ende aus den drei einzelnen ergeben soll, soll so aussehen:
Excel soll jetzt für mich erst einmal alle Nummern aus jedem Tabellenblatt in einer Spalte auflisten und - wenn möglich - die doppelten gleich streichen.
Dann möchte ich z. B. die Informationen, die in Tabellenblatt 1 in der Zeile zu Nummer 123 stehen, auch im zusammengefassten Tabellenblatt sehen, aber nicht einfach nur per kopieren und einfügen, sondern mit einer Funktion. im Tabellenblatt 2 sind andere Informationen zur Nummer 123 hinterlegt als in Tabellenblatt 1. Die aus Tabellenblatt 2 sollen auch automatisch in die Zeile zur Nummer 123 erscheinen, gleich hinter den Informationen aus Tabellenblatt 1. Gleiches mit dem 3. Tabellenblatt, hier sind auch Infos zur Nummer vorhanden, die dann auch in dem zusammengefassten Tabellenblatt erscheinen sollen.

Ist jetzt etwas wirr erklärt vielleicht. Einfacher: In Tabellenblatt 1 ist in Spalte A die Nummer 123. In der selben Zeile, in Spalte B, steht dann z.B. der Lagerwert.
In Tabellenblatt 2 steht in Spalte A auch die Nummer 123, in Spalte B steht dann der Wert in Euro.
In Tabellenblatt 3 steht auch wieder in Spalte A die Nummer 123 und in Spalte B stehen die Umsatzzahlen.
Ich möchte jetzt in einem 4. Tabellenblatt eine Übersicht, wo die Nummer 123 auch in Spalte A steht und dahinter in Spalte B, C und D hintereinander der Lagerwert aus Tabellenblatt 1, den Eurobetrag aus Tabellenblatt 2 und die Umsatzzahlen aus Tabellenblatt 3 stehen haben, alle zugeordnet zu der einen Nummer.

In echt sind es mehr Informationen und viele verschiedene Nummern, die auch doppelt vorkommen können. Und wie gesagt, das per kopieren und einfügen zu machen, wurde mir quasi "verboten" (Ich brauche das für die Arbeit und bin nur eine arme, hilflose Azubine) :20:

Ich hoffe, irgendjemand hier versteht mein Problem! Vielen vielen Dank im Voraus für alle Antworten Angel
Antworten Top
#2
Hallo,

Sind die Nummern auf allen 3 Arbeitsblättern identisch? oder können im 2. Arbeitsblatt mehr sein als im 1.?
Gruß,

Luffy  :100:

Personaltrainer - Ernährungsberater 
Antworten Top
#3
Pro Tabellenblatt sind unterschiedlich viele Nummern da. :)
Antworten Top
#4
Hallo,

aber auch unterschiedliche ? Wenn du zB eine Nummer im Tabellenblatt 2 hast, die in Tabellenblatt 1 nicht vorhanden ist gibt es für diese Nummer ja keinen Lagerwert. Oder sind die Nummern auf allen Tabellenblättern identisch und nur die Anzahl der Nummern ist verschieden?
Gruß,

Luffy  :100:

Personaltrainer - Ernährungsberater 
Antworten Top
#5
Hallo,

am einfachsten ist es wahrscheinlich, wenn Du eine Beispieldatei bereit stellst.
Dort trägst Du die Daten ein wie sie vorliegen und fügst auch direkt Deine "Zusammenfassung" mit ein,
in der man Dein gewünschtes Ergebnis sehen kann.

Gruß
Ich
Antworten Top
#6
Habe jetzt eine Beispieldatei angefügt (hoffe ich?)
Die leeren Zeilen sind beabsichtigt und auch, dass die Nummer auf der einen Seite doch nicht in Spalte A steht (ist mir vorher nicht so ganz aufgefallen)...
Darauf, dass die Angaben da jetzt realistisch sind, hab ich so auf die Schnelle nicht geachtet. Sleepy


Angehängte Dateien
.xlsx   Beispiel.xlsx (Größe: 13,09 KB / Downloads: 10)
Antworten Top
#7
Hi,

ich will's mir ja auch einfach machen :32:
Wäre es ein großes Problem für Dich wenn man den Aufbau von 3 so ändert?


Arbeitsblatt mit dem Namen '3'
 ABCD
1Material200320042005
212370.158,00 €4.589,00 €114.523,00 €
3456522,00 €521.456,00 €458.977,00 €
478985.633,00 €123.657,00 €45.895,00 €
51115.478,00 €89.563,00 €120.036,00 €
62221.250,00 €25.411,00 €45.896,00 €
73334.589,00 €12.036,00 €45.896,00 €
8444145,00 €157.899,00 €78.520,00 €
955514.521,00 €125,00 €14.530,00 €
106664.589,00 €251,00 €365,00 €
11777784.512,00 €15.896,00 €42.585,00 €
128882.365.479,00 €58.963,00 €120.365,00 €
139992.364.749,00 €2.394,00 €458.965,00 €
141011.254.896,00 €5.698,00 €12,00 €
15202125.631,00 €458.962,00 €269.641,00 €
163031.202,00 €125.630,00 €2.235,00 €
1740445.896,00 €120.589,00 €10.256,00 €
18505452.356,00 €45.896,00 €458.963,00 €
1960645.256,00 €2.415,00 €4.589,00 €
20707256,00 €2.564,00 €416.997,00 €

Gruß
Ich
Antworten Top
#8
(26.09.2016, 10:22)IchBinIch schrieb: ich will's mir ja auch einfach machen :32:
Wäre es ein großes Problem für Dich wenn man den Aufbau von 3 so ändert?
eduziert

Ich denke nicht. Kannst du ruhig mal machen :19:
Antworten Top
#9
Hi,

das ist vielleicht nicht meine schönste Programmierung, aber es funktioniert.

Sub FehlendeDatenKopierenOderErgänzen()
' Material ohne Vorkommen werden aus den Tabellen in die Zieltabelle "4 - zusammengefasst" kopiert
'Fehlende Daten werden ergänzt

Dim Blatt As Worksheet
Dim Treffer As Range
Dim z As Long
Dim zm As Long
Dim zz As Long

'Ermittlung der ersten freien Zeile in der Zieltabelle.
With Sheets("4 - zusammengefasst")
    zm = .Cells(Rows.Count, 1).End(xlUp).Row
    zz = zm + 1
End With

'Sämtliche Blätter der Mappe werden verarbeitet
For Each Blatt In Worksheets
   
    'Wenn das Blatt "4 - zusammengefasst" heißt, dann beende das Makro
    If Blatt.Name = "4 - zusammengefasst" Then Exit Sub
   
    'Wenn das Blatt "1" heißt dann
    If Blatt.Name = "1" Then
    'Ermittle die letzte verwendete Zeile in Spalte A
    zm = Blatt.Cells(Rows.Count, 1).End(xlUp).Row
       
        'Durchlaufe alle Zeilen ab 2 bis zur letzten verwendeten Zeile
        For z = 2 To zm
               
            'Suche den Wert aus dem aktiven Blatt Zeile (z) Spalte A im Blatt "4 - zusammengefasst"
            Set Treffer = Sheets("4 - zusammengefasst").Range("A:A").Find(what:=Blatt.Range("A" & z), lookat:=xlWhole)
           
            'Wenn es einen Treffer gibt dann
            If Not Treffer Is Nothing Then
                'kopiere die Werte des Zeile (z) Spalte B bis D nach Blatt "4 - zusammengefasst" in Spalte B bis D
                Blatt.Range("B" & z, "D" & z).Copy Sheets("4 - zusammengefasst").Range(Treffer.Offset(0, 1), Treffer.Offset(0, 3)).Value
            Else
                'sonst kopiere die Werte des Zeile (z) Spalte A bis D in die Zielzeile Blatt "4 - zusammengefasst" in Spalte A
                Blatt.Range("A" & z, "D" & z).Copy Sheets("4 - zusammengefasst").Range("A" & zz)
                'Erhöhe den Zielzeilenzähler um 1
                zz = zz + 1
           
            'Ende Treffer
            End If
       
        'Nächste Zeile
        Next z
   
    'Ende Blatt
    End If
       
    If Blatt.Name = "2" Then
    zm = Blatt.Cells(Rows.Count, 1).End(xlUp).Row
   
        For z = 2 To zm
            Set Treffer = Sheets("4 - zusammengefasst").Range("A:A").Find(what:=Blatt.Range("A" & z), lookat:=xlWhole)
           
            If Not Treffer Is Nothing Then
                Blatt.Range("B" & z).Copy Treffer.Offset(0, 4)
            Else
                Blatt.Range("A" & z).Copy Sheets("4 - zusammengefasst").Range("A" & zz)
                Blatt.Range("B" & z).Copy Sheets("4 - zusammengefasst").Range("E" & zz)
                zz = zz + 1
            End If
        Next z
    End If
   
    If Blatt.Name = "3" Then
    zm = Blatt.Cells(Rows.Count, 1).End(xlUp).Row
   
        For z = 2 To zm
            Set Treffer = Sheets("4 - zusammengefasst").Range("A:A").Find(what:=Blatt.Range("A" & z), lookat:=xlWhole)
           
            If Not Treffer Is Nothing Then
                Blatt.Range("B" & z, "D" & z).Copy Sheets("4 - zusammengefasst").Range(Treffer.Offset(0, 5), Treffer.Offset(0, 7))
            Else
                Blatt.Range("A" & z).Copy Sheets("4 - zusammengefasst").Range("A" & zz)
                Blatt.Range("B" & z, "D" & z).Copy Sheets("4 - zusammengefasst").Range("F" & zz)
                zz = zz + 1
            End If
        Next z
    End If

Next Blatt

End Sub



VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 12 - mit VBAHTML 12.6.0


Teste mal.

Gruß
Ich


.xlsm   Beispiel_Ich.xlsm (Größe: 21,36 KB / Downloads: 0)
Antworten Top
#10
Die Lösung geht auch ohne Makro nur mit Formeln, wenn die Materialien im Blatt 4 unique stehen.

Tabelle 1-3 in intelligente Tabelle umformatieren (STRG-L) und dann mit SVERWEIS:

.xlsx   Daten konsolidieren - Beispiel.xlsx (Größe: 18,58 KB / Downloads: 0)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste