INDEX eindimensional - horizontal versus vertikal
#1
Hallo zusammen,

es lässt mir keine Ruhe.

=INDEX({3;4;5;6};1)
liefert als Rückgabewert das Array ={3}

=INDEX({3.4.5.6};1)
liefert kein Array sondern den einzelnen Wert =3

Das kann doch kein Feature sein?

Bitte um Eure geschätzte Meinung.
Antworten Top
#2
Hi Boris,

(21.01.2025, 19:56){Boris} schrieb: =INDEX({3.4.5.6};1)
liefert kein Array sondern den einzelnen Wert =3

korrekt wäre da ja
=INDEX({3.4.5.6};;1)

Gruß, Uwe

oder anders rum: Bei vollständiger(horizonaler und vertikaler) Angabe der Position ergibt es keine Matrix.
Antworten Top
#3
Hi,

wie schon die ganze Zeit:

mit ; erzeugst Du ein vertikales Array, mit . ein Horizontales. Ist schon ein alter Hut:

SUMMENPRODUKT(ZEILE(A1:A5)*{1;2;3;4}) erzeugt #NV, weil zwei unterschiedlich große Arrays vorliegen
SUMMENPRODUKT(ZEILE(A1:A5)*{1.2.3.4}) ergibt ein Ergebnis, weil (in diesem Fall) eine 5 x 4 Matrix erzeugt wird und jeder Zeilenwert mit jedem Spaltenwert multipliziert wird.

Das, was Anton schon ausführlich erläutert hat. Aus dem horizontalen Array erhältst Du einen Wert, aus dem Vertikalen nur ein Array, was z.B. in Deiner vorherigen Formel nicht zum schon vorhandenen passt.

=INDEX({3;4;5;6};1;1)  liefert wieder die Zahl 3, nämlich aus der einspaltigen Matrix den Wert aus Zeile 1.

Funktioniert:
=LET(x;DATUM(2025;1;SEQUENZ(31));WT;INDEX({3;4;5;6};1;1);y;ERWEITERN(x;ZEILEN(x)+WT;1;0);y)
=LET(x;DATUM(2025;1;SEQUENZ(31));WT;INDEX({3.4.5.6};1);y;ERWEITERN(x;ZEILEN(x)+WT;1;0);y)
=LET(x;DATUM(2025;1;SEQUENZ(31));WT;INDEX({3;4;5;6};1);y;ERWEITERN(x;ZEILEN(x)+@WT;1;0);y)
=LET(x;DATUM(2025;1;SEQUENZ(31));WT;INDEX({3;4;5;6};1;1);y;ERWEITERN(x;ZEILEN(x)+WT;1;0);y)

Ich kann es nicht so gut erklären wie Anton oder Onur, aber so ist es für mich logisch.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste