
Ich möchte wissen, wie man die letzten nicht leeren Zellenwerte aus mehreren Spalten auf saubere Weise erhält, d. h. den erwarteten Wert grün hervorgehoben
Ich weiß, wie man die letzte nicht leere Zelle in einer Spalte erhält, indem man
=IFERROR(LOOKUP(2,1/(INDIRECT("A1:A"&ROW())<>""),INDIRECT("A1:A"&ROW())),"")
und verbinden Sie dann mehrere Spalten durch Anwenden
=TEXTJOIN("",TRUE,G4:L4)
Ich habe über mehrere Möglichkeiten nachgedacht, wie zum Beispiel:
- Transformieren Sie die Quelldaten vom 2D-Array in ein 1D-Array und geben Sie sie als Array-Formel zurück.
- Array verwenden, wenn;
- Schleife zeilenweise statt spaltenweise.
Aber mir fällt keine nette Formel ein, die richtig funktioniert.
Ich wäre für jede Hilfe dankbar. Vielen Dank.
Antwort1
Für eine Zeile können Sie:
Filter für nicht leere Zellen
nimm die Spalte ganz rechts
=LET(r,A4:F4,TAKE(FILTER(r,r<>""),-1))
Um dies in einer einzigen übergelaufenen Formel zu tun, geben Sie diese Berechnung einfach in BYROW ein:
=LET(d,A4:F16,BYROW(d,LAMBDA(r,TAKE(FILTER(r,r<>""),-1))))
Bearbeiten: Um den Textjoin anzuwenden, können Sie Folgendes verwenden:
=LET(
d, A4:F16,
BYROW(
d,
LAMBDA(r,
LET(
lastletter, TAKE(FILTER(r, r <> ""), -1),
position, XMATCH(lastletter, r),
seqend, CODE(INDEX(lastletter, 1, 1)),
seqstart, INDEX(seqend - position + 1, 1, 1),
seq, SEQUENCE(seqend - seqstart + 1, , seqstart),
TEXTJOIN("", TRUE, CHAR(seq))
)
)
)
)