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

Summewenns mit Max kombinieren

Summewenns mit Max kombinieren
15.12.2022 07:48:00
Tony
Guten Tag
Ich habe in einer Tabelle (Kalkulation) mehrere tausend Teile bei denen jeweils zu mehreren unterschiedlichen Zeitpunkten die Materialkosten kalkuliert wurden (ein Teil = mehrer unterschiedliche Kalkulationen).
Nun möchte ich mir in einer anderen Tabelle (Roherträge) die jeweils aktuellste Kalkulation der Materialkosten des entsprechenden Teiles anzeigen lassen.
Ich dachte daran das Datum als Wert anzugeben und somit nach dem maximalsten Wert jeweils zu filtern. In diesem Zusammenhang wollte ich die summewenns Funktion einbinden. Verwendet habe ich die untenstehende Formel. Allerdings bekomme ich immer einen Fehler #Bezug!.
=AGGREGAT(4;4;Kalkulation!D:D(SUMMEWENNS(Kalkulation!W:W;Kalkulation!X:X;'Roherträge neu'!A2; Kalkulation!K:K;"Material")))
Kalkulation!W:W -> die Spalte in der die Materialkosten stehen
Kalkulation!X:X -> die Spalte in der die Teile-Nummer steht
'Roherträge neu'!A2 -> die erste Zelle mit der zu suchenden Teile-Nummer in der zu bearbeitenden Tabelle
Kalkulation!K:K -> die Spalte in der bereits im Vorfeld eine Separierung zwischen Material für Materialkosten und Fertigung für Fertigungskosten vorgenommen wurde, da nur die Materialkosten einbezogen werden sollen
Kalkulation!D:D -> die Spalte in der die Datumswerte stehen, wo der maximalste Wert für jedes Teil entnommen werden soll
Kann mir bitte jemand weiterhelfen wie die Formel heißen müsste oder ggf. eine ganz andere Idee um das Problem zu lösen. Ohne die EInbindung des Datums wird eine Summe aus allen Materialkosten für das jeweilige Teil gezogen, das nicht gewünscht ist.
Vielen Dank und mit Besten Grüßen
T.H.

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: (D)eine Beispieldatei wäre hilfreich(er) owT
15.12.2022 09:28:34
neopa
Gruß Werner
.. , - ...
AW: nachgefragt ...
15.12.2022 13:52:32
neopa
Hallo Tony,
... und was genau möchtest Du jetzt noch ermitteln?
Gruß Werner
.. , - ...
AW: nachgefragt ...
15.12.2022 14:10:05
Tony
das die Materialkosten pro Teil nicht summiert werden sondern nur der Wert zum aktuellsten Datum pro Teil
AW: dann ...
15.12.2022 14:40:58
neopa
Hallo Tony,
... z.B. folgende Formel in C2:
=VERWEIS(9;1/(Kalkulation!A$1:A$2000=AGGREGAT(14;6;Kalkulation!A$2:A$2000/(Kalkulation!D$2:D$2000=A2)/(Kalkulation!B$2:B$2000="Material");1));Kalkulation!C:C)
und diese nach unten kopieren. Aber bitte nicht die Bereichsangaben durch den gesamten Spaltenbereich ersetzen sondern diese wirklich nur für den max auszuwertenden Bereich definieren.
Gruß Werner
.. , - ...
Anzeige
AW: Korrektur ...
15.12.2022 16:10:12
neopa
Hallo Tony,
... beim Erstellen meiner PQ-Lösung ist mir bewusst geworden, dass ich mit meiner 1. Formellösung nicht berücksichtigt habe, dass mehrere "Summen-Werte" für den letzten Tag in Deiner Datenliste vorkommen und Du dann wahrscheinlich davon auch nur den max Wert dessen haben möchtest.
Dafür dann folgende Formel:
=AGGREGAT(14;6;Kalkulation!C$2:C$35/(Kalkulation!A$2:A$35=AGGREGAT(14;6;Kalkulation!A$2:A$35/(Kalkulation!D$2:D$35=A2)/(Kalkulation!B$2:B$35="Material");1))/(Kalkulation!D$2:D$35=A2)/(Kalkulation!B$2:B$35="Material");1)
und diese nach unten kopieren.
Dessen Ergebnisse stimmen jetzt bei mir auch mit den Ergebnissen meiner PQ-Lösung überein.
Gruß Werner
.. , - ...

Anzeige
Ergänzung
16.12.2022 07:39:51
Tony
Vielen Dank für eure Antworten, hat mir gut geholfen. Wenn ich nun aber alle Summen und nicht die maximalste des letzten Datums angezeigt haben möchte, wie könnte ich die Formel dann umstellen? Beste Grüße
Dann Pivottabelle. owT
16.12.2022 09:15:52
Yal
AW: Dann Pivottabelle. owT
16.12.2022 10:56:45
Tony
Das stimmt das ist eine gute Lösung. Allerdings muss ich das Ergebnis das ich in der Pivottabelle erhalte (Materialkosten) mit einem anderen Wert in Tabelle Roherträge multiplizieren (mit dem Preis), deshalb erschien mir eine Formel besser, um alle Teile auf einen Blick zu haben.
Dann doch Power Query
16.12.2022 11:51:46
Yal
Wenn Du dann einige Werte von andere Tabellen "joinen" muss (in klassischen Excel: SVerweis), dann macht Power Query wieder Sinn.
VG
Yal
Anzeige
AW: gut überlegte Fragestellung(en) ...
16.12.2022 15:51:15
neopa
Hallo Tony,
... mit entsprechenden Daten erspart uns Helfern als auch den Fragestellern Zeit.
Deine neue Zielstellung passt nicht zu Deinen bisherigen Datenangaben. Wenn solche vorliegen können diese sowohl mit PQ als auch nur mit Formeln oder mit einer Hilfsspalte und Pivotauswertung erfolgen.
Gruß Werner
.. , - ...
AW: gut überlegte Fragestellung(en) ...
19.12.2022 07:48:27
Tonmy
Genau und ich suche nach einer Formel die den Wert zum letzten Datum pro Teil ausgibt. Ich dachte das wäre möglich über Max, wenn das Datum als Wert angegeben wird. Die Daten bleiben die gleichen.
AW: genau dafür war doch meine Formel ...
19.12.2022 12:01:45
neopa
Hallo Tommy,
... die ich Dir aufgezeigt hatte. Wo siehst noch ein Problem?
Gruß Werner
.. , - ...
Anzeige
Formel passt
20.12.2022 14:58:31
Tony
Danke Werner, der Fehler lag bei mir die Formel passt! Beste Grüße und Frohes Fest
AW: bitteschön und wünsche gleiches Dir owT
20.12.2022 15:00:25
neopa
Gruß Werner
.. , - ...
AW: nachgefragt ...
15.12.2022 14:59:10
Yal
... und aktuellste Datum pro Teil ist eben die Max der Datum pro Teil.
Pivottabelle wäre eine erster Schritt, würde hier aber versagen. Da muss Power Query ran. Lange Beschreibung, aber eigentlich super einfach:
_ markiere deine Quelltabelle als "smart table": Klick auf A1 ("Kalkdatum"), Menü "Einfügen", "Tabelle"
_ Menü "Daten", "aus Tabelle"
_ Du bist in Power Query. Locker bleiben, es tut nichts, es ist nur zum Spielen. PQ ist der "No Code / Low Code" Transformer von Excel
_ Rechtklicke auf den Spaltenkopf von "KalkDatum", "Typ ändern", "Datum" (aktuelle Schritt ersetzen)
_ links steht eine graue Balken mit vertikal "Abfragen" geschrieben, öffne es
_ Rechtklicke auf die einzige Abfrage (nennen wir sie "Tabelle1") und wähle "Verweise"
_ benenne in der rechten Bereich ("Abfrageneinstellungen", "Name") diese Tabelle in "MaxDatum"
_ markiere die Spalte "Teile-Nr"
_ Menü "Transformieren", "gruppieren nach"
_ "Teile-Nr" ist als Gruppierungsspalte vorausgewählt
_ nimme als Vorgang und Spalte "Max" von "KalkDatum", als "neue Spaltenname" "MaxDatum" eintippen (ja, ein bischen tippen muss man immer noch ;-)
_ jetzt hast Du pro Teil das aktuellste Datum
Dazu brauchen nur noch den passende Betrag.
_ Menü "Start", "Abfrage zusammenführen"
_ im unteren Bereich, wähle die erste Abfrage "Tabelle1"
_ markiere in beide Tabellen "Teile-Nr"
_ markiere in beide Tabelle "KalkDatum" und "MaxDatum" (du siehst an den kleinen Nummer, dass die Reihenfolge eine Bedeutung hat)
_ Join-Art ist mit "linker äußerer Join" bereits passend. (für mehr Info suche nach "DB joins"). Ok.
_ im Kopfbereich dieser neuen Spalte auf den Symbol mit 2 Pfleilen klicken
_ "KalkDatum" und "Teile-Nr" haben wir schon. "Ursprüngliche ..." brauchen wir nicht. Auch Haken raus.
Nun gibt es pro Datum mehrere "Summen"
_ nach "Material" filtern (hätten wir vielleicht von Anfang an machen können, dann müsste weniger Einträge verarbeitet werden. Lass ich dich entdecken wie)
_ die 3 Spalten, die nicht "Summe" sind, markieren,
_ Menü "Transformieren", "Gruppieren nach"
_ die Gruppierungsspalten sind vorbelegt, "Vorgang" >> "Max" und "Spalte" >> "Summe" (die Spalte, nicht der Vorgang), neuer Spaltenname "Wert"
Fertig. Nur raus aus diese Programmier-Umgebung (ja, wir haben gerade programmiert)
_ Menü "Schliessen & laden in...", "Nur Verbindung herstellen".
_ im rechten Bereich "Arbeitsmappenabfragen" (wenn nicht sichtbar, menü "Daten", "Abfrage anzeigen"), Abfrage "MaxDatum" rechtklicken und "Laden in...", "Tabelle" und Zielablage auswählen.
Ändert sich etwas in der Quelle (die smart table ergänzt sich automatisch nach unten bei neue Daten), einfach auf das Ergebnis rechtklicken und "aktualisieren". Dann wird "die Programmierung" wieder angewendet und das Ergebnis wieder korrekt sein.
Power Query ist nicht nur gut, um Daten unabhängig dessen Menge zu handlen, es zwingt einer seine Daten gut zu organisieren. Wäre es nur aus diesem Grund, müsste eigentlich jede Excel-bastler ein paar Stunden mit Power Query verbringen. Aber dann wäre es ziemlich leer in diesem Forum ;-)
VG
Yal
Anzeige
AW: hab eine andere PQ-Lösung ...
15.12.2022 15:58:57
neopa
Hallo Yal,
... habe Deine zwar nicht nachgestellt aber aus dem oberflächlichen Lesen erscheint mir meine nachfolgende einfacher. Vor allem hat diese dazu geführt, dass ich meine Formellösung nachjustieren muss. Denn er will ja nicht die letzte Summe sondern die max. Summe vom letzten Tag..
Mein PQ-Lösung hier allerdings nur als M-Code (ohne Beschreibung welche einzelne Schritte ich dazu im PQ-Editor aktiviert habe)

let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Gefilterte Zeilen" = Table.SelectRows(Quelle, each ([KoA_Bez] = "Material")),
#"Sortierte Zeilen" = Table.Sort(#"Gefilterte Zeilen",{{"Teile-Nr.", Order.Ascending}, {"KalkDatum", Order.Descending}, {"Summe", Order.Descending}}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Sortierte Zeilen",{"KalkDatum", "KoA_Bez"}),
#"Gefilterte Zeilen1" = Table.SelectRows(#"Entfernte Spalten", each ([Summe]  0)),
#"Entfernte Duplikate" = Table.Distinct(#"Gefilterte Zeilen1", {"Teile-Nr."}),
#"Neu angeordnete Spalten" = Table.ReorderColumns(#"Entfernte Duplikate",{"Teile-Nr.", "Summe"})
in
#"Neu angeordnete Spalten"
Gruß Werner
.. , - ...
Anzeige
AW: hab eine andere PQ-Lösung ...
15.12.2022 16:50:30
Yal
Hallo Werner,
Achtung: Power Query hat an der Stelle eine Macke. Eine Sortierung ändert nicht den interne Index. Siehe:
https://social.technet.microsoft.com/Forums/en-US/55271040-e0b5-40c7-a959-b023a3b02183/tabledistinct-does-not-work-as-excepted-on-tablesort-sorted-data?forum=powerquery
Es führt dazu, im gegenteil zu genau dieselbe Behandlung in Excel, dass der "Remove Duplicate" nicht der erste sortierte Eintrag belässt, sondern der erste der orignale Reihenfolge. Mir ist nicht bekannt, ob diese Problem von Microsoft bereits beseitigt ist. In den Testdaten scheint es keine Auswirkung zu haben.
Ich hatte diese unschöne Effekt bereits selber erfahren dürfen.
Mit Buffered Table sollte es gehen:

let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Gefilterte Zeilen" = Table.SelectRows(Quelle, each ([KoA_Bez] = "Material")),
#"Sortierte Zeilen" = Table.Sort(#"Gefilterte Zeilen",{{"Teile-Nr.", Order.Ascending}, {"KalkDatum", Order.Descending}, {"Summe", Order.Descending}}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Sortierte Zeilen",{"KalkDatum", "KoA_Bez"}),
#"Gefilterte Zeilen1" = Table.SelectRows(#"Entfernte Spalten", each ([Summe]  0)),
#"Entfernte Duplikate" = Table.Distinct(Table.Buffer(#"Gefilterte Zeilen1"), {"Teile-Nr."}),
#"Neu angeordnete Spalten" = Table.ReorderColumns(#"Entfernte Duplikate",{"Teile-Nr.", "Summe"})
in
#"Neu angeordnete Spalten"
VG
Yal
Anzeige
AW: hmmm ...
15.12.2022 20:11:47
neopa
Hallo Yal,
... denn wie Du schon schreibst, tritt dieses Problem zumindest in der Testdatei jedenfalls nicht auf. Und wenn Du wie ich vermute, ein aktuelle XL-Version im Einsatz hast (ich XL2016), dann schon mal in zwei verschiedenen XL-Versionen nicht. Insofern kann ich es auch (noch) nicht nachvollziehen. Und das möchte ich schon gern.
Im übrigen stammt der Schritt mit dem Ausfiltern von 0-Werten noch aus einer Vorgängerversion meiner Lösung und kann hier noch entfallen. Das Ergebnis bleibt das Gleiche wie zuvor und wie auch mit meiner Formellösung.
Wenn Du ein Beispiel hast, wo es mit Sortierung zu dem geschilderten Problem kommen kann, bitte ich Dich dies mir mal zur Verfügung zu stellen. Muss nicht heute und morgen sein.
Gruß Werner
.. , - ...
Anzeige
AW: Summewenns mit Max kombinieren
15.12.2022 09:29:47
Yal
Hallo Tony,
syntaxisch ist die Formel nicht richtig. Es müsste eine ";" nach dem D:D geben
=AGGREGAT(4;4;Kalkulation!D:D;(SUMMEWENNS(Kalkulation!W:W;Kalkulation!X:X;'Roherträge neu'!A2; Kalkulation!K:K;"Material")))
VG
Yal
AW: Deine Funktionkombin. wird nicht helfen ...
15.12.2022 11:44:42
neopa
Hallo Tony,
... so wie Du es bisher beschrieben hast und ich es interpretiere, erscheint mir die günstigste Lösung eine Pivotauswertung der Daten in Deinem Tabellenblatt Kalkulation zu sein, die Du dann dort nach der benötigten Nummer 'Roherträge neu'!A2 filterst.
Alternativ als Formellösung käme wahrscheinlich eine Formel mit AGGREGAT(14;6;..,) in Betracht, jedoch mit einer anderen Teilformel für das 3. Funktionsargument.. Doch (D)eine ((Beispiel)datei wäre wirklich sinnvoll. Es muss nicht die Originaldatei sein und es reicht auch ein kleiner Auszug von max 50 Datensätzen der Tabelle Kalkulation.
Gruß Werner
.. , - ...
Anzeige

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige