Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zahlenkette in Öffnungszeiten umwandeln

Zahlenkette in Öffnungszeiten umwandeln
Michael
Hallo
Es betrifft Öffnungszeiten
Die Werte aus dem Feld „Soll“ werden mir aus der Datenbank geliefert und sollten in ein brauchbaren Format umgewandelt werden.
Hier gibt es jedoch 4 Unterschiede (siehe Tabelle unten). Überflüssige 0000 sollten entfernt werden.
Soll Ist
05202245000000000000000000000000 05:20 - 22:45
07001200123017000000000000000000 07:00 - 12:00 12:30 - 17:00
05301040120512501350190000000000 05:30 - 10:40 12:05 - 12:50 13:50 - 19:00
04300915103011501205135014052015 04:30 - 09:15 10:30 - 11:50 12:05 - 13:50 14:05 - 20:15
Ich probere das schon seit Tagen und komme auf keinen Grünen Zweig
Ich bin für jede Formel bzw. Vba dankbar
LG
Michael
doppelt, zu. owT
12.01.2011 09:25:39
Klaus
.
AW: Zahlenkette in Öffnungszeiten umwandeln
12.01.2011 09:27:59
Rudi
Hallo,
deine Daten ab A2
B2: =WENN(TEIL($A2;(SPALTE(A1)-1)*8+1;8)="00000000";"";TEXT(--TEIL($A2;(SPALTE(A1)-1)*8+1;8);"00"":""00"" - ""00"":""00")) und nach rechts und unten kopieren.
Gruß
Rudi
AW: Zahlenkette in Öffnungszeiten umwandeln
12.01.2011 09:52:06
Michael
Hallo Rudi
Das funktioniert irgendwie nicht (Was mache ich falsch)
A2 5202245000000000000000000000000 B2 00:00 - 00:05
A3 7001200123017000000000000000000 B3 00:00 - 00:07
A4 5301040120512500000000000000000 B4 00:00 - 00:05
A5 4300915103011500000000000000000 B5 00:00 - 00:04
AW: Zahlenkette in Öffnungszeiten umwandeln
12.01.2011 09:55:12
Ingo
Probier mal diese funktion:
Function öffnungszeiten(str As String) As String
Dim str_open As String
Dim int_l As Integer
Dim bln_bindestrich
If Left(str, 2)  "00" Then str_open = Left(str, 2) & ":" & Mid(str, 3, 2)
bln_bindestrich = True
For int_l = 5 To Len(str) Step 4
If Mid(str, int_l, 2)  "00" Then
Select Case bln_bindestrich
Case True
str_open = str_open & "-" & Mid(str, int_l, 2) & ":" & Mid(str, int_l + 2,   _
_
2)
bln_bindestrich = Not bln_bindestrich
Case False
str_open = str_open & " " & Mid(str, int_l, 2) & ":" & Mid(str, int_l +   _
_
2, 2)
bln_bindestrich = Not bln_bindestrich
End Select
End If
Next int_l
End Function

mfG
Ingo Christiansen
Anzeige
Leerzeichen davor? owT
12.01.2011 10:08:45
Rudi
AW: Zahlenkette in Öffnungszeiten umwandeln
12.01.2011 10:09:44
Reinhard
Hallo Michael,
die Formel ist in Ordnung. Hier als Vba-Variante:
Sub Trenn()
Dim Zei As Long, Spa As Long, Pos As Integer
Range("B:E").ClearContents
For Zei = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Spa = 2
For Pos = 1 To 25 Step 8
If Mid(Cells(Zei, 1), Pos, 8) = "00000000" Then Exit For
Cells(Zei, Spa) = Format(Mid(Cells(Zei, 1), Pos, 8), "00:00 - 00:00")
Spa = Spa + 1
Next Pos
Next Zei
Range("B:E").EntireColumn.AutoFit
End Sub

Gruß
Reinhard
AW: Zahlenkette in Öffnungszeiten umwandeln
12.01.2011 09:53:25
Reinhard
Hallo Michael,
Option Explicit
Sub Trenn()
Dim Zei As Long, Spa As Long, Pos As Integer
Range("B:AF").ClearContents
Range("B:AF").NumberFormat = "00"
For Zei = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Spa = 2
For Pos = 1 To 29 Step 4
If Mid(Cells(Zei, 1), Pos, 4) = "0000" Then Exit For
Cells(Zei, Spa) = Format(Mid(Cells(Zei, 1), Pos, 2), "00")
Cells(Zei, Spa + 1) = "-"
Cells(Zei, Spa + 2) = Format(Mid(Cells(Zei, 1), Pos + 2, 2), "00")
Spa = Spa + 4
Next Pos
Next Zei
Range("B:AF").EntireColumn.AutoFit
End Sub

Gruß
Reinhard
Anzeige
AW: Zahlenkette in Öffnungszeiten umwandeln
12.01.2011 10:44:21
Michael
Danke Rudi Ingo und Reinhard für eure Hilfe
Ich bin begeistert. Nur funktioniert es noch nicht richtig
So sieht die Ausgabe es bei mir aus
5202245000000000000000000000000 05-20 22-45 E+-30 - - - - -
7001200123017000000000000000000 07-00 12-00 12-30 17-E+ 30- - - -
5301040120512500000000000000000 05-30 10-40 12-05 12-5E 03-00 - - -
4300915103011500000000000000000 04-30 09-15 10-30 11-5E 03-00 - - -
und so sollte die Uhrzeit aber erscheinen (egal ob mit Schönheitsfehler - - - )
05202245000000000000000000000000 05:20 - 22:45
07001200123017000000000000000000 07:00 - 12:00 12:30 - 17:00 (ab da scheitert es)
05301040120512501350190000000000 05:30 - 10:40 12:05 - 12:50 13:50 - 19:00
04300915103011501205135014052015 04:30 - 09:15 10:30 - 11:50 12:05 - 13:50 14:05 - 20:15
Wenns zu kompliziert wird, dann sage ich trotzdem danke
LG
Michael
Anzeige
AW: Zahlenkette in Öffnungszeiten umwandeln
12.01.2011 10:47:38
Rudi
Hallo,
lade doch mal ein paar Original-Daten hoch.
Gruß
Rudi
AW: Zahlenkette in Öffnungszeiten umwandeln
12.01.2011 11:07:51
Klaus
Hallo Michael,
Rudis erste Formel funktioniert. Entferne die Überflüssigen Leerzeichen aus der Ursprungszahl (mit GLÄTTEN zB.) und formatiere die Zelle als Text oder mit führendem Hochkomma, um zu verhindern dass die erste Null verschluckt wird.
statt "07001200123017000000000000000000        "
lieber "'07001200123017000000000000000000"
Grüße,
Klaus M.vdT.
Anzeige
AW: Zahlenkette in Öffnungszeiten umwandeln
12.01.2011 12:19:48
Michael
Danke Klaus
ich bin froh dass ihr euch Gedanken und euch für die Lösung Mühe macht. Mein Problem ist. Die Zahlen bekomme ich von einer Access Datenbank und die Werte werden so in Excel exportiert. Wenn ich ein Hochkomma vorsetzen muss, wird das zu aufwendig.
LG
Michi
AW: Zahlenkette in Öffnungszeiten umwandeln
12.01.2011 14:16:10
Klaus
Hi Michi,
nicht dass man das Hochkomma auch per Formel davor setzen könnte .... aber macht ja nix, wenn Rudi's Lösung nun bei dir läuft.
Grüße,
Klaus M.vdT.
AW: Zahlenkette in Öffnungszeiten umwandeln
12.01.2011 12:58:48
Rudi
Hallo,
meine Formel funktioniert mit deinen Daten.
Gruß
Rudi
Danke
12.01.2011 13:10:36
Michael
Hallo Rudi und der ganze Rest
Wenn Du nicht geschrieben hättest "meine Formel funktioniert mit deinen Daten" würde ich noch immer tüfteln. Ich habe es gerade probiert und es funktioniert. Ich habe zwar keine Ahnung was ich die ganze Zeit falsch gemacht habe ABER ES FUNKTIONIERT DANKE DANKE DANKE
Lg
Michael
Anzeige

395 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige