Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
852to856
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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.

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige