Excel letzten Wert in Zeile ausgeben?

3 Antworten

Das sollte mit der Formel:

=OFFSET(A1;0;SUMPRODUCT(MAX(ISNUMBER(A1:M1)*COLUMN(A1:M1)))-1;1;1)

bzw. mit deutschen Formelnamen:

=VERSCHIEBUNG(A1;0;SUMMENPRODUKT(MAX(ISTZAHL(A1:M1)*SPALTE(A1:M1)))-1;1;1)

gehen (Anpassungen für Deine tatsächliche erste Zeile musst Du natürlich selbst vornehmen)

Anmerkung: In Excel - was ich nicht zur Verfügung habe - ist SUMPRODUCT eventuell nicht erforderlich, da Excel meines Wissens sehr viele Funktionen mit einer impliziten Matrixevaluierung ausgestattet hat, sobald ein ganzer Bereich als Argument übergeben wird. In LibreOffice Calc - womit ich obige Formeln getestet habe - nutzt man meist SUMPRODUCT, um eine Matrixevaluierung zu erzwingen

Meine Lösung wäre das folgende:

Bild zum Beitrag

zur Erklärung:

Max((A1:E1<>"")*Spalte(A1:E1)) ermittelt die größte befüllte Spaltennummer

Zeile() ermitteln nun noch die aktuelle Zeile

mit Adresse wird dies zu Demonstrationszwecken zu einem gültigen Zellbezug kombiniert.

Alternativ könnte man diese Formel noch mit Indirekt umschließen und würde auch das richtige Ergebnis erhalten. Ich versuche aber Indirekt so sparsam wie möglich zu verwenden, zumindest früher war Indirekt nicht ganz unumstritten, da es als volatile Funktion Berechnungen bei allem mögliche auslöst.

die andere Variante mit Index komplettiert nur die Variante mit Adresse hier muss lediglich nochmal der Bereich angegeben werden, daher am Anfang A:E

sind die Felder hingegen nicht leer sondern enthalten 0 müsste die Max Bedingung entsprechend angepasst werden, oder du verwendest gleich GutenTag2003 seine Variante.

Woher ich das weiß:Berufserfahrung – sowohl Beruf als auch Hobby
 - (Microsoft Excel, Formel, Excel-Formel)
z.B. so

Bild zum Beitrag

oder

=INDEX(A:I;ZEILE();ZÄHLENWENN(A4:I4;"<=0"))

Bild zum Beitrag

 - (Microsoft Excel, Formel, Excel-Formel)  - (Microsoft Excel, Formel, Excel-Formel)

Gipfelstuermer  22.06.2024, 20:03

Da die Lösung eigentlich schon super ist verzichte ich auf eine eigene. Ich würde sie jedoch etwas modifizieren anstelle von <=0 würde ich <>0 oder <>"" nehmen andernfalls hast du mit Leerzellen ein Problem.

1
GutenTag2003  22.06.2024, 20:58
@Gipfelstuermer

In den Zellen die gezählt werden sollen*), muss etwas stehen, mindestens eine "0". Blank führt zu einer anderen Adresse (Zelle).

Vielleicht hast Du eine Idee, dieses Problem aufzulösen.

.

*) zwischen 2 Beträgen.

0
Gipfelstuermer  23.06.2024, 10:41
@GutenTag2003

Leider kann ich keine Screenshots anhängen deswegen hab ich jetzt doch was eigenes geschrieben.

Meine Lösung wäre gewesen:

=INDEX(A:F;ZEILE();MAX((A1:E1<>"")*SPALTE(A1:E1)))

0
Gipfelstuermer  23.06.2024, 10:53
@GutenTag2003

Das mit 0 geht natürlich auch aber je nach Anwendungsmöglichkeiten mag das in dem ein oberen Fall evtl. doof sein, man weiß ja als antwortender hier nie was hinten noch großes dran hängt.

Muss natürlich Index(A:E.... heißen. Sollte sich ja auf den gleichen Bereich beziehen wie die Max Berechnung.

0
GutenTag2003  23.06.2024, 10:54
@Gipfelstuermer

Da ich den Bezug auf eine andere Zeile verändert/angepasst hatte, ist mir das nicht aufgefallen.

0