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

VBA die dritte

Forumthread: VBA die dritte

VBA die dritte
17.03.2007 12:43:00
Horst
Hallo Excel-Freaks,
folgendes Problem:
0 0 0
1 0.001294499 0.014877674
1 0.007374665 0.014877674
1 0.007466505 0.014877674
1 0.012778845 0.014877674
1 0.021419583 0.014877674
1 0.009118184 0.014877674
1 0.010034607 0.014877674
1 0.018063114 0.014877674
1 0.018244833 0.014877674
1 0.014877674 0.014877674
0 0 0
Die erste Spalte stellt eine Art "Signal" dar, die zweite eine kumulierte Summe und die dritte Spalte den gewünschten Output. Die dritte Spalte soll (bei A=1) jenem Wert der letzten Zelle der zweiten Spalte entsprechen (dort wo in der ersten Spalte die letzte 1 steht, bevor 0 kommt). Die Länge der Abfolge von 0en und 1en ist unregelmäßig, insofern schwer mit Min bzw. Max-Funktionen umzusetzen. Aber vielleicht hat ja irgendwer eine gut Idee dazu.
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA die dritte
17.03.2007 13:46:50
Anton
Hallo Horst,
wenn ich dich richtig verstanden habe:

Option Explicit
Sub n()
  Dim gefunden As Boolean  
  Dim i, k, index1, index2, zahl
  On Error Resume Next    
  gefunden = False
  index1 = 1
  For i = 1 To ActiveSheet.UsedRange.Rows.Count  
    index2 = i
    zahl = Cells(i, 2).Value
    If Cells(i, 1).Value = 0 Then gefunden = True: Cells(i, 3) = 0  
    If gefunden = True Then  
      For k = index1 + 1 To index2 - 1  
        Cells(k, 3).Value = Cells(i - 1, 2).Value
      Next
      gefunden = False
      index1 = i
    End If  
  Next
End Sub  

mfg Anton
mfg
Anzeige
Problem gelöst!
17.03.2007 13:59:11
Horst
Hallo Anton,
vielen Dank für deine Hilfe! Ich habe das Problem inzwischen gelöst (mit einer Kombination von WENN() & SVerweis.
geht auch einfacher
17.03.2007 14:11:00
Josef
Hallo Horst,
da reicht eine einfache WENN()-Formel.
Tabelle2

 ABC
1000
210.0012944990.014877674
310.0073746650.014877674
410.0074665050.014877674
510.0127788450.014877674
610.0214195830.014877674
710.0091181840.014877674
810.0100346070.014877674
910.0180631140.014877674
1010.0182448330.014877674
1110.0148776740.014877674
12000
13000
1410.0074665050.021419583
1510.0127788450.021419583
1610.0214195830.021419583
17000

Formeln der Tabelle
ZelleFormel
C1=WENN(A1=0;0;WENN(C2<>0;C2;B1))
Excel Tabellen im Web darstellen  Excel Jeanie HTML
Gruß Sepp
Anzeige
AW: Formel mit VERGLEICH
17.03.2007 13:59:00
Erich
Hallo Horst,
vielleicht mit dieser Formel?
 ABC
1000
210,0012944990,014877674
310,0073746650,014877674
410,0182448330,014877674
510,0148776740,014877674
6000
710,7890,456
810,4560,456
9000

Formeln der Tabelle
ZelleFormel
C1=INDEX(B1:$B$65536;VERGLEICH(0;A1:$A$65536;0)-(INDEX(A1:$A$65536;VERGLEICH(0;A1:$A$65536;0)-1)>0))
C2=INDEX(B2:$B$65536;VERGLEICH(0;A2:$A$65536;0)-(INDEX(A2:$A$65536;VERGLEICH(0;A2:$A$65536;0)-1)>0))

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Thanks!
17.03.2007 14:16:39
Horst
Besten Dank an alle Mitstreiter! Wirklich toller Service hier im Forum.
;

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