Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zeit aus String extrahieren
#11
Das Fehlen der Std. fehlte mir in der Datei als Beispiel (im Forumstext war es, stimmt). Ok.

In B1: benenne Rechne beziehtSichAuf =AUSWERTEN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(time!$A1;"d";"/1+");"h";"/24+");"m";"/1440+");"s";"/86400"))

B1: =Rechne

So können d h m s alle fehlen oder in beliebiger Anordnung stehen.
Antworten Top
#12
(27.11.2023, 16:52)LCohen schrieb: Das Fehlen der Std. fehlte mir in der Datei als Beispiel (im Forumstext war es, stimmt). Ok.
Zeile 7 ;) Dadurch habe ich es ja erst bemerkt
Gruß
Michael
Antworten Top
#13
Als UDF & 'named range'


Angehängte Dateien
.xlsb   __evaluate_time_snb.xlsb (Größe: 16,29 KB / Downloads: 1)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#14
Hallo

Da der TE Beratung Resistenz ist, hier eine einfache PQ Lösung, kein VBA und keine Registerformel benötigt wird.


Angehängte Dateien
.xlsx   time.xlsx (Größe: 18,97 KB / Downloads: 4)
Viele Grüße
PIVPQ
Antworten Top
#15
Zitat:Beratung Resistenz
scheint mir eher:

Beratung resistent
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#16
Oder

Code:
Sub M_snb()
  With CreateObject("ADODB.recordset")
      .Open "SELECT '=' & replace(replace(replace(replace(replace(tijd,""d"",""""),""h"",""/24""),""m"",""/1440""),""s"",""/86400""),"" "",""+"") FROM `time$`", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0"""
      Cells(20, 2).CopyFromRecordset .DataSource
  End With
  Cells(20, 2).CurrentRegion = Cells(20, 2).CurrentRegion.Value
End Sub

Und was PQ bei @PIVPQ macht ist nur dieses mit einer anderen Sprache:
Code:
Sub M_snb()
   With CreateObject("ADODB.recordset")
       .Open "SELECT  left(tijd,instr(tijd,""d"")), right(left(tijd,instr(tijd,""h"")),3) ,right(left(tijd,instr(tijd,""m"")),3), right(left(tijd,instr(tijd,""s"")),3) FROM `time$`", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0"""
       sheets("time").Cells(4, 2).CopyFromRecordset .DataSource
   End With
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#17
Hallo,

Tage:
=WECHSELN(TEIL($A1;WENNFEHLER(MAX(1;SUCHEN("d";$A1)-2);LÄNGE($A1)+1);2);"d";"")
Stunden:
=WECHSELN(TEIL($A1;WENNFEHLER(MAX(1;SUCHEN("h";$A1)-2);LÄNGE($A1)+1);2);"h";"")
Minuten:
=WECHSELN(TEIL($A1;WENNFEHLER(MAX(1;SUCHEN("m";$A1)-2);LÄNGE($A1)+1);2);"m";"")
Sekunden:
=WECHSELN(TEIL($A1;WENNFEHLER(MAX(1;SUCHEN("s";$A1)-2);LÄNGE($A1)+1);2);"s";"")

Gruß, Uwe
Antworten Top
#18
Variante zu #4 mit einstelligen Tageszahlen:
Code:
=WENNFEHLER(--LINKS($A1;FINDEN("d";$A1)-1);"")

für Stunden, Minuten und Sekunden:
Code:
=WENNFEHLER(--TEIL($A1;FINDEN("h";$A1)-2;2);"")
("h" durch "m" bzw. "s" ersetzen)
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top
#19
Hallo,

eine Alternative: Der Code berechnet die Zeit ([h]:mm:ss)

Code:
Sub T_1()
Dim Ar, Zt As Date

For i = 1 To 7
    Ar = Split(Cells(i, 1))
    For a = 0 To UBound(Ar)
        Select Case Right(Ar(a), 1)
            Case Is = "d": Zt = Val(Ar(a))
            Case Is = "h": Zt = Zt + Val(Ar(a)) / 24
            Case Is = "m": Zt = Zt + Val(Ar(a)) / 1440
            Case Is = "s": Zt = Zt + Val(Ar(a)) / 86400
            Case Else: Stop
        End Select
    Next a
    Cells(i, 2) = Zt
    Zt = 0
Next i
End Sub

16h 12m 53s 16:12:53
16h 27m 35s 16:27:35
02h 46m 26s 2:46:26
16h 27m 35s 16:27:35
1d 13h 31m 07s 37:31:07
16m 25s 0:16:25
01h 00m 11s 1:00:11

mfg
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste