Seite 1 von 1
[gelöst] Datumsangabe umwandeln
Verfasst: So, 11.05.2014 08:50
von clag
Hallo zusammen,
in einer Tabelle für Geräte habe ich verschiedene Variationen von Angaben über das Produktionsdatum
diese möchte ich in einer Hilfsspalte in ein echtes Datum umwandeln damit es als Sortierkriterium taugt
eine Variante ist
"13245" entspricht "Fr 2013-06-14"
"13432" entspricht "Di 2013-10-22"
13=Jahreszahl
43=KW
5 Tag der KW
der Text "13432" müsste zu Datum "Di 2013-10-22" bzw "41569" werden
mit diesem "Format" habe ich ein Problem,
dafür eine sinnige Formel zu kreieren die ein Datumswert ausgibt.
Wäre für Denkanstöße oder auch Lösungen sehr dankbar.
edit:
Datumsangabe KW korrigiert von "13442" auf "13432"
Re: Datumsangabe umwandeln
Verfasst: So, 11.05.2014 09:42
von Karolus
Hallo
Seltsame Datumsfomate! - wie werden in dem "Format" einstellige Wochenangaben umgesetzt mit einer Stelle oder mit führender Null?
Karolus
Re: Datumsangabe umwandeln
Verfasst: So, 11.05.2014 09:50
von clag
Hallo Karolus,
ja mit einer führenden 0
zB 12043
und schonmal Danke das du "nen Auge drauf wirfst"
Re: Datumsangabe umwandeln
Verfasst: So, 11.05.2014 10:20
von Karolus
Hallo
2013-10-22 liegt in der Kalenderwoche 43 !
Karolus
Re: Datumsangabe umwandeln
Verfasst: So, 11.05.2014 10:39
von clag
Hallo Karolus
ja das ist korrekt
Ich habe mich verschrieben es muss "13432" heißen
"13432" entspricht "Di 2013-10-22"
Re: Datumsangabe umwandeln
Verfasst: So, 11.05.2014 11:49
von balu
Mahlzeit clag,
Wäre für Denkanstöße oder auch Lösungen sehr dankbar.
Wie wärs denn mit erstmal die SuFu zu benutzen?
Suchbegriffe:
kalenderwoche wochentag
Gefundener Thread:
Aus Kalenderwoche + Jahr -> Wochentag errechnen.
Anschließend die Lösung von Karolus an deine Bedürfnisse anpassen, und freuen

.
Gruß
balu
Re: Datumsangabe umwandeln
Verfasst: So, 11.05.2014 12:43
von clag
Hallo Balu,
balu hat geschrieben:Wie wärs denn mit erstmal die SuFu zu benutzen?
das war ein guter Tip
das was Karolus da vor langer Zeit ausgetüfftelt hat ist ziemlich genau das wonach ich gesucht habe.
also euch beiden ein
fettes Danke
und einen schönen Restsonntag
Re: Datumsangabe umwandeln
Verfasst: So, 11.05.2014 13:46
von Karolus
Hallo
@Balu: Lang ists her -
Code: Alles auswählen
=DATUM(2000+LINKS(A1;2);1;1-WOCHENTAG(DATUM(2000+LINKS(A1;2);1;1);2)+TEIL(A1;3;2)*7+RECHTS(A1;1)-7*(WOCHENTAG(DATUM(2000+LINKS(A1;2);1;1);2)<5))
Ich hatte mich jetzt erstmal daran versucht das in Python umzusetzen, dabei kam das heraus:
Code: Alles auswählen
In [1]: from datetime import date, datetime, timedelta
In [2]: date.isoformat(datetime.strptime( '13432', '%y%W%w')-timedelta(weeks=1) )
Out[2]: '2013-10-22'
Karolus
Re: Datumsangabe umwandeln
Verfasst: So, 11.05.2014 15:48
von clag
Hallo Karolus,
habe jetzt deine Formel soweit angepasst das sie direkt den Text "
13432" in A3 in den Datumswert "
41569" (22.10.2013) wandelt
=DATUM(JAHR(DATUM(LINKS(A3;2);1;1));1;1)-WOCHENTAG(DATUM(JAHR(DATUM(LINKS(A3;2);1;1));1;1);2)+7*(TEIL(A3;3;2)-(WOCHENTAG(DATUM(JAHR(DATUM(LINKS(A3;2);1;1));1;1);2)<5))+RECHTS(A3;1)
sieht etwas wirr aus wegen der doppelten Anwendung von DATUM() aber es tut genau was es soll.
der Python Code wäre dann als Funktion anwendbar?
Re: [gelöst] Datumsangabe umwandeln
Verfasst: So, 11.05.2014 16:20
von Karolus
Hallo
der Python Code wäre dann als Funktion anwendbar?
Nein, das ist nur ein schneller Entwurf per c&p aus einer Ipython-shell und noch ohne Korrektur falls Neujahr des Jahres auf Freitag bis Sonntag fällt.
Etwas ausgebaut mit mehreren Teststrings:
Code: Alles auswählen
from datetime import date, datetime, timedelta
dstrings = ['10245', '13245', '13432']
for dst in dstrings:
weeknum = int(dst[2:4])
d = datetime.strptime( dst , '%y%W%w')
correction = (not d.isocalendar()[1] == weeknum)
d = d-timedelta(weeks=correction)
print(date.isoformat(d), correction)
das ergibt die Ausgabe:
Karolus
Karolus
Re: [gelöst] Datumsangabe umwandeln
Verfasst: So, 25.05.2014 09:09
von Höttl Wilfried
Hallo!
Habe erst heute die Formel gefunden die auch OK ist.
Die Jahreszahl ist 2 stellig zB 14. ich will aber die Jahreszahl 4 stellig zB 2014 eingeben.
Wollte die Formel ändern leider ohne Erfolg.
Kann mir wer die Formel ändern auf 4 Stellen "2014"
Danke
Gruß
Wilfried
Re: [gelöst] Datumsangabe umwandeln
Verfasst: So, 25.05.2014 09:36
von Karolus
Hallo
@Wilfried Höttl
Was gibst du ein?
was möchtest du als Ergebnis ?
Re: [gelöst] Datumsangabe umwandeln
Verfasst: So, 25.05.2014 09:49
von Höttl Wilfried
Hallo Korolus!
Möchte es so eingeben: 2014432
Danke
Gruß
Wilfried
Re: [gelöst] Datumsangabe umwandeln
Verfasst: So, 25.05.2014 10:00
von Karolus
Hallo
Code: Alles auswählen
=DATUM(LINKS(A1;4);1;1-WOCHENTAG(DATUM(LINKS(A1;4);1;1);2)+TEIL(A1;5;2)*7+RECHTS(A1;1)-7*(WOCHENTAG(DATUM(LINKS(A1;4);1;1);2)<5))
Karolus
Re: [gelöst] Datumsangabe umwandeln
Verfasst: So, 25.05.2014 14:37
von Höttl Wilfried
Hallo!
Danke für die Formeländerung.
Gruß
Wilfried