online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon snailhouse vom 06.02.2021, 21:49 Options

Lösung

Excel: Maximalwert mit zusätzlicher Bedingung

Hallo zusammen,

ich suche eine Möglichkeit, den Maximalwert aus einem bestimmten Range (in 1er Zeile über mehrere Spalten hinweg) auszulesen
und ausnahmsweise mal per Excel-Formel und nicht per VBA.

Das Problem dabei ist, dass sich in diesem Bereich Spalten befinden, deren Wert NICHT berücksichtigt werden darf.
Diese besonderen Spalten sind in einer anderen Zeile (gleiche Spalte) mit einem "x" markiert.

zum Beispiel:

in Zelle F1 steht ein "x", d.h. die darunter stehende "5" in F2 darf bei der Ermittlung des Maximalwertes in (A2:G2) nicht berücksichtigt werden.
Zeile 1: x
Zeile 2: 1 2 3 4 3 5 3


--> Der Maximalwert f.d. Bereich (A2:G2) wäre in diesem Falle: 4, wenn ich nur über =MAX(A2:G2) auslese, erhalte ich "fälschlicherweise" das Ergebnis: 5

Ein weiteres Problem ist, dass die Tabelle dynamisch aufgebaut wird und ich die Bereiche A2 bis E2 und G2 daher nicht fest definieren kann und dass eine Spalte mit "x" auch in B oder C oder... auftreten kann, sonst wäre ja die Angabe mehrerer Bereiche möglich (=MAX(A2:E2;G2)).


Eine Lösung wäre die Spalten nach dem Aufbau der Tabelle zu durchlaufen und die Bereiche zwischen zwei "x"-Spalten in einen string (Getrennt mit ";") zu schreiben und diese Formel einzufügen.


 
thisworkbook.worksheets("Tabelle1").cells(3,1).formula="=MAX(" & obengenannterstring & ")" 



Aber gibt es hierfür vielleicht auch eine elegante Lösung als Excel-Formel (ohne VBA heißt, nur per VBA die Formel einfügen)?

Im voraus vielen Dank!

Jürgen


Antwort schreiben

Antwort 1 von rainberg vom 06.02.2021, 22:10 Options

Hallo Jürgen,

folgende Matrixformel sollte funktionieren.

=MAX(BEREICH.VERSCHIEBEN(A1;;;;ANZAHL(2:2))<>"x";BEREICH.VERSCHIEBEN(A1;1;;;ANZAHL(2:2)))

Sie errechnet den Maximalwert der Zeile 2 beginnend mit Spalte A, deren Zellen in Zeile1 kein "x" enthalten.

Formeleingabe mit Strg+Shift+Enter abschließen

Gruß
Rainer

Antwort 2 von rainberg vom 07.02.2021, 07:48 OptionsLösung

Lösung
Hallo Jürgen,

obige Formel ist nicht vollständig.

Hier die Korrektur

=MAX(WENN(BEREICH.VERSCHIEBEN(A1;;;;ANZAHL(2:2))<>"x";BEREICH.VERSCHIEBEN(A1;1;;;ANZAHL(2:2))))

Gruß
Rainer

Antwort 3 von snailhouse vom 10.02.2021, 19:59 Options

Hallo Rainer,

super, so hat's geklappt ! :-)

Die Formel trage ich nun per Makro ein, dabei gebe ich die Spaltenzahl direkt ein, weil der Bereich wenn eine Leerzelle auftritt, sonst entsprechend zu klein angenommen wird.

Danke und Gruß
Jürgen

Antwort 4 von rainberg vom 10.02.2021, 20:10 Options

Hallo Jürgen,

probier's mal mit dieser Matrixformel, damit brauchst Du keine Spaltenzahl einzugeben.

=MAX(WENN(BEREICH.VERSCHIEBEN(A1;;;;VERWEIS(2;1/(2:2);SPALTE(2:2)))<>"x";BEREICH.VERSCHIEBEN(A1;1;;;VERWEIS(2;1/(2:2);SPALTE(2:2)))))

Gruß
Rainer

Ähnliche Themen

Excel: Zellen auf bedingung färben
seebaer_1  05.02.2008 - 198 Hits - 6 Antworten

Excel: If-Bedingung und Hyperlink
waliser  03.04.2008 - 89 Hits - 6 Antworten

[Excel 2003] Summen Bildung mit WENN bedingung
MrSmith  23.07.2008 - 11 Hits - 2 Antworten

Excel 2007 - Per Makro Daten nach Bedingung auslesen und sortieren
AlexS  24.11.2008 - 141 Hits - 4 Antworten

Zellenberechnung mit Bedingung
kirsche01  15.01.2009 - 107 Hits - 11 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026