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

Maximalwertsuche in dynamischer Matrix

Maximalwertsuche in dynamischer Matrix
31.05.2021 15:21:32
AL
Hallo zusammen,
ich möchte in einer Matrix eine Maximalwertsuche durchführen. Bei einer statischen Matrix kann ich eine solche Suche mit der Aggregat-Funktion in Kombination mit Index durchführen (siehe Beispielmappe). Wie führt man eine solche Suche durch, wenn die Matrix größer/kleiner werden kann (in Bezug auf Zeilen/Spalten).
Hat jemand eine Idee?
Danke für die Hilfe.
Gruß
AL
https://www.herber.de/bbs/user/146457.xlsx

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ne Möglichkeit: nutz konsequent AGGREGAT() ...
31.05.2021 15:38:25
neopa
Hallo AL,
... denn in Deinen Formeln arbeitest Du noch mit MIN() und MAX() .
Eine zweite Möglichkeit wäre, wandele Deine Datenliste in eine "formatierte" und arbeite mit dieser.
Gruß Werner
.. , - ...
AW: ne Möglichkeit: nutz konsequent AGGREGAT() ...
31.05.2021 18:47:51
AL
Hallo Werner,
danke für die Info.
Ich habe mein Problem wie folgt gelöst:
=D3)/(D10:AD10=D5)/(C11:C72
Das klappt soweit gut.
Weiß noch jemand, wie ich den Mittelwert des Bereichs zwischen x1, x2, y1 und y2 ermitteln kann? Ich habe in der Formel statt 14 eine 1 eingebeben, um den Mittelwert errechnen zu lassen. Leider wird mir #WERT! angezeigt. Habe ich etwas nicht bedacht?
Gruß
AL
Anzeige
AW: ne Möglichkeit: nutz konsequent AGGREGAT() ...
31.05.2021 18:50:58
AL
... Korrektur: meine Lösung lautet korrekterweise :
=AGGREGAT(1;6;D11:BM72/(D10:BM10>=D3)/(D10:BM10=D5)/(C11:C72 ;-)
AW: dann ist es damit auch nicht mehr offen owT
01.06.2021 08:59:38
neopa
Gruß Werner
.. , - ...
AW: die Mittelwertfunktion (1) von AGGREGAT() ...
01.06.2021 09:39:56
AGGREGAT()
Hallo AL,
... ist (leider noch immer) nicht derartig matrixförmig, wie es die Funktionen 14 -19 von AGGREGAT() sind. Da Du aber den auszuwerten Bereich für Mittelwert erst ermitteln willst/musst kannst Du da eine reine AGGREGAT(1;...) nicht einsetzen. Du kannst aber mit INDEX() und AGGREGAT() den auszuwertenden Bereich definieren und diesen dann der MITTELWERT()-Funktion übergeben.
Gruß Werner
.. , - ...
AW: die Mittelwertfunktion (1) von AGGREGAT() ...
01.06.2021 10:40:13
AGGREGAT()
Hallo Werner,
danke für die Info. Sehr bedauerlich, dass die anderen Funktionen von Aggregat nicht matrixförmig sind. Ich hoffe die Excelprogrammierer werden das ändern, da Aggregat sehr bequem mehrere Funktionen vereint.
Ich habe deinen Rat befolgt und die Index-Funktion in Kombination mit Aggregat verwendet.
Gruß
AL
Anzeige
AW: auf das gewünschte warte ich schon 6 Jahre owT
01.06.2021 13:36:49
neopa
Gruß Werner
.. , - ...
AW: auf das gewünschte warte ich schon 6 Jahre owT
01.06.2021 22:54:23
Daniel
Hi
wird wohl kaum kommen, da man sowas in der aktuellen Excelversion über Mittelwert(Filter(...)) einfacher und anschaulicher lösen kann.
Gruß Daniel
@neopa C AW: auf das gewünschte warte ich schon 6
02.06.2021 08:00:47
AL
Hallo Daniel,
Ich kenne zwar die Filterfunktion, wüsste aber nicht wie man in einer Matrix einen Mittelwert in einem Bereich (zwischen x1, x2 und y1, y2) erzeugen könnte. Falls du Zeit hast, könntest du anhand meiner Beispielmappe das zeigen? Solche Tricks sparen viel Aufwand. ;)
Danke für deine Mühe.
Gruß
AL
@neopa C AW: auf das gewünschte warte ich schon 6
02.06.2021 08:34:58
Daniel
Mittelwert = Summe / Anzahl
Beides voll Matrixtauglich.
Gruß Daniel
Anzeige
die Frage & meine Feststellung war eine andere owT
02.06.2021 09:01:08
neopa
Gruß Werner
.. , - ...
AW: zur Funktion FILTER() ...
02.06.2021 09:11:43
neopa
Hallo AL,
... gibt es in in der von mir genutzten Excelversion (2010 und 2016) noch nicht. So dass ich Dir dies auch nicht aufzeigen kann. Ich würde diese so ermitteln, wie Du es zunächst für MAX und MIN angegangen warst. Also den Auswertungsbereich ermitteln und diesen dann über INDEX() der MITTELWERT()-Funktion übergeben.
Gruß Werner
.. , - ...
Du weißt doch, ...
02.06.2021 02:20:06
Luc:-?
…Werner,
dass ich dazu mal eine Demo-UDF geschrieben hatte (im Archiv), die zeigt, wie einfach das für µS gewesen wäre, hätte man das wirklich machen wollen. Auch das hierin neue MEDIAN wurde dem bereits seit TEILERGEBNIS Bekannten nur angeschlossen. Für die Fktt ab Nr 14 hatte man anders (im Sinne der Masse der alten Xl-Fktt!) entschieden, da diese ein 2.Argument (K) benötigen, und deshalb auf eine einfache Auflistung einzubeziehender Bereiche (was auch per diskontinuierlichem Bereich realisierbar wäre!) der Einfachheit halber verzichtet. Nur dadurch ist Deine HptAnwendungsform von AGGREGAT überhaupt erst möglich! ;-)
Übrigens hatte ich hier auch schon mal eine Filter-UDF vorgestellt (eigentlich 2, die ältere, NoErrRange, ist universeller). Dazu kommt in ein paar Wochen mehr im Rahmen eines Demo-VBA-Projekts, das auch noch andere UDFs und wenig bis kaum Bekanntes enthält.
Morhn, Luc :-?
Anzeige
AW: ja; aber ich meinte halt MS owT
02.06.2021 09:05:09
neopa
Gruß Werner
.. , - ...
Eben,, ...
02.06.2021 13:24:19
Luc:-?
…Werner,
und im Nachhinein ändert µS keine etablierte Fkt, was Du auch an den Neuerungen bei einigen alten erkennen kannst, zB RANG zu den beiden zusätzlichen RANG.~-Varianten. Das hat mit Abwärtskompatibilität zu tun, denn es wäre sicher nicht im NutzerInteresse, wenn alte Dateien plötzlich andere ErgebnisWerte zeigen. Das kann sich µS höchstens auf „Insider-Spielwiesen“ mit NutzerRisiko wie 365-Abo mit Beta-Versionen erlauben (und ich bei weitgehend eingehaltener Abwärtskompa­tibilität mit UDFs - deshalb mit Versionsnr -, ansonsten neuer Name).
Luc :-?
Anzeige
AW: eine solche Gefahr bestünde da nicht, ...
02.06.2021 15:52:39
neopa
Hallo Luc,
... wenn man die Funktionalität für die Unterfunktion 1-13 bei AGGREGAT() entsprechend den für 14-19 ergänzend erweitern würde, weil ja momentan diese nicht derartig eingesetzt werden können, ohne eine Fehlermeldung zu erzeugen. Aber damit rechnen tu ich natürlich nicht, dass das MS für die aktuellen Versionen jemals tun wird oder gar in Erwähnung zieht. Wäre schon erstaunlich, wenn sie es künftig mal einplanen sollte. Eine Abwärtskompatibilität wurde übrigens mE noch nie ermöglicht. Diese ist/wäre ja auch mE nicht notwendig.
Aber eine "homogene" Wirkungsweise aller Funktionalitäten der Funktion AGGREGAT() wäre schon sinnvoll und zweckmäßig und somit weiterhin wünschenswert.
Gruß Werner
.. , - ...
Anzeige
AW: eine solche Gefahr bestünde da nicht, ...
02.06.2021 16:55:53
Daniel
um herauszufinden, warum und wie so, müsste man direkt bei MS nachfragen.
Alles andere ist nur spekulation.
ich gehe mal davon aus, dass man für Aggregat die vorhandenen Codes von Teilergebnis übernommen und diese lediglich um die Fehleroption ergänzt hat.
die Fuinktionalitäten, die man neu hinzugefügt hat, wurden dann neu geschrieben und dabei auch Matrixformeltauglich gemacht.
beim klassischen Teilergebnis war eine Matrixformeltauglichkeit sinnlos und darum auch nicht vorhanden.
Gruß Daniel
So wird's sein ...
02.06.2021 18:01:59
Luc:-?
Daniel,
und nachträglich ändert µS keine Fktt. Wenn doch, dann mit neuem Namen. Hat wohl auch mit den beiden Fktsklassen/-kerneln, AltBestand und neu ab Xl12/2007, zu tun. Und 3 SammelFktt mit nahezu analoger Aufgabe sind wohl auch zuviel des Guten, nachdem nun auch schon FILTER existiert.
Mit Abwärtskompatibilität war hier nur das Öffnen älterer Mappen in neueren Xl-Versionen gemeint, Werner;
und darauf wird idR geachtet, während der umgekehrte Fall (AufwärtsKompatibilität) eher nicht (auf Dauer) berücksichtigt wdn kann.
Luc :-?
Anzeige
AW: Maximalwertsuche in dynamischer Matrix
31.05.2021 15:44:13
Daniel
Hi
Man für den Zellbezug einen Namen anlegen.
Den Bezug dieses Namens kann man auch per Formel berechnen lassen.
Gruß Daniel
AW: Maximalwertsuche in dynamischer Matrix
02.06.2021 12:24:36
Daniel
Hi
platziere die Tabelle ganz oben links, so dass sie in Zelle A1 beginnt, dh Zeile 10 wird Zeile 1 und Spalte C wird Spalte A
da Werte in der Kopfzeile / -Spalte aufsteigend sortiert sind, kannst dann die Zeilen- und Spaltennummern mit Hilfe von VERGLEICH mit 3. Parameter = WAHR und Angabe der ganzen Spalten oder Zeile .
du bekommst bspw die Spaltennummer für "größer-gleich -1,21" mit der Formel:
=VERGLEICH(-1,21+0,0000001;1:1;1)+1
das +0,000000001 brauchst du, um Sonderfälle zu vermeiden die entstehen, wenn du genau nach dem Zellwert suchst, der auch in der Kopfzeile steht.
würdest du nach kleiner-gleich suchen, wäre die Formel etwas einfacher:
=VERGLEICH(-1,21;1:1;1)
damit kannst du dann Tabellen beliebiger Größe auswerten.
der Vergleich stört sich auch nicht an den Fehlerwerten.
für die Spalte A das ganze dann analog.
Gruß Daniel
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige