Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: letzte 3 Werte in Zeile finden

letzte 3 Werte in Zeile finden
18.03.2005 08:50:32
Micha.hal
Hallo Excelperten,
ich habe folgende Tabelle:
A_____B___C___D___E___F___G___H___I___J___K
Z1___20_______30______40__________50
Z2___10___________20__________30__________40
Ich möchte für jede Zeile die Summe der letzten 3 Werte berechnen. So soll also für Zeile 1 120 und für Zeile 2 90 berechnet werden. Die letzten 3 Werte können aber an beliebiger Stelle stehen und die Anzahl der Werte pro Zeile ist auch beliebig.
Gibt es dafür eine Lösung?
Danke.
Micha
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: letzte 3 Werte in Zeile finden
18.03.2005 09:03:23
Andi
Hi Micha,
so sollte es gehen (als Beispiel für die Zeilen 1 und 2, musst Du noch anpassen):

Sub summe_in_zeile()
Dim zeile As Integer
Dim spalte As Integer
Dim zaehler As Integer
Dim summe As Double
For zeile = 1 To 2
summe = 0
zaehler = 0
For spalte = 256 To 1 Step -1
If Cells(zeile, spalte).Value <> "" Then
summe = summe + Cells(zeile, spalte).Value
zaehler = zaehler + 1
If zaehler = 3 Then Exit For
End If
Next spalte
MsgBox summe
Next zeile
End Sub

Der Code funkionoiert aber nur, wenn in Deinen Zeilen ausschliesslich Zahlen (oder gar nix) stehen; bei Zeichen oder Strings steigt er aus.
Schönen Gruß,
Andi
Anzeige
AW: letzte 3 Werte in Zeile finden
18.03.2005 09:05:21
IngoG
Hallo Micha,
so sollte es funzen
=SUMMENPRODUKT(1:1*(SPALTE(1:1)&gt=KGRÖSSTE(SPALTE(1:1)*(1:1&lt&gt"");3)))
Gruß Ingo
oder auch so....
18.03.2005 09:35:00
Volker
Hallo Micha,
Ingo geht davon aus, das die Werte von li nach re größer werden.
Dann kann man seine Formel auch ganz primitiv darstellen:
=KGRÖSSTE(A1:G1;1)+KGRÖSSTE(A1:K1;2)+KGRÖSSTE(A1:K1;3)
nach unten ziehen
fertig
Ich fürchte aber, unsere ganzen Lösungen versagen auf die eine oder andere Art, wenn weniger als 3 Werte in der Zeile stehen.
Gruß
Volker
Anzeige
AW: oder auch so....
18.03.2005 09:44:06
IngoG
Hallo Volker,
ich glaube du hast meine Formel nicht richtig gelesen.
es werden immer die am weitesten rechts stehenden 3 werte addiert.
(zumindest bei mir) ;-)
wenn die zeile leer ist gibt die formel 0 zurück
kgrößte gibt ja nur die 3 Größte Spaltennumer nund nicht den 3größten wert zurück...
Anzeige
@Ingo
18.03.2005 09:49:54
Volker
Sorry, war ein Schnellschuß.
Hab nur kgrösste gesehen und die Simpelformel erstellt.
Gruß
Volker
AW: letzte 3 Werte in Zeile finden
18.03.2005 14:52:51
Micha.hal
Hallo IngoG,
ich dachte schon, mein Problem sei gelöst, ist es aber doch noch nicht. Kannst Du mir bitte mal Deine Formel zerpflücken und kurz erläutern?
=SUMMENPRODUKT(1:1*(SPALTE(1:1)&gt=KGRÖSSTE(SPALTE(1:1)*(1:1&lt&gt"");3)))
Was bewirkt z. B. das *(1:1"") bei KGRÖSSTE?
Danke.
Micha
Anzeige
AW: letzte 3 Werte in Zeile finden
18.03.2005 15:46:52
IngoG
Hallo Micha,
die formel arbeitet folgendermassen:
alle zellen in spalte 1 werden durchlaufen und es wird für jede Zelle einzeln geprüft, ob die aktuelle spalte &gt= der drittgrößten spalte ist, die werte beinhalten.
Du darfst natürlich die Formel nicht in die selbe Zeile schreiben, da ansonsten die spalte mitgezählt wird und ein zirkelbezug entsteht.
am einfachsten stellst Du sonst mal eine testdatei mit dem Fehler ins netz
Gruß ingo
Anzeige
AW: letzte 3 Werte in Zeile finden
21.03.2005 10:07:40
Micha.hal
Hallo Ingo,
vielen Dank für Deine Unterstützung. Hier habe ich mal das Beispiel in eine Datei gepackt.
Link=https://www.herber.de/bbs/user/19918.xls
Im Idealfall würde ich gern die Ergebnisspalte hinter den Werten stehen haben, aber das scheint ja nicht so zu funktionieren. Wenn Du Deine Formel in diese Datei einbauen könntest, dann wäre mir sicher geholfen.
Danke.
Micha
Anzeige
Datei wird nicht gefunden!!!
21.03.2005 12:25:59
IngoG
.
AW: letzte 3 Werte in Zeile finden
Micha.hal
Sorry, habe dem Link noch "link=" hinzugefügt und dadurch konnte man die Datei nicht per Klick finden. Hier also noch einmal der Link:
https://www.herber.de/bbs/user/19918.xls
Micha
AW: letzte 3 Werte in Zeile finden
22.03.2005 16:57:04
IngoG
Hallo Micha,
in L2 trägst Du folgende Formel ein und kopierst sie nach unten
=SUMMENPRODUKT($B2:$K2*(SPALTE($B2:$K2)&gt=KGRÖSSTE(SPALTE($B2:$K2)*($B2:$K2&lt&gt"");3)))
Gruß Ingo
Anzeige
Ingo, Du bist ein Held
23.03.2005 07:32:58
Micha.hal
Hallo Ingo,
Du bist ein Held. Jetzt funktioniert es und nun blicke ich auch durch (ich kam mit "Spalte(1:1)" nicht klar).
Vielen Dank für die Lösung und für Deine ausdauernde Unterstützung.
Ein schönes Osterfest wünsche ich.
Micha
oder so...
18.03.2005 09:27:55
Volker

Sub summe_in_zeile()
Dim zeile As Integer
Dim spalte As Integer
Dim zeile_max As Integer
Dim zaehler As Integer
Dim summe As Double
zeile_max = ActiveSheet.UsedRange.Rows.Count
For zeile = 1 To zeile_max
summe = 0
spalte = Cells(zeile, 255).End(xlToLeft).Column
For zaehler = 1 To 3
summe = summe + Cells(spalte, zeile)
If Cells(zeile, spalte - 1) <> "" Then
spalte = spalte - 1
Else
spalte = Cells(zeile, spalte).End(xlToLeft).Column
End If
Next
MsgBox summe
Next
End Sub

Gruß
Volker
Anzeige
AW: letzte 3 Werte in Zeile finden
18.03.2005 13:59:27
Micha.hal
Vielen Dank allen Helfern. Ich habe mit der Funktion KGRÖSSTE gearbeitet und mir was zurecht gebastelt. Jetzt funktioniert es.
Danke nochmal und ein schönes Wochenende.
Micha
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Letzte 3 Werte in einer Excel-Zeile finden


Schritt-für-Schritt-Anleitung

Um die letzten 3 Werte in einer Zeile zu finden und deren Summe zu berechnen, kannst Du folgende Schritte ausführen:

  1. VBA-Code verwenden: Öffne den VBA-Editor mit ALT + F11.
  2. Modul hinzufügen: Klicke mit der rechten Maustaste auf „VBAProject (deine Datei)“ > „Einfügen“ > „Modul“.
  3. Code einfügen: Kopiere und füge den folgenden VBA-Code ein:

    Sub summe_in_zeile()
       Dim zeile As Integer
       Dim spalte As Integer
       Dim zaehler As Integer
       Dim summe As Double
       For zeile = 1 To 2
           summe = 0
           zaehler = 0
           For spalte = 256 To 1 Step -1
               If Cells(zeile, spalte).Value <> "" Then
                   summe = summe + Cells(zeile, spalte).Value
                   zaehler = zaehler + 1
                   If zaehler = 3 Then Exit For
               End If
           Next spalte
           MsgBox summe
       Next zeile
    End Sub
  4. Anpassen der Zeilen: Ändere die Zeilenanzahl im For zeile = 1 To 2 entsprechend Deiner Tabelle.
  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus.

Häufige Fehler und Lösungen

  • Fehler: Kein Wert wird angezeigt: Stelle sicher, dass in den Zellen nur Zahlen stehen. Der Code funktioniert nicht mit Text oder leeren Zellen.

  • Fehler: Der Code funktioniert nicht für leere Zeilen: Der VBA-Code muss so angepasst werden, dass er auch leere Zeilen ignoriert oder eine Fehlermeldung anzeigt, wenn weniger als 3 Werte vorhanden sind.


Alternative Methoden

Wenn Du keine VBA-Lösungen nutzen möchtest, kannst Du die Funktion KGRÖSSTE in Excel verwenden:

  1. Trage folgende Formel in die Zelle ein, in der die Summe erscheinen soll (z. B. L2):

    =KGRÖSSTE(B2:K2;1) + KGRÖSSTE(B2:K2;2) + KGRÖSSTE(B2:K2;3)
  2. Ziehe die Formel nach unten, um sie auf andere Zeilen anzuwenden.

Diese Methode funktioniert nur, wenn mehr als 3 Werte in der Zeile vorhanden sind.


Praktische Beispiele

  • Beispiel 1: Angenommen, Du hast folgende Werte in Zeile 1: 20, , 30, 40, , 50. Hier wird die Summe der letzten 3 Werte (30, 40, 50) berechnet und ergibt 120.

  • Beispiel 2: Wenn Du in Zeile 2 die Werte 10, , 20, , 30, 40 hast, erhältst Du die Summe der letzten 3 Werte (20, 30, 40), was 90 ergibt.


Tipps für Profis

  • Eingrenzung der Suche: Du kannst die Spalten, die Du durchsuchen möchtest, eingrenzen (z. B. B2:K2), um die Leistung zu verbessern und die Verarbeitungszeit zu verkürzen.

  • Dynamische Bereiche: Verwende OFFSET oder INDEX, um dynamische Bereiche zu erstellen, die sich automatisch anpassen, wenn Du Daten hinzufügst oder entfernst.


FAQ: Häufige Fragen

1. Wie kann ich die Summe der letzten 3 Werte für mehrere Zeilen gleichzeitig berechnen? Du kannst die Formel in die erste Zeile einfügen und dann nach unten ziehen, um sie auf die anderen Zeilen anzuwenden.

2. Was passiert, wenn in einer Zeile weniger als 3 Werte stehen? Die KGRÖSSTE-Funktion gibt in diesem Fall die Summe der verfügbaren Werte zurück. Wenn keine Werte vorhanden sind, wird 0 angezeigt. Der VBA-Code sollte angepasst werden, um eine entsprechende Fehlermeldung auszugeben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige