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

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

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
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
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
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
Anzeige
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
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

40 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige