Excel: Höchsten Wert pro Tag auslesen und in ein neues Excel File überspielen
Hall Leute, ich benötige wieder mal eurer KNOW HOW!
Ich habe eine *.csv Datei welche sehr viele Messwerte enthält (mehrere Messpunkte pro Tag). Jetzt benötige ich eure Hilfe, denn ich wurde jetzt gerne aus der csv Datei nur den Höchsten Wert pro Tag haben so das man pro Tag nur einen Wert hat. Und wurde diesen Wert dann gerne in einer neunen Excel Datei zusammenführen.
Ich hoffe es kann mir wer weiter helfen.
Anbei der LINK zu der csv Datei:
http://we.tl/ABg4DL79Dg
Besten DANK für eure Hilfe!
Ich habe eine *.csv Datei welche sehr viele Messwerte enthält (mehrere Messpunkte pro Tag). Jetzt benötige ich eure Hilfe, denn ich wurde jetzt gerne aus der csv Datei nur den Höchsten Wert pro Tag haben so das man pro Tag nur einen Wert hat. Und wurde diesen Wert dann gerne in einer neunen Excel Datei zusammenführen.
Ich hoffe es kann mir wer weiter helfen.
Anbei der LINK zu der csv Datei:
http://we.tl/ABg4DL79Dg
Besten DANK für eure Hilfe!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 256026
Url: https://administrator.de/contentid/256026
Ausgedruckt am: 19.12.2024 um 15:12 Uhr
10 Kommentare
Neuester Kommentar
Moin,
man wird vergesslich
Excel: Bestimmte Infos aus mehreren csv Dateien auslesen und in einer Excel Datei zusammenführen
Gruß jodel32
man wird vergesslich
Excel: Bestimmte Infos aus mehreren csv Dateien auslesen und in einer Excel Datei zusammenführen
Gruß jodel32
Moin Sims,
Grüße Uwe
Sub GetHighestValuePerDay()
'Konstanten
Const QUELLPFAD = "D:\TEST_DATEN.csv"
Const ZIELPFAD = "D:\TEST_DATEN_OUT.xlsx"
'Variablen
Dim wsTarget As Worksheet, wbNew As Workbook, rngDelete As Range, cell As Range, dic as Object
'Objekte
Set dic = CreateObject("Scripting.Dictionary")
'Alerts und Screen-Refresh deaktivieren
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'Zielarbeitsblatt und Workbook für die importierten Daten
Set wbNew = Workbooks.Add
Set wsTarget = wbNew.Sheets(1)
'CSV mit Querytable importieren
With wsTarget.QueryTables.Add(Connection:="TEXT;" & QUELLPFAD, Destination:=wsTarget.Range("A1"))
.Name = "import"
.FieldNames = False
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileSemicolonDelimiter = True
.Refresh BackgroundQuery:=False
.Delete
End With
With wsTarget
'nach Werten absteigend sortieren
.Sort.SortFields.Add Key:=Range("B:B"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With .Sort
.SetRange Range("A:B")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'doppelte Tage entfernen
For Each cell In .Range("A1", .Range("A1").End(xlDown))
d = Int(cell.Value)
If Not dic.Exists(d) Then
dic.Add d, ""
Else
If Not rngDelete Is Nothing Then
Set rngDelete = Union(rngDelete, cell.EntireRow)
Else
Set rngDelete = cell.EntireRow
End If
End If
Next
rngDelete.Delete
' nach Datum sortieren
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("A:A"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .Sort
.SetRange Range("A:B")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Spalten anpassen
.Range("A:B").Columns.AutoFit
End With
'Neue Datei speichern und schließen
wbNew.SaveAs ZIELPFAD
wbNew.Close
'Alerts und Refresh wieder aktivieren
Application.DisplayAlerts = True
Application.ScreenUpdating = True
set dic = Nothing
MsgBox "Vorgang beendet!", vbInformation
End Sub