Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Hatte etwas Langeweile und mich auch mal an eine Formellösung herangewagt. ;)
• Bereich:
ich nehme den Bereich A:CZ (Spalte 1 bis 108) und indiziere
die Zeilen 3:33 sind SEQUENZ(31;;3)
die Spalten 5, 14, 23, … , 104 sind SEQUENZ(;12;5;9)
folglich ist der fragmentierte Bereich ax
ax;INDEX(A:CZ;SEQUENZ(31;;3);SEQUENZ(;3;5;9))
• leere Zellen:
Diese INDEX-Methode hat den Nachteil, leere Zellen als 0 auszugeben.
Falls 0 als echter Wert vorhanden sein darf, muss man Nichts durch Nichts WECHSELN …
(Den Sinn muss man ja nicht unbedingt verstehen)
Der so korrigierte Bereich bx ist folglich
bx;WECHSELN(ax;;)
• bx in Vektor cx zwingen:
cx;ZUSPALTE(bx;;1)
• Fundstelle der ersten Leerzelle ist XVERGLEICH("";cx)
• Ich brauche aber die (gefüllte) Zelle darüber, also
Fund;XVERGLEICH("";cx)-1
• Jetzt gebe ich den Wert mittels INDEX aus
INDEX(cx;Fund)
Ergibt meine LET()
=LET(
ax;INDEX(A:CZ;SEQUENZ(31;;3);SEQUENZ(;12;5;9));
bx;WECHSELN(ax;;);
cx;ZUSPALTE(bx;;1);
Fund;XVERGLEICH("";cx)-1;
INDEX(cx;Fund))