Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
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

Daten aus Liste nach Kriterien anzeigen

Daten aus Liste nach Kriterien anzeigen
20.06.2022 13:44:41
Dennis
Hallo liebes Forum,
ich brauche mal eure Hilfe bei einer Problemstellung und frage euch, ob dies mit VBA möglich ist.
In einer Excel-Tabelle habe ich Stellplätze auf denen verschiedene Produkte (auch mehrere Produkte auf einem Platz) liegen. Jetzt möchte ich gerne aufgrund von Optimierungen die Mischplätze zusammenfassen. Dazu sollen mir in einem extra Reiter alle Plätze von den Produkten angezeigt werden, von denen die Paletten geholt werden sollen. Dabei sollen nur die gewählt werden, wenn auf einem Platz mehr als 3 Kartons liegen. 1 Excelzeile = 1 Karton.
Bsp. Für den Ball gibt es 11 Kartons auf 4 Plätzen
Platz A mit 4 Kartons
Platz B mit 2 Kartons
Platz C mit 3 Kartons
Platz D mit 1 Karton
Das gleiche bei dem Produkt „Mütze“
Jetzt soll mir die Auswertung anzeigen, dass für den Ball Paletten von den Plätzen A und B geholt werden sollen. (siehe manuell den Reiter Output).
Ich hoffe ihr könnt mir weiterhelfen. Vielen Dank vorab.
Dennis
https://www.herber.de/bbs/user/153677.xlsm

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: und warum nicht für "Stift" und "Tisch" ? owT
20.06.2022 14:17:45
neopa
Gruß Werner
.. , - ...
AW: und warum nicht für "Stift" und "Tisch" ? owT
20.06.2022 15:02:07
Dennis
Hallo,
ja bei denen natürlich auch. Generell bei allen, welche in der Liste sind. Hatte nur die 2 rausgenommen und nicht alle, damit es nicht unübersichtlich wird.
Kapier ich noch nicht...
20.06.2022 14:28:07
{Boris}
Hi,

Dabei sollen nur die gewählt werden, wenn auf einem Platz mehr als 3 Kartons liegen. 1 Excelzeile = 1 Karton.
Warum sollen die Bälle dann von Platz A und B geholt werden, obwohl nur auf A mehr als 3 Kartons (4 Stück) liegen - auf B liegen doch nur 2...?
VG, Boris
AW: Kapier ich noch nicht...
20.06.2022 15:02:54
Dennis
Hallo,
sorry meine natürlich A und C. Von dort sollen die Paletten geholt werden.
Anzeige
C ist auch unlogisch...
20.06.2022 15:13:01
{Boris}
Hi,
...denn Du hast geschrieben: mehr als 3 ...
?!
VG, Boris
AW: es gibt noch weitere Ungenauigkeiten ...
20.06.2022 15:14:40
neopa
Hallo Dennis,
... gemäß Deinem Tabellenblatt "Output" gibst Du nicht die 11 sondern nur 8 Datenzeilen (2x4) mit Ball aus. Für Mütze stehen dort nur 7 Datenzeilen obwohl 8 vorhanden sind und es stimmt Deine ID in B17 nicht überein mit den für A17 gültigen.
Darauf dass es auch für "Stift" und "Tisch" Lagerplätze mit mind. 4 Datenzeilen gibt, hatte ich schon hingewiesen.
Gruß Werner
.. , - ...
AW: es gibt noch weitere Ungenauigkeiten ...
20.06.2022 15:27:09
Dennis
Hallo,
@Boris:
ja meinte kleiner/gleich 3 also wenn 3 Kartons auf der Palette sind dann soll sie geholt werden.
@Werner:
das mit den weniger Daten ist richtig. Ich will nur die Paletten aus dem Lager holen wo mind. 3 Kartons drauf sind. Alle mit weniger (wie bei Ball auf B =2 und D =1) lohnt sich der Aufwand nicht (Produktivität ist dann schlecht). Die IDs habe ich manuell eingetragen. Wenn hier was nicht stimmt ist es nicht schlimm. Die sind zufällig und sollen dann natürlich richtig kopiert werden.
Stift und Tisch sind natürlich weitere Produkte. Hatte nur die 2 rausgenommen und nicht alle, damit es nicht unübersichtlich wird.
Vg Dennis
Anzeige
AW: ich hätte eine PQ-Lösung ...
20.06.2022 15:22:00
neopa
Hallo Dennis,
... für Deine Zielstellung, so wie ich sie interpretiere, d.h. mit 11 Bällen, 8 Mützen und je 7 Stiften und Tischen..
Zunächst Hilfsabfrage:

let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Lagerplatz", type text}, {"ID", Int64.Type}, {"Kennung", Int64.Type}, {"Mwt", Int64.Type}, {"Menge", Int64.Type}, {"EAN", Int64.Type}, {"MaterialMwt", type text}}),
#"Gruppierte Zeilen" = Table.Group(#"Geänderter Typ", {"ID", "Kennung", "MaterialMwt"}, {{"Anzahl", each Table.RowCount(_), Int64.Type}}),
#"Gefilterte Zeilen1" = Table.SelectRows(#"Gruppierte Zeilen", each ([Anzahl] = 4 or [Anzahl] = 5)),
#"Gefilterte Zeilen" = Table.SelectRows(#"Gefilterte Zeilen1", each ([Anzahl] = 4 or [Anzahl] = 5)),
#"Entfernte Duplikate" = Table.Distinct(#"Gefilterte Zeilen", {"Kennung"})
in
#"Entfernte Duplikate"
Dann das Ergebnislisting:

let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Lagerplatz", type text}, {"ID", Int64.Type}, {"Kennung", Int64.Type}, {"Mwt", Int64.Type}, {"Menge", Int64.Type}, {"EAN", type text}, {"MaterialMwt", type text}}),
#"Zusammengeführte Abfragen" = Table.NestedJoin(#"Geänderter Typ", {"Kennung", "MaterialMwt"}, Kartons_zählen, {"Kennung", "MaterialMwt"}, "Kartons_zählen", JoinKind.LeftOuter),
#"Erweiterte Kartons_zählen" = Table.ExpandTableColumn(#"Zusammengeführte Abfragen", "Kartons_zählen", {"Anzahl"}, {"Anzahl"}),
#"Gefilterte Zeilen" = Table.SelectRows(#"Erweiterte Kartons_zählen", each ([Anzahl]  null)),
#"Entfernte Spalten" = Table.RemoveColumns(#"Gefilterte Zeilen",{"HSp", "Anzahl"})
in
#"Entfernte Spalten"
Bei Rückfragen dazu komme ich wahrscheinlich erst morgen dazu zu reagieren.
Mehr zu PQ (Power Query) sieh auch z.B. mal hier: https://excelhero.de/power-query/power-query-ganz-einfach-erklaert/
Gruß Werner
.. , - ...
Anzeige
AW: ich hätte eine PQ-Lösung ...
20.06.2022 16:23:29
Dennis
Hallo Werner,
hab von PQ leider gar keine Ahnung. Hab mir die Videos und Sachen angeguckt. Aber ich weiß gar nicht wo ich deine Hinweise von oben reinschreiben muss. Wenn es grundsätzlich mit PQ geht und kein VBA nötig ist ist es auch super.
AW: dann ...
21.06.2022 08:18:15
neopa
Hallo Dennis,
... sieh Dir mal mal die hier eingestellte Datei an: https://www.herber.de/bbs/user/153687.xlsx
In dieser sind nun Deine präzisierten Bedingungen angepasst berücksichtigt Dadurch kommen nun auch noch "Hut" und "Rahmen" in die Ergebnisliste und es sind auch nicht mehr 11 "Bälle" gelistet.
Keinen Angst vor den M-Code. Dieser ist lediglich durch die von durch das aktivieren der entsprechenden PQ-Funktinalitäten parallel erzeugt. Die einzelnen Schritte dazu kannst Du leicht nachvollziehen, wenn Du im Excelmenü unter Daten die Funktion "Abfragen anzeigen" aktivierst und dort zunächst aktivierst und Dir diese in Ruhe anschaust. Den M-Code dazu findest Du in der Eingabezeile und den kompletten im "Erweiterten Editor".
Gruß Werner
.. , - ...
Anzeige
AW: dann ...
21.06.2022 08:46:50
Dennis
Guten Morgen Werner,
habe mir die Datei mal angeschaut und 2 Fragen.
1. Ich sehe im ersten Moment nicht, wofür die Hilfsspalte da ist, außer der Sortierung. Kann die auch so eingestellt werden, dass sie automatisch weiterzählt? Also ohne VBA?
2. Das Ergebnis sieht schon fast perfekt aus. Wie bzw. wo muss ich denn einstellen, dass mir nur die angezeigt werden, die 2 Lagerplätze mit gleich/mehr als 3 Kartons haben.
Bsp. Hut: Die haben zwar auf 1 Platz 3 Kartons, allerdings auf einem weiteren nur 1. Daher würde es sich nicht lohnen die beiden zusammenzupacken. Erst wenn auf dem anderen Platz auch mind. 3 Kartons sind. Bei Rahmen gibt es auch nur 1 Platz im ganzen Lager mit 3 Kartons. Daher macht ein "Auslagern" und "verdichten" keinen Sinn. Also die Anforderung mind. 2 Lagerplätze mit mind. 3 Kartons.
Viele Grüße
Dennis
Anzeige
AW: zunächst zu Deiner 1. Frage ...
21.06.2022 11:28:16
neopa
Hallo Dennis,
... die Hilfsspalte ist ein Relikt meiner gestrigen Prüfung Deiner Vorgaben und der Erarbeitung meines Lösungsvorschlages. Dazu hatte ich die Daten vorübergehend sortiert. Und damit ich diese danach wieder in ihren / Deinen Originalzustand zurück sortieren konnte, hatte ich die Hilfsspalte eingeführt.
Für meine Lösung mit PQ wird diese nicht benötigt.
Eine Lösung zu Deiner 2. Fragestellung schau ich mir dann noch an.
Gruß Werner
.. , - ...
AW: und zu Deiner 2. Frage ...
21.06.2022 13:20:07
neopa
Hallo Dennis,
... dies hab ich nun gelöst, in dem ich noch eine Hilfsabfrage eingefügt und die erste Hilfsabfrage entsprechend erweitert habe.
Sieh nun mal hier: https://www.herber.de/bbs/user/153697.xlsx
Beachte, die "Mütze" wird nun deshalb nicht mehr gelistet, weil in B17 wie bereits geschrieben eine inkorrekte ID-Nummer vorliegt.
Die Vorteile von PQ kannst Du nun aber auch sehr einfach erkenne. kopiere A18 nach A17 und aktiviere danach die Funktion "Alle aktualisieren" und schon ist in der Ergebnistabelle auch die "Mütze" gelistet.
Gruß Werner
.. , - ...
Anzeige
AW: und zu Deiner 2. Frage ...
22.06.2022 10:27:08
Dennis
Hallo Werner,
vielen Dank für deine Hilfe. Ist echt super und kann die Schritte auch gut nachvollziehen. Werde mich definitiv mal mehr mit PQ beschäftigen.
Viele Grüße
Dennis
AW: bitteschön, gerne owT
22.06.2022 11:32:33
neopa
Gruß Werner
.. , - ...
AW: Daten aus Liste nach Kriterien anzeigen
26.06.2022 17:06:35
Herbert_Grom
Hallo Dennis,
schau dir mal meinen VBA-Vorschlag an:
https://www.herber.de/bbs/user/153772.xlsm

Sub sammeln()
Dim lRowIn&, sSuchText$, lLastRow&
'* Zeile zum Daten einfügen ermitteln
lRowIn = Cells(Rows.Count, "G").End(xlUp).Row + 1
'* Userform zur Auswahl des Materialnamens öffnen
UF_MaterialNamenUnikate.Show
'* Array-Formeln zum sammeln der gesuchten Daten einfügen
Range("A" & lRowIn & ":G" & lRowIn + 25).FormulaLocal = _
"=WENNFEHLER(INDEX(Input!A:A;AGGREGAT(15;6;ZEILE(Q$2:Q$67)/(Input!$G$2:$G$67=""" & sMaterialName & """);ZEILE(Q1)));"""")"
'* Formeln in Werte umwandeln
Range("A" & lRowIn & ":G" & lRowIn + 25).Value = Range("A" & lRowIn & ":G" & lRowIn + 25).Value
'* Spalte F in Zahlenformat ändern
Range("B" & lRowIn & ":F" & lRowIn + 25).NumberFormat = "0"
'* die unbenutzten Zeilen löschen
lRowIn = Cells(Rows.Count, "G").End(xlUp).Row + 1
lLastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Rows(lRowIn & ":" & lLastRow).Delete
'* Datei speichern, um die erste "echte" frei Zeile ermitteln zu können
ActiveWorkbook.Save
End Sub
Servus
Anzeige
AW: hierzu ...
26.06.2022 17:24:13
neopa
Hallo Herbert,
... Dein Lösungsvorschlag entspricht noch nicht der Zielstellung. Dennis möchte überhaupt keine Materialvorgabe vornehmen. Sondern sein Ziel ist es, dass die umzulagernden Kartons automatisch aus der vorliegenden Bestandszuordnung aufgelistet werden. Also bezogen auf die vorliegende Beispieldaten zwei Kartons mit je 4 Bällen und je ein Karton mit 4 bzw. 3 Stiften.
Gruß Werner
.. , - ...
AW: hierzu ...
26.06.2022 17:37:16
Herbert_Grom
Hallo Werner,
das kommt davon, wenn man zu lange daran rum macht, dann vergisst man die eigentliche Aufgabenstellung. Danke für die Info.
Servus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige