Anzeige
Archiv - Navigation
1624to1628
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

Höchster Wert aus Datensatz ermitteln

Höchster Wert aus Datensatz ermitteln
30.05.2018 15:16:30
Jens
Hallo,
kann mir jemand bei einer Formellösung helfen?
https://www.herber.de/bbs/user/121892.xlsx
Es geht darum Daten mit einem Stammeintrag zu vergleichen und den höchsten Wert in eine Spalte zu schreiben

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: etwas wenig aussagekräftiges Datenbeispiel ...
30.05.2018 15:31:59
neopa
Hallo Jens,
... wenn ich Deine Zielstellung richtig verstanden habe, dann in D2 z.B. folgende Formel:
=MAX(WENNFEHLER(AGGREGAT(14;6;Tabelle1!G$3:G$99/(Tabelle1!A$3:A$99&Tabelle1!B$3:B$99=A2&B2);1);0);C2)
und diese nach unten kopieren.
Gruß Werner
.. , - ...
AW: etwas wenig aussagekräftiges Datenbeispiel ...
30.05.2018 16:20:33
Robert
Hallo,
Jens arbeitet mit Office2010, da ist die Aggregat-Funktion noch nicht enthalten. Deshalb würde ich für die Zelle C2 folgende Matrix-Formel vorschlagen:
{=MAX((Tabelle1!$A$4:$A$14=A2)*(Tabelle1!$B$4:$B$14=B2)*Tabelle1!$G$4:$G$14;C2)}
Wie bekannt sein dürfte, sind die geschweiften Klammern nicht mit einzutippen, stattdessen muss die Eingabe der Formel mit STRG-Shift-Enter abgeschlossen werden. Die Tabellenbereiche müssten natürlich angepasst werden.
Gruß
Robert
Anzeige
AW: dem ist nicht so ...
30.05.2018 17:22:33
neopa
Hallo Robert,
... denn AGGREGAT() gibt es sehr wohl in der Version 2010 (ist die erste Version mit dieser Funktion).
Allerdings kann die Formel mit AGGREGAT() im konkreten Fall analog Deines Matrixformelvorschlags natürlich auch kürzer und ohne {}-Eingabeabschluss geschrieben werden und zwar so:
=MAX(AGGREGAT(14;6;Tabelle1!G$3:G$99*(Tabelle1!A$3:A$99&Tabelle1!B$3:B$99=A2&B2);1);C2)
Gruß Werner
.. , - ...
AW: Sorry Werner ...
30.05.2018 18:25:23
Robert
ich nehme alles zurück und behaupte das Gegenteil ;-). Ich arbeite privat noch mit der 2007er-Version und dachte, die Aggregat-Version wäre erst ab Excel2013 verfügbar. Da dies nicht so ist, würde ich dann auch zu Deiner Lösung tendieren. Man lernt halt immer wieder und auch gerne dazu.
Danke für den Hinweis.
Gruß
Robert
Anzeige
AW: so würde ich es nicht sehen ...
30.05.2018 21:48:51
neopa
Hallo Robert,
... Deine Matrixformel ist zumindest im Beispiel gleichwertig.
Ich nutze nur sehr gern Matrixfunktion(alität)sformeln, die keines spez. Formelabschluss wie eine klassische Matrixformel benötigen, weil nach meinen Erfahrungen sich immer noch oder immer wieder, viele Exceluser sich mit klassischen Matrixformeln etwas schwer(er) tun. Oft sind die {}-freien Formeln auch etwas schneller in der Auswertung und kommen ohne zusätzliches WENN() aus bzw. sparen anderweitig eine zusätzliche Funktion ein. Im vorliegenden Beispiel ist das aber nicht der Fall. Somit kann der TE "frei nach Gusto" wählen.
Gruß Werner
.. , - ...
Anzeige
Formel-Analyse-Bemerkungen
31.05.2018 01:17:58
Luc:-?
Morrn, Werner (& Robert & Co);
Deine 1.Fml verwendet 4 Fktt (die implizite in AGGREGAT sollte man mitzählen!) und die elementweise Verknüpfung 2er Bereiche, sowie die elementweise Division eines Bereiches durch erstere Matrix. Das wären dann für g/(a&b=a0&b0) bei jeweils gleicher Vektorlänge l 3×l Einzel-Operationen (ohne die Opera­tionen der Fktt):
=MAX(WENNFEHLER(AGGREGAT(14;6;Tabelle1!G$3:G$99/(Tabelle1!A$3:A$99&Tabelle1!B$3:B$99=A2&B2);1);0);C2)
Deine 2.Fml verwendet nur noch 3 Fktt, aber vglbare MatrixOperationen g*(a&b=a0&b0) (Multiplikation statt Division):
=MAX(AGGREGAT(14;6;Tabelle1!G$3:G$99*(Tabelle1!A$3:A$99&Tabelle1!B$3:B$99=A2&B2);1);C2)
Roberts Fml verwendet demggüber nur 1 Fkt und mit (a=a0)*(b=b0)*g 4×l Matrix-Einzel-Operationen:
{=MAX((Tabelle1!$A$4:$A$14=A2)*(Tabelle1!$B$4:$B$14=B2)*Tabelle1!$G$4:$G$14;C2)}
Dabei ist allerdings zu beachten, dass VglsOperationen intern die meisten EinzelAktionen verur­sachen. Je nachdem wie aufwendig der FktsEinsatz ist (MAX vglt ebenfalls intern - Sortierung beruht auch auf Vgl -, AGGREGAT muss Fehler ausfiltern und WENNFEHLER sie zusätzlich ersetzen!), gestaltet sich auch die Performance bei größeren Datenmengen, egal, ob (singulare) MatrixFml oder nicht. Der Unterschied zwischen sog Matrixfunktion(alität)sformeln (die Betonung liegt hier nicht ohne Grund auf Funktion!) und MatrixFmln besteht iW darin, wer die Daten primär verarbeitet und ob eine Fkt, die das tut, von sich aus alle potenziellen Ergebnisse einer Matrix-Operation als ihr übergebenes Argument von Hause aus übernimmt oder nicht. Einige Fktt überlassen dem Nutzer diese Entscheidung (MatrixFml-Form!), andere nicht. Zu den letzteren gehören idR AGGREGAT, SUMMENPRODUKT u.a., deren Aufgabe generell darin besteht, mit Matrizen umzugehen und die deshalb im Normalfall alle Daten aus ihren Argumenten verwenden. MAX und SUMME gehören zu den Fktt, die das nicht selbständig tun, sondern sich auf den FmlText-Interpreter und Xl (und damit den Nutzer) verlassen. Dabei wird ein ZellBereich immer in Gänze, ein Datenfeld aber nur dann, wenn es auch in Gänze geliefert wird, verwendet. Ist letzteres nur vom FmlText-Interpreter abhängig, erfordert das MatrixFml-Form (s.Roberts Fml!). AGGREGAT liefert demggüber entweder schon ein komplettes Datenfeld oder, wie hier, einen Einzelwert, der in diesem Fall nur noch mit einem 2.Wert vgln wdn muss. Es kommen also im AGGREGAT-Fall noch maximal l VglsOperationen hinzu (idR dürften es deutlich weniger sein, da rationelle Verfahren angewendet wdn dürften), die von KGRÖSSTE (Nr 14) durchgeführt wdn.
Damit kann nun jeder selbst entscheiden, welche Fml für welche PrimärDatenMenge die geeignetere sein mag… ;-)
Gruß, Luc :-?
Anzeige
AW: möglicherweise ...
31.05.2018 13:23:15
neopa
Hallo Luc,
... hab ich nicht eindeutig ausgeführt, hatte mir dazu auch (zu) wenig Zeit genommen. Noch weniger Zeit hatte ich mir für meinen ersten Formelvorschlag. Diesen hab ich ohne Überlegung einfach nach Schema F zusammengesetzt. Meine Darlegungen an Robert sollten deshalb auch auf meinen 2. Formelvorschlag basieren. Diese waren meinerseits teils anders gemeint als Du sie interpretiert hast, weil ... sie oben.
Zu Deinen weiteren Ausführungen stelle ich für mich nur fest, dass ich diese nicht voll teile, ohne hier näher darauf eingehen zu wollen.
Gruß Werner
.. , - ...
Ich hatte Deine letzte Anmerkung zum Anlass ...
31.05.2018 19:51:09
Luc:-?
…genommen, das etwas ausführlicher darzustellen, Werner,
nicht mehr und nichts weniger! Was hätte ich denn an Deiner 2.Fml bzw Deinen Intentionen dazu falsch verstanden (die 1. hatte ich zwecks Vollständigkeit mit analysiert)?
Auch, wenn Du nicht näher auf meine weiteren Ausführungen eingehen willst (zu heiß oder schon zu oft diskutiert?), welche Passage/n kannst Du nicht voll teilen? Eine Fml ist nun mal primär nur ein Text und benötigt die Interpretation durch ein Pgm, das dann die implizit verlangten QuellDaten und Berechnungen identifiziert bzw durchführt. Und da der Interpreter normalerweise nicht wissen kann, ob (ggf standortabhängige) Einzelwerte oder alle Werte auf einmal benötigt wdn, muss man ihm das in allen Calc-Pgmm mit MxFktionalität mit­teilen. Manche FktsPgmmierer hatten das genutzt, andere nicht, was auch vom PrimärCharakter der jeweiligen Fkt abhängig gewesen sein mag. Die Frage war damals also, nutze ich konsequent die Möglichkeiten des Interpreters für Argumente in Form von Ausdrücken (MxKonstanten und Fmln) oder aber nicht und greife einfach alles ab, was der Interpreter ermittelt hat (falls er das überhpt tut)…‽
Mit der UDF AggregateXk hatte ich ja seinerzeit über eine spezielle Argumentierungsform demon­striert, wie man diese idR MxFml-Form verlangende UDF (also auch mit VBA) dazu bringen kann, in Normalform zu fktionieren. Das ist nur aufwendiger und die Pgmmierer sol­cher Xl-Fktt dürften es einfacher gehabt haben, wenn auch nicht so einfach wie bspw die von SUMME & Co. Es war also stets eine Frage des PgmmierAufwands für eine Fkt, während der Nutzer nur für die Fml insgesamt zuständig ist. Und da kann er dann halt oft, aber nicht immer (!), zwischen beidem wählen.
Und das AGGREGAT ebenso wie TEILERGEBNIS primär als Verteiler fungiert und die entsprd Xl-Fktt aufruft, sollte/dürfte ja auch klar sein, denn sonst hätten die ja alle nochmal pgmmiert wdn müssen! So etwas habe ich ja selbst schon mehrfach in UDFs eingebaut! Man muss dazu auch nicht mal nummerieren, sondern könnte auch die FktsNamen benutzen, was aber unter Berücksichtigung inter­natio­na­len Gebrauchs komplizierter wäre (da reicht ja schon der pgmmier­unfreundliche faux pas mit den Bedingt­Format-Regel-Fmln!).
Falls Du (D)eine abweichende Meinung zu einem der angesprochenen Aspekte beweisen kannst, solltest Du das auch tun! Evtl habe ich ja etwas Wesentliches übersehen… ;-)
Gruß, Luc :-?
Anzeige
AW: hierzu meinerseits im thread abschließend ...
01.06.2018 13:01:07
neopa
Hallo Luc,
... einiges hatten wir wirklich schon diskutiert, anderseits hatte ich den Eindruck, dass Du meinen Beitrag an Robert mE nicht richtig gelesen bzw. zumindest teils anders interpretiert hast, als von mir beabsichtigt. Hinzu kommt, dass Dein Betrachtungsansatz (eher wissenschaftlicher Natur) generell ein anderer ist als meiner (ich würde diesen als eher praktischer Natur bezeichnen). Insofern wird es schon daraus begründet, immer einige Differenzstandpunkte zwischen unseren Meinungen geben. Ohne jegliche Wertung dessen, kann ich somit hier nur feststellen, Du musst mich nicht von Deiner und ich will Dich nicht von meiner Meinung überzeugen.
Gruß Werner
.. , - ...
Anzeige
Ich gehe natürlich auch von Pgm(mierer)-Logik ...
01.06.2018 15:28:43
Pgm(mierer)-Logik
…aus, Werner,
und Du nur von praktizistischer (Fml-)Anwender-Logik.
Gäbe es aber in Xl keine dieser speziellen Fktt, wäre wohl tatsächlich auch für viele Fmln, die aus ganzen Datenfeldern EinzelErgebnisse ermitteln, Matrix­Fml-Form erforderlich (oder eine andere Fml-Notation bzw Arbeitsweise des Fml-Interpreters).
Solche Zusammenhänge versuche ich zu durchschauen und dann auch darzustellen. Und siehe da, manches bestätigt sich auch dadurch, dass andere Calc-Software bestimmte Probleme entweder anders zu lösen versucht oder gleich ganz ignoriert hat.
Luc :-?

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige