Clever-Excel-Forum

Normale Version: Dynamische Arrays - Matrixformeln
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

mit der Einführung von dynamischen Arrays in Excel ist die Eingabe der geschweiften Klammern in Matrixformeln obsolet geworden bzw. nicht zwingend notwendig.
Beim Speichern fügt Excel jedoch die geschweiften Klammern für Matrixformeln automatisch hinzu, um die Kompatibilität mit älteren Excel-Versionen zu wahren.
Meinem Verständnis nach kann man in Excel mit dynamischen Arrays weiterhin die geschweiften Klammern in Matrixformeln verwenden und diese sollten
äquivalent sein, also dasselbe Ergebnis liefern.

Das funktioniert aber anscheinend nicht immer; jedenfalls im folgenden Fall nicht - siehe Screenshot. Formeln ...

Code:
A2 =SUMME(WENN(REST(SPALTE(B2:I2);2)>0;0;WENN(INDEX(B2:I2;1;SPALTE(B2:I2));INDEX(B2:I2;1;SPALTE(B2:I2)-1);0)))
A7{=SUMME(WENN(REST(SPALTE(B7:I7);2)>0;0;WENN(INDEX(B7:I7;1;SPALTE(B7:I7));INDEX(B7:I7;1;SPALTE(B7:I7)-1);0)))}

[attachment=27477]

Die Konsequenz ist in diesem Fall, dass die Formel in unterschiedlichen Excel-Versionen ein anderes Ergebnis liefern würde bzw. kann, sofern man DA nutzt.

Was meint ihr dazu?

Gruß
(10.11.2019, 15:34)maninweb schrieb: [ -> ]Die Konsequenz ist in diesem Fall, dass die Formel in unterschiedlichen Excel-Versionen ein anderes Ergebnis liefern würde bzw. kann, sofern man DA nutzt.
Hast du das mal mit einer NonDA-Excel-Version getestet?
Hallo,

ich hab's in Excel 2010 getestet. Da erscheint dann in A2 die 4000 als Ergebnis sobald einer der Bezugswerte (z.B. von WAHR auf FALSCH) geändert wird.
Also letztlich das, was in A7 als Matrixformel in der DA-Version steht.

Gruß
Hallöchen,

2016 bringt mir das. 2019 oder 365 setze ich derzeit noch nicht ein, habe die Formeln also direkt eingegeben.

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEFGHI
210001000WAHR250FALSCH250FALSCH250WAHR
640001000WAHR250FALSCH250FALSCH250WAHR

ZelleFormel
A2=SUMME(WENN(REST(SPALTE(B2:I2);2)>0;0;WENN(INDEX(B2:I2;1;SPALTE(B2:I2));INDEX(B2:I2;1;SPALTE(B2:I2)-1);0)))
A6{=SUMME(WENN(REST(SPALTE(B6:I6);2)>0;0;WENN(INDEX(B6:I6;1;SPALTE(B6:I6));INDEX(B6:I6;1;SPALTE(B6:I6)-1);0)))}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg
Hallo,

@schauan: vielen Dank. Die 4000 bestätigen das dann auch.

Mittlerweile habe ich noch weitere Varianten gefunden. Die einfachste Variante ist bislang eine Kombination SUMME mit INDEX
und einer Matrixkonstante. Ich denke, ich werde das jetzt mal an das Excel-Team weitergeben.

Code:
A6  =SUMME(INDEX(A5:D5;1;{1.2.3.4}))
A7 {=SUMME(INDEX(A5:D5;1;{1.2.3.4}))}

[attachment=27507]

Gruß