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

Daten Bereinigung mit VBA-Excel

Forumthread: Daten Bereinigung mit VBA-Excel

Daten Bereinigung mit VBA-Excel
05.12.2017 11:40:06
legac
Hallo Zusammen,
ich versuche eine Datenreihe zu bereinigen. es Sind Messdaten wo manchmal Ausreißer auftauchen.
gewünscht: es wird jede zelle geprüft und wenn eine Zelle(i+1) eine auffällige Wert aufweist wird sie übersprungen bis wieder eine zelle(i+j) gefunden ist, welche eine plausibler wert enthält. hier wird dann die Mittelwert der ersten und letzten plausiblen (korrekten) wert gebildet und wird in der Zelle (i+1) übergeben.
also:
Zelle(i): korrekt wert in datenreihe vor dem Ausreißer
Zelle(i+j): Zelle mit ausreißer
Zelle(i+j+1): zelle mit korrektem wert nach Ausreißer

Public Sub Korrek()
Dim i, j, Anzahl As Integer
Dim t, x, y As Long
Dim Faktor1, Faktor2 As Long
letztezeile = Worksheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row
With Worksheets("Tabelle1")
.Range("B1:B2881").Copy
.Paste Destination:=.Range("E1")
For i = 1 To 2881 Step j
't = Worksheets("Tabelle1").Range("E" & (i - j)).Value
x = Worksheets("Tabelle1").Range("E" & i).Value
y = Worksheets("Tabelle1").Range("E" & (i + 1)).Value
q = Worksheets("Tabelle1").Range("E" & (i + j)).Value
Faktor2 = Abs(y / x)
If (Faktor2 > 2 Or Faktor2  2 Or (.Range("E"  _
_
& (i + j)).Value / .Range("E" & i).Value) 

leider funktioniert dies nur bedingt wenn nicht falsch. die schleife für j kriege ich nicht korrekt hin, so dass j zurückgesetzt ist wenn die Nebenbedingung (if schleife) nicht zutrifft.
ich hoffe ich konnte das Problem so gut wie möglich beschreiben und hoffe auf eure Hilfe.
Legac
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten Bereinigung mit VBA-Excel
05.12.2017 11:55:02
legac
die Datei habe ich hochgeladen. bitte die erste Zeile löschen damit der Code funktioniert. diese wurde nur fürs Verständnis zugefügt.
Grüße
Legac
AW: Vorschlag
05.12.2017 15:48:39
Fennek
für Daimler:
=WENN(ODER(C904/C905>2;C904/C905
in Zeile 904 eingeben und dann nach oben und unten kopieren.
AW: Vorschlag
05.12.2017 16:55:10
legac
Hallo Fennek,
danke für die Antwort.
ich würde es gerne via VBA gelöst, da es zb. 3 Ausreißer hintereinander kommen können. da hilft dein Vorschlag leider nicht.
viele Grüße
Legac
Anzeige
AW: Vorschlag
06.12.2017 17:06:48
legacys
keine idee?
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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