Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MAX wenn mit Indirekt in Matrixformel

Forumthread: MAX wenn mit Indirekt in Matrixformel

MAX wenn mit Indirekt in Matrixformel
01.09.2019 12:35:31
Roland
Hallo liebes Forum,
habe mal wieder ein Problem mit EXCEL Proffessionel Plus 20162016, das ich nicht verstehe zu loesen.
Benoetige einen Maximalwert (in diesem Fall ein Datum) wenn in einer anderen Spalte ein bestimmtes Kriterium erfuellt ist. Da ich diese Formel in diversen anderen Zeilen mit unterschiedlichem Bereich benoetige habe ich dies mit Indirekt ergaenzt.
Mittlerweile habe ich auch herausgefunden, dass Indirekt bei Matrixformeln etwas zickt und wandle deshalb mit Hilfe der funktion N() den Indirekt Bereich in eine Zahl um. Soweit funktioniert auch alles nur dass ich das kleinste Datum als Ergebnis erhalte also MIN anstelle von MAX.
Habe alles mehrmals ueberprueft und es ist keine Fehler bezueglich des Bereiches innerhalb Indirekt() vorhanden.
Upload einer Beispieldatei ist schlecht, da sehr gross.
Ueber jegliche Hilfe bin ich Euch dankbar.
Hier die Formel:
{=MAX( IF( N(INDIRECT("E$"&MATCH("",$F$1:F3264,-1)+2 & ":E" &ROW())) =E3263, N(INDIRECT("R$"&MATCH("",$F$1:F3264,-1)+2 & ":R" & ROW()-1))) ) }
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
INDIREKT-Array
01.09.2019 12:57:40
{Boris}
Hi,
ohne Deine konkreten Daten zu kennen, nur eine Vermutung:
Mit VERGLEICH("",$F$1:F3264,-1) wird der letzte Werte in Spalte F gefunden - und zwar nur TEXT und keine Zahlen.
Wenn das bei Dir der Fall ist, dann musst Du das INDIREKT-Array nicht mit N() sondern mit T() zum Leben erwecken.
Also: Textarrays mit T(), Zahlenarrays mit N().
VG, Boris
Anzeige
AW: INDIREKT-Array
01.09.2019 16:34:34
Roland
Hi Boris,
danke fuer den tipp aber das aendert nichts.
vielleicht erst mal eine kurze Beschreibung zu der Tabelle.
Es geht hier um einen Gantt, also eine Datei mit der ich die Anzahl der benoetigten Mitarbeiter je Projekt berufsspezifisch erfasse sowie den jeweiligen prozentuellen Arbeitsfortschritt (und noch so einiges mehr). Das Projekt geht bereits mehrere Jahre und hat zig- Unterprojekte.
Nun habe ich mir gedacht zur genaueren Terminierung kann ich Aktivitaeten, die gleichzeitig ausgefuehrt werden koennen mit gleichzeitigem Anfangsdatum versehen. Die naechste Gruppe, die erst nach Fertigstellung dieser Arbeiten starten kann muss somit als Starttermin den Tag nach Fertigstellung der vorhergehenden Aktivitaeten erhalten. Da die Aktivitaeten jedoch unterschiedlicher Dauer sind benoetige ich das Fertigstellungsdatum der Aktivitaet mit den meisten Arbeitstagen. Und genau das wollte ich mit dem Teil der Formel die ich gepostet hatte erreichen.
Mit dem Vergleich in Spalte "F" erhalte ich die letzte volle Zeile in dieser Spalte zurueck. Indem ich 2 zeilen hinzu addiere gebe ich mir somit indirekt den Startbereich vor. In Spalte "E" stehen die Aktivitaeten, die gleichzeitig durchgefuehrt werden koennen als Zahlen von 1 bis z.B. 10
Also erst starten die 1-er Aktivitaeten, dann die 2-er u.s.w. In Spalte "R" stehen die Enddaten der jeweiligen Aktivitaeten in abhaengigkeit von der prozentualen Fertigstellung.
In Spalte "M" gebe ich mit dem Eintrag "YES" vor ob gemeinsame Aktivitaeten durchgefuehrt werden muessen oder ob die Aktivitaeten nacheinander abgearbeitet werden koennen.
Ich habe in der Formel somit noch mehrere "IF()"-Abfragen, die ich hier nicht mit aufgefuehrt habe.
Wenn ich jetzt in der zeile davor in Spalte "M" den Eintrag "YES" habe, muss ich innerhalb dieses Teilprojektes alle Aktivitaeten mit der Zahl (z.B.) 2 auf den spaetesten Endtermin pruefen, einen Tag hinzuzaehlen und als Starttermin fuer die naechste Aktivitaet verwenden.
Und dies moechte ich mit der Matrixformel erreichen. Aber wie bereits erwaehnt erhalte ich trotz allem den fruehesten Endtermin (also MIN) und nicht den spaetesten (MAX).
Ich habe eine Beispieldatei unter
https://www.herber.de/bbs/user/131765.xlsx
zur Veranschaulichung hochgeladen. Die ist allerdings ohne Formeln, da das alles zu komplex ist und die Datei nur ein ganz kleiner Teil meiner Datei ist.
Wie gesagt, bin dankbar fuer jede Hilfe.
Hier nochmal der Teil der Formel der nicht funzt wie er soll:
{=MAX( IF( N(INDIRECT("E$"&MATCH("",$F$1:F3264,-1)+2 & ":E" &ROW())) =E3263, N(INDIRECT("R$"&MATCH("",$F$1:F3264,-1)+2 & ":R" & ROW()-1))) ) }
Anzeige
So viel Text...
01.09.2019 16:45:30
{Boris}
Hi,
...aber stattdessen hättest Du einfach schreiben sollen:
Die Formel steht in Zelle XY und ich erwarte folgendes Ergebnis: …
So zumindest blick ich grad nicht durch.
VG, Boris
AW: So viel Text...
02.09.2019 12:11:06
Roland
Sorry Boris, hatte mir bereits gedacht dass dies zuviel geschreibe ist.....wollte halt vesuchen alle missverstaendnisse auszuraeumen. Aber manchmal ist weniger oft mehr.
Habe die Beispieldatei etwas vereinfacht und nochmals hochgeladen:
https://www.herber.de/bbs/user/131784.xlsx
Nehmen wir mal die Gruppe MON01-3 (Zeile 26 bis 53) und hiervon Zelle "E33".
Hier soll nun das MAX-Datum aus Spalte "G" der Gruppe MON01-3 stehen , wenn in Spalte A eine 1 steht, also:
MAX(R28:R32)
~f~
bzw. nach der Formel in E33:
~f~
{MAX(IF(A28:A33=A32,G28:G33))}
~f~
Hier nochmals der komplette Teil der Formel der mir Probleme bereitet:
~f~
{=MAX( IF( N(INDIRECT("A$"&MATCH("",$B$1:B33,-1)+2 & ":A" &ROW())) =A32, N(INDIRECT("G$"&MATCH("",$B$1:B33,-1)+2 & ":G" & ROW()-1))) ) }
Wieso erhalte ich immer das Minimum-Datum ?
Hoffe das ist nun verstaendlich.
Vielen Dank.
Anzeige
Noch offen...
02.09.2019 22:32:46
{Boris}
Hi,
ich bin die Woche nicht am Rechner. Daher stell ich mal auf offen.
VG Boris
AW: So viel Text...
04.09.2019 08:30:18
fcs
Hallo Roland,
warum es mit der Funktion MATCH (bzw. VERGLEICH) innerhalb der Matrix-Formel Probleme gibt kann ich dir nicht sagen.
Scheinbar gibt es bei der AUswertung als Matrixformel eine Berechnung, die von außen nicht nachvollzogen werden kann.
Du musst die Berechnung der 1. Zeile für den per INDIREKT zu ermittelnden Bereich in einer Hilfsspalte berecnen. Dann funktioniert es.
Sheet1

 EFGHI
3328-Aug-19809-Sep-190%28

Formeln der Tabelle
ZelleFormel
E33{=MAX( WENN(N( INDIREKT("A" & I33 & ":A" & ZEILE()-1)) =A32; INDIREKT("G" & I33 & ":G" & ZEILE()-1); 0) )}
G33=ARBEITSTAG.INTL(E33;F33;7;Holidays!Holidays)
I33=VERGLEICH("";$B$1:B33;-1)+2
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
LG
Franz
Anzeige
AW: So viel Text...
05.09.2019 15:42:04
Roland
Hallo Franz,
vielen Dank fuer die Antwort.
Hast Du evtl. eine Idee fuer eine Formel ohne Hilfsspalte ?
Wuerde die Hilfsspalte lieber vermeiden.
mfG
Roland
;
Anzeige
Anzeige

Infobox / Tutorial

MAX-Werte finden mit Indirekt in Excel


Schritt-für-Schritt-Anleitung

Um die MAX-Funktion in Verbindung mit der INDIREKT-Funktion in einer Matrixformel zu verwenden, folge diesen Schritten:

  1. Daten vorbereiten: Stelle sicher, dass Deine Daten in einer strukturierten Tabelle vorliegen. In unserem Beispiel verwenden wir die Spalten A (Kriterien) und G (Werte), um das Maximum zu berechnen.

  2. Formel eingeben: Verwende die folgende Matrixformel in der Zelle, in der Du das Maximum berechnen möchtest:

    {=MAX(IF(INDIRECT("A"&MATCH("",B$1:B33,-1)+2&":A"&ROW()-1)=A32, INDIRECT("G"&MATCH("",B$1:B33,-1)+2&":G"&ROW()-1)))}
    • Ersetze A32 durch die Zelle, die das Kriterium enthält.
    • Die Formel muss mit STRG + SHIFT + ENTER abgeschlossen werden, um sie als Matrixformel zu aktivieren.
  3. Ergebnis überprüfen: Die Formel gibt das Maximum der Werte in Spalte G zurück, die dem Kriterium in Spalte A entsprechen.


Häufige Fehler und Lösungen

  1. Falsches Ergebnis (MIN statt MAX):

    • Überprüfe, ob die Kriterien korrekt sind und die IF-Bedingung richtig formuliert ist. Oft kann ein kleiner Fehler in der Logik zu falschen Ergebnissen führen.
  2. Verwendung von N() oder T():

    • Stelle sicher, dass Du N() für Zahlen und T() für Text verwendest. In vielen Fällen kann die Verwendung der falschen Funktion zu unerwarteten Ergebnissen führen.
  3. Indirekte Bereiche:

    • Wenn die INDIREKT-Funktion nicht wie gewünscht funktioniert, überprüfe die syntaktische Struktur. Ein häufiges Problem ist, dass die Zellreferenzen nicht korrekt angegeben sind.

Alternative Methoden

Falls Du die Verwendung von INDIREKT vermeiden möchtest, kannst Du auch Hilfsspalten nutzen:

  1. Hilfsspalte einrichten: Berechne zuerst die Werte in einer Hilfsspalte, und verwende dann eine einfache MAX-Formel.

  2. Direkte Berechnung: Anstelle von INDIREKT kannst Du die Bereiche direkt angeben, wenn diese fest sind. Zum Beispiel:

    =MAX(IF(A28:A33=A32, G28:G33))

Praktische Beispiele

Angenommen, Du hast folgende Daten:

A (Kriterium) G (Wert)
1 28-Aug-19
1 29-Aug-19
0 30-Aug-19
1 31-Aug-19

Um das maximale Datum für die Kriterien 1 zu finden, verwendest Du die Matrixformel:

{=MAX(IF(A1:A4=1, G1:G4))}

Tipps für Profis

  • Vermeide übermäßige Verwendung von INDIREKT: Diese Funktion kann die Leistung Deiner Excel-Datei beeinträchtigen, insbesondere bei großen Datenmengen.

  • Verwende Arrays effizient: Matrixformeln können sehr mächtig sein, aber sie benötigen oft viel Rechenleistung. Halte Deine Daten so klein wie möglich.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen MAX() und MIN()? Die Funktion MAX() gibt den höchsten Wert zurück, während MIN() den niedrigsten Wert zurückgibt.

2. Wie kann ich mehrere Kriterien in einer MAX-Formel verwenden? Du kannst zusätzliche Bedingungen in der IF-Funktion hinzufügen:

{=MAX(IF((A1:A4=1)*(B1:B4="Bedingung"), G1:G4))}

3. Welche Excel-Version benötige ich für Matrixformeln? Matrixformeln sind in Excel 2010 und späteren Versionen verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige