Anzeige
Archiv - Navigation
1752to1756
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

Konsolidierung von Daten

Konsolidierung von Daten
26.04.2020 10:58:54
Daten
Hallo Liebes Forum,
ich würde gerne Teilenummern aus verschiedenen Tabellen in einer zentralen Tabelle zusammenfassen und dies ohne leeren Zeilen. Die verschiedenen Tabellen befinden sich im Reiter „Packaging EW“, wobei die Tabelle, wo die Teilenummern zusammen zusammengefasst werden sich im Reiter „Input_MW Anfrage“ befinden. Meine Frage lautet in diesem Zusammenhang, wie ich diesen Übertrag realisieren kann. Am Ende sollen die Teilenummern ohne Leerzeichen in einer Tabelle zusammengefasst werden. Ich habe euch eine Excel Datei als Beispiel angehängt, um meine Problemstellung ein bisschen besser zu verdeutlichen.
https://www.herber.de/bbs/user/137034.xlsx
Da ich mich nicht so gut mit Makros auskenne, wäre es mega lieb, wenn Ihr mir eine Lösung als Excel-Formel geben könntet. Falls das nicht möglich ist, bin ich selbstverständlich auch für eine Makro-Lösung sehr dankbar.
Ich bedanke mich Voraus für eure Hilfe!
Viele Grüße
Dursun

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: z.B. mit AGGREGAT() ...
26.04.2020 11:21:49
neopa
Hallo Dursun,
... unter der Voraussetzung, dass die Teilenummern immer mit einem "A" beginnen und danach sich eine mehrstellige Zahl, bestehend aus max. 15 Ziffern, direkt anreiht, wie folgt:
In K4 folgende Formel:
=WENNFEHLER("A"&AGGREGAT(15;6;TEIL('Packaging EW'!$E$4:$Y$24;2;15)/('Packaging EW'!E$3:Y$3=K$3)/('Packaging EW'!E$4:Y$24"");ZEILE(K1));"")
und diese weit genug ziehend nach unten kopieren.
Gruß Werner
.. , - ...
Oder du gehst den Weg über …
26.04.2020 11:59:14
Günther
Daten | Abrufen und transformieren
Ganz ohne VBA, keine Formel-Eingabe.
Gruß
Günther
Anzeige
AW: z.B. mit AGGREGAT() ...
26.04.2020 12:27:15
Dursun
Hallo Werner,
ich bin die ganzen Packlisten durchgegangen und da ist mir aufgefallen, dass nicht alle Teilenummern mit einem "A" beginnen. Es gibt Teilenummern, welche auch mit einem "N" oder "PC" beginnen. Wie könnte ich die Formel entsprechend erweitern? Hast du da eine Idee?
Vielen Dank im Voraus für deine Unterstützung!
Viele Grüße
Dursun
AW: dafür eine Formellösung ohne AGGREGAT() ...
26.04.2020 15:48:56
neopa
Hallo Dursun,
... bei konstanter Beibehaltung Deiner Datenstruktur (so dass die erste Teilennummer-Spalte in Spalte E steht und die nächsten immer 10 Spalten weiter stehen sowie die Überschriftenzeile mit der Teilenummer- Bezeichnung in Zeile 3 steht), könntest Du mit folgenden Formelvorschlag diese und auch evtl. weitere Teillisten auswerten.
Dazu jedoch mit einer Hilfszeile in Tabellenblatt: "Packaging E", von mir nachfolgend angenommen in Zeile29.
Schreibe in A29 eine 1 und
in B29: =WENN(B3="Teilenummer";MAX($A29:A29)+ANZAHL2(B4:B24);"")
Danach kannst Du diese Hilfszeile ausblenden und dann in 'Input_MW Anfrage'!N4 folgende Formel:
=WENN(ZEILE()-2&gtMAX('Packaging EW'!$29:$29);"";INDEX('Packaging EW'!A:ZZ;ZEILE()+1-INDEX('Packaging EW'!$29:$29;VERGLEICH(ZEILE()-3;'Packaging EW'!$29:$29));O4))

und diese weit genug ziehend nach unten kopieren.
Gruß Werner
.. , - ...
Anzeige
warum so kompliziert? Power Query !
26.04.2020 17:41:50
Helmut
..ich hätte eine Lösung-aber sicher bringst auch Du das fertig Werner :-)
Du kannst auch sicher besser die Schritte erklären..
https://www.herber.de/bbs/user/137039.xlsx
Gruß Helmut
AW: das täuscht womöglich, denn ...
26.04.2020 19:29:11
neopa
Hallo Helmut,
... es sind lediglich zwei relativ einfache Formeln, die möglicherweise nur durch die Länge und die mehrfache Verwendung des langen Tabellenblattnamen kompliziert erscheinen.
Allerdings habe ich eben festgestellt, dass ich meine Formel für K4 noch nicht korrekt dargestellt habe. Ich hatte O4 vergessen zu ersetzen.
Komplett lautet die Formel in K4 so:
=WENN(ZEILE()-2&gtMAX('Packaging EW'!$29:$29);"";INDEX('Packaging EW'!$A:$ZZ;ZEILE()+1-INDEX('Packaging EW'!$29:$29;VERGLEICH(ZEILE()-3;'Packaging EW'!$29:$29));VERGLEICH(ZEILE()-3;'Packaging EW'!$29:$29)+(K$3="Preis")+(K$3="Volumen")*2+10-(KKLEINSTE('Packaging EW'!$29:$29;2)&gtZEILE()-3)*6))
Diese Formel kann so auch nach rechts kopiert werden und ermittelt so auch gleich Volumen und Preis mit.
Ich hatte bewusst nach einer solch alternativen Formellösung zu PQ gesucht, weil auf eine PQ-Lösung bereits Günther verwiesen hatte.
Außerdem sollte die Formellösung in der Lage sein, die angestrebte Auswertung ohne jegliche Formeländerung auch dann vorzunehmen, wenn später eine 4., 5. ... Liste dazukommen sollten. Wenn die Formeln entsprechend weit kopiert sind, ist dies auch der Fall.
Deine PQ-Lösung setzt übrigens im Gegensatz zu Günthers Lösung voraus, dass die Listen nicht als bereits formatierte Tabellen vorliegen, was im Beispiel zwar so ist, aber ja nicht unbedingt der Fall sein muss. Dann wird die entsprechende Definition einer PQ-Lösung, für denjenigen der diese aufstellt, auch schon etwas aufwendiger, wie Du an Günthers Lösung erkennen kannst.
Für den Nutzer ist ein fertiger PQ-Lösungsvorschlag natürlich einfacher und sicherer zu handhaben, aber mir persönlich bereitet die Aufstellung einer Formellösung nun mal mehr Freude und diese "Freiheit" gestatte ich mir. Dursun kann ja trotzdem wählen.
Gruß Werner
.. , - ...
Anzeige
Danke Werner :-) owT
27.04.2020 10:02:54
Helmut
AW: dafür eine Formellösung ohne AGGREGAT() ...
26.04.2020 21:04:23
Dursun
Hallo Werner,
entschuldige bitte die verspätete Antwort. Vielen Dank für deine Unterstützung! Die Datenstruktur bleibt bestehen. Nur in meinem Fall sind es nur jede 6 Spalte. Ich habe dein Vorschlag versucht in der hochgeladenen Motorenliste umzusetzen, jedoch hat es nicht so ganz funktioniert. Vielleicht frage ich jetzt dumm, aber im ersten Teil befinden sich die Teilenummern in Spalte E, O und Y. Liege ich richtig, dass ich mit D29 die 1 und in E die wenn Formel einfügen muss? Wenn ja muss ich die Formel dann nach rechts ziehen?
Ich danke dir im Voraus für deine Hilfe!
Viele Grüße
Dursun
https://www.herber.de/bbs/user/137034.xlsx
Anzeige
AW: dafür eine Formellösung ohne AGGREGAT() ...
26.04.2020 21:04:25
Dursun
Hallo Werner,
entschuldige bitte die verspätete Antwort. Vielen Dank für deine Unterstützung! Die Datenstruktur bleibt bestehen. Nur in meinem Fall sind es nur jede 6 Spalte. Ich habe dein Vorschlag versucht in der hochgeladenen Motorenliste umzusetzen, jedoch hat es nicht so ganz funktioniert. Vielleicht frage ich jetzt dumm, aber im ersten Teil befinden sich die Teilenummern in Spalte E, O und Y. Liege ich richtig, dass ich mit D29 die 1 und in E die wenn Formel einfügen muss? Wenn ja muss ich die Formel dann nach rechts ziehen?
Ich danke dir im Voraus für deine Hilfe!
Viele Grüße
Dursun
https://www.herber.de/bbs/user/137034.xlsx
Anzeige
AW: dafür eine Formellösung ohne AGGREGAT() ...
26.04.2020 21:04:26
Dursun
Hallo Werner,
entschuldige bitte die verspätete Antwort. Vielen Dank für deine Unterstützung! Die Datenstruktur bleibt bestehen. Nur in meinem Fall sind es nur jede 6 Spalte. Ich habe dein Vorschlag versucht in der hochgeladenen Motorenliste umzusetzen, jedoch hat es nicht so ganz funktioniert. Vielleicht frage ich jetzt dumm, aber im ersten Teil befinden sich die Teilenummern in Spalte E, O und Y. Liege ich richtig, dass ich mit D29 die 1 und in E die wenn Formel einfügen muss? Wenn ja muss ich die Formel dann nach rechts ziehen?
Ich danke dir im Voraus für deine Hilfe!
Viele Grüße
Dursun
https://www.herber.de/bbs/user/137034.xlsx
Anzeige
AW: so wie geschrieben ...
27.04.2020 07:56:55
neopa
Hallo Dursun,
... solltest Du meinen Vorschlag umsetzen.
Nicht in D29 sondern in 'Packaging EW'!A29 die 1 schreiben und in 'Packaging EW'!B29 die Formel:
=WENN(B3="Teilenummer";MAX($A29:A29)+ANZAHL2(B4:B24);"")
und diese Formel nach rechts ziehend kopieren.
Deine Teilenummer-Spalten in E, O und Y liegen übrigens nicht nicht 6 sondern 10 Spalten auseinander, denn die Spaltennummer von E ist 5 die von O 15 und von Y 25.
Kommst Du es jetzt besser nachvollziehen?
Gruß Werner
.. , - ...
AW: so wie geschrieben ...
27.04.2020 08:23:59
Dursun
Hallo Werner,
ich habe alles so gemacht wie du es geschrieben hast, jedoch Wenn ich das alles so mache, erhalte ich am Ende nur ein Ja oder nein. Wenn ich es in Spalte K einfüge, bekomme ich nur lauter nullen.
Irgendwie komme ich diesbezüglich nicht weiter. Hast du vielleicht noch eine Idee?
Ich wünsche dir einen angenehmen Tag!
Viele Grüße
Dursun
Anzeige
AW: dann zeige doch mal ...
27.04.2020 08:40:04
neopa
Hallo Dursun,
... wie Du es jetzt umgesetzt hast. Stelle also Deine Datei entsprechend ein.
Gruß Werner
.. , - ...
AW: z.B. mit AGGREGAT() ...
26.04.2020 17:42:44
Günther
Moin,
es geht auch anders. Quod est demonstrandum. => https://my.hidrive.com/lnk/1UgGjTmM
... Und da du ja einen einseitigen Dialog bevorzugst (ohne andere Helfer auch nur eines Wortes zu würdigen), klinke ich mich hier aus und überlasse dir (oder anderen Helfern mit weniger Selbstbewusstsein, ausgenommen Werner, mit dem du ja kommunizierst) den Weg zu Ziel zu suchen.
Gruß
Günther
-.-.-.-

Da ich mich nicht mehr über den "eigenwilligen" Hindernislauf beim Foren-Upload ärgern will, stelle ich meine Uploads hier nur noch in meiner DE-Cloud zur Verfügung. Den Link findest du im Beitrags-Text. Abrufe sind natürlich freiwillig und werden selbstredend nicht ausgewertet.


Anzeige
AW: Konsolidierung von Daten
26.04.2020 12:27:25
Daten
Hi
Als Makro so
dim Zelle as range
For each Zelle In Sheets("Packung EW").Rows(3).Specialcells(xlcelltypeconstants, 2)
If Zelle.value = "Teilenummer" then
Range(Zelle.offset(1, 0), Zelle.End(xldown)).copy
sheets("Input_MW Anfrage").cells(rows.count, 11).End(xlup).offset(1, 0).pastespecial  _
xlpasteall
End if
Next
Gruß Daniel
AW: Konsolidierung von Daten
26.04.2020 20:44:26
Daten
Hallo Daniel,
entschuldige für die verspätete Antwort. Ich bin jetzt erst nach Hause gekommen. Vielen Dank in erster Linie für deine Hilfe!! Ich habe deinen Ratschlag befolgt und habe deine Makroprogramm eingefügt. In der Zeile "sheets("Input_MW Anfrage").cells(rows.count, 11).End(xlup).offset(1, 0).pastespecial" wird mir ein Debugger angezeigt. Den Grund kann ich mir nicht erklären. Ich habe dein Programm auf mein Template angepasst, jedoch funktioniert das nicht so richtig. Ich bin eine VBA Niete und würde es sehr schätzen, wenn du mir in normalen Worten sagen könntest. was diese Zeile aussagt. Vllt. kann ich anhand dessen den Fehler finden.
Ich wünsche dir einen angenehmen Abend!
Viele Grüße
Dursun
Anzeige
AW: Konsolidierung von Daten
26.04.2020 22:25:24
Daten
Das ist ein Fehler der Forensoftware.
Ist eine als Code formatierte Zeile zulan, wird der Zeilenumbruch des VBA-Ediors für den Umbruch einer Programmzeile eingefügt: Leerzeichen-Unterstrich-Umbruch
Leider entspricht das nicht ganz genau dem, was der VBA-Editor tatsächlich benötigt, dh wenn man den Code aus dem Umbruch kopiert, muss man diese Zeilenumbrüch entfernen, fmit der Code läuft.
Gruß Daniel
AW: Konsolidierung von Daten
27.04.2020 08:32:21
Daten
Hallo Daniel,
ich habe dein Rat befolgt, jedoch funktioniert es nicht. Das komische ist, es überträgt alles aber es zeigt in der selben Zelle den Debugger an. Leerzeichen-Unterstrich-Umbruch. Ich habe den Umbruch gelöscht. Es kam jedoch ein Zeichenfehler. Daher habe ich den Unterstrich auch gelöscht.
Sheets("Input_MW Anfrage").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial xlPasteAll
Auch das scheint nicht richtig zu sein, weil ich ein Debugger habe :(
Wäre echt super, wenn du mir helfen könntest.
Wünsche dir einen angenehmen Tag!
Viele Grüße
Dursun
AW: Konsolidierung von Daten
27.04.2020 10:21:32
Daten
Was sagt denn der Debugger konkret?
Kannst du mal die Datei hochladen oder einen Screenshot vom VBA-Editor mit dem Code und der Debuggermeldung machen?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige