Supportnet / Forum / Tabellenkalkulation
Excel: Sortieren von Datum/Uhrzeit
Frage
Hallo zusammen,
mein Problem ist Folgendes:
in einer Excel-Tabelle habe ich eine Spalte, in der Datum und Uhrzeit folgendermassen angegeben sind:
01.06.2006 09:54:12
Nun möchte ich die ganze Tabelle nach Uhrzeit sortieren, ohne dass das Datum beachtet wird. Wie muss ich vorgehen? Unter Format kann man ja einstellen, dass nur die Uhrzeit angegeben wird, aber es sortiert dann trotzdem immer noch nach dem Datum.
Besten Dank für die Hilfe!
Antwort 1 von Aliba
Hi Suki,
ohne Hilfsspalte ist das wohl nur per VBA möglich. Da kenn ich mich aber nicht aus.
Mit Hilfsspalte:
=REST(A1;1) und soweit benötigt nach unten kopieren, anschliessend nach dieser Spalte sortieren.
CU Aliba
ohne Hilfsspalte ist das wohl nur per VBA möglich. Da kenn ich mich aber nicht aus.
Mit Hilfsspalte:
=REST(A1;1) und soweit benötigt nach unten kopieren, anschliessend nach dieser Spalte sortieren.
CU Aliba
Antwort 2 von nighty
hi all :)
wie gewünscht :))
gruss nighty
Option Explicit
Sub TeilSortierung()
Dim zaehler1 As Long
Dim zaehler2 As Long
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) _
& " " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1
Rem der zu sortierende bereich waere anzupassen ("A1:B65535")
Range("A1:B65535").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) & _
" " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1
End Sub
wie gewünscht :))
gruss nighty
Option Explicit
Sub TeilSortierung()
Dim zaehler1 As Long
Dim zaehler2 As Long
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) _
& " " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1
Rem der zu sortierende bereich waere anzupassen ("A1:B65535")
Range("A1:B65535").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) & _
" " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1
End Sub
Antwort 3 von suki
hallo,
danke für die Hilfe!
Als Excel-Anfängerin kann ich mit dieser
langen Formel nicht viel anfangen.
Was soll man damit machen, nighty?
Irgendwo reinkopieren???
gruss
danke für die Hilfe!
Als Excel-Anfängerin kann ich mit dieser
langen Formel nicht viel anfangen.
Was soll man damit machen, nighty?
Irgendwo reinkopieren???
gruss
Antwort 4 von nighty
hi suki :)
mein vorschlag waere der einer schalflaeche wenn es dir gefallen sollte :)
gruss nighty
obere menueleiste freie stelle suchen/rechtsclick/steuerelement-toolbox/entwurfsmodus ein /befehlsschaltflaeche anwaehlen/positionieren/rechtsclick/code anzeigen/code dort mittig einfuegen
nun haettest du noch die moeglichkeit mit rechtsclick auf die schaltflaeche eigenschaften/NAME anzuwaehlen und zu aendern,
bei der steuerelent-toolbox entwurfsmodus beenden anwaehlen ,fertig
mein vorschlag waere der einer schalflaeche wenn es dir gefallen sollte :)
gruss nighty
obere menueleiste freie stelle suchen/rechtsclick/steuerelement-toolbox/entwurfsmodus ein /befehlsschaltflaeche anwaehlen/positionieren/rechtsclick/code anzeigen/code dort mittig einfuegen
nun haettest du noch die moeglichkeit mit rechtsclick auf die schaltflaeche eigenschaften/NAME anzuwaehlen und zu aendern,
bei der steuerelent-toolbox entwurfsmodus beenden anwaehlen ,fertig
Antwort 5 von nighty
hi suki :)
das waere der code fuer die schaltflaeche
gruss nighty
Dim zaehler1 As Long
Dim zaehler2 As Long
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) _
& " " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1
Rem der zu sortierende bereich waere anzupassen ("A1:B65535")
Range("A1:B65535").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) & _
" " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1
das waere der code fuer die schaltflaeche
gruss nighty
Dim zaehler1 As Long
Dim zaehler2 As Long
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) _
& " " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1
Rem der zu sortierende bereich waere anzupassen ("A1:B65535")
Range("A1:B65535").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) & _
" " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
End If
Next zaehler2
Next zaehler1
Antwort 6 von nighty
hi all :)
hier noch ein wenig optimiert :)
gruss nighty
Dim zaehler1 As Long
Dim zaehler2 As Integer
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) _
& " " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
Exit For
End If
Next zaehler2
Next zaehler1
Range("A1:B" & Rows.Count).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) & _
" " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
Exit For
End If
Next zaehler2
Next zaehler1
hier noch ein wenig optimiert :)
gruss nighty
Dim zaehler1 As Long
Dim zaehler2 As Integer
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) _
& " " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
Exit For
End If
Next zaehler2
Next zaehler1
Range("A1:B" & Rows.Count).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
For zaehler1 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For zaehler2 = 1 To Len(Cells(zaehler1, 1).Value)
If Mid(Cells(zaehler1, 1).Value, zaehler2, 1) = " " Then
Cells(zaehler1, 1).Value = Mid(Cells(zaehler1, 1), zaehler2 + 1, Len(Cells(zaehler1, 1).Value)) & _
" " & Mid(Cells(zaehler1, 1), 1, zaehler2 - 1)
zaehler2 = Len(Cells(zaehler1, 1).Value)
Exit For
End If
Next zaehler2
Next zaehler1