Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1376to1380
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kalenderdaten umwandeln

Kalenderdaten umwandeln
01.09.2014 13:19:36
Christian
Hallo an alle,
weiß einer eine Formel, die alles abdeckt?
Einzelheiten in meiner Mappe.
Gruß und Danke
Christian
PS: Würde auch eine Makrolösung nehmen, wenn das einfacher sein sollte als mit einer Formel.
https://www.herber.de/bbs/user/92422.xlsx

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kalenderdaten umwandeln
01.09.2014 16:24:24
ransi
Hallo
Sind das alle VArianten oder kommt da noch mehr ?
ransi

AW: Kalenderdaten umwandeln
01.09.2014 16:28:56
czender
Hallo Ransi,
nein, das sind alle.
Gruß
Christian

AW: Kalenderdaten umwandeln
01.09.2014 17:53:52
fcs
Hallo Christian,
ich hatte erst versucht per Formel dass Ganze aufzulösen, aber um es einigermaßen übersichtlich zu halten braucht es wohl 2 bis 3 Hilfsspalten. Insbesondere der Fall in Zelle A5 (in der Zelle steht eine echtes Datum, das als MMM JJ formatiert ist) bereitet Probleme.
Ich bin dann zu einer VBA-Funktion übergegangen.
Die ist zwar auch nicht einfacher, aber man kann die Sonderfälle "einfacher" abarbeiten"
Gruß
Franz
Function fncDatumUmwandlung(rngDatum As Range) As Variant
Dim intJahr As Integer, intMonat As Integer, intTag As Integer
Dim strTag As String, strMonat As String, strJahr As String, strText As String
Dim iPos As Integer
strText = Trim(rngDatum.Text)
fncDatumUmwandlung = "#Datumsfehler!"
Select Case strText
Case "?", ""
'Texte die nicht konvertiert werden sollen
fncDatumUmwandlung = ""
Case Else
If Len(strText) = 4 And IsNumeric(strText) Then
'nur Jahreszahl steht in Zelle
intJahr = Val(strText)
intMonat = 12
intTag = 31
fncDatumUmwandlung = DateSerial(intJahr, intMonat, intTag)
Else
'Prüfen, ob ein Datum mit nummerischen Angaben in der Zelle steht/angezeigt wird
If strText Like "#.#.##" Or strText Like "##.#.##" Or _
strText Like "#.##.##" Or strText Like "##.##.##" Or _
strText Like "#.#.####" Or strText Like "##.#.####" Or _
strText Like "#.##.####" Or strText Like "##.##.####" Then
If IsDate(strText) Then
fncDatumUmwandlung = CDate(strText)
End If
Else
'Datumstext Zeichenweise verarbeiten
'Nummerische Zeichen am Anfang als Tag interpretieren
For iPos = 1 To Len(strText)
Select Case Asc(Mid(strText, iPos, 1))
Case Asc(0) To Asc(9)
strTag = strTag & Mid(strText, iPos, 1)
Case Else
If strTag = "" Then strTag = "31"
Exit For
End Select
Next
intTag = Val(strTag)
'nach Tag folgenden Text als Monat, Ziffern als Jahr interpretieren
For iPos = iPos To Len(strText)
Select Case Asc(Mid(strText, iPos, 1))
Case Asc(" "), Asc(".") 'Trennzeichen im Datumstext
Case Asc(0) To Asc(9)
strJahr = strJahr & Mid(strText, iPos, 1)
Case Else
strMonat = strMonat & Mid(strText, iPos, 1)
End Select
Next
If Len(strJahr) = 2 Then
strJahr = "20" & strJahr
End If
intJahr = Val(strJahr)
Select Case strMonat
Case "Jan", "Januar", "January", Format(DateSerial(Year(Date), 1, 1), "MMM"), _
Format(DateSerial(Year(Date), 1, 1), "MMMM")
intMonat = 1
Case "Feb", "Februarar", "February", Format(DateSerial(Year(Date), 1, 1), "MMM"), _
Format(DateSerial(Year(Date), 1, 1), "MMMM")
intMonat = 2
Case "Mrz", "März", "Mar", "March", Format(DateSerial(Year(Date), 1, 1), "MMM"), _
Format(DateSerial(Year(Date), 1, 1), "MMMM")
intMonat = 3
Case "Apr", "April", Format(DateSerial(Year(Date), 1, 1), "MMM"), _
Format(DateSerial(Year(Date), 1, 1), "MMMM")
intMonat = 4
Case "Mai", "May", Format(DateSerial(Year(Date), 1, 1), "MMM"), _
Format(DateSerial(Year(Date), 1, 1), "MMMM")
intMonat = 5
Case "Jun", "Juni", "June", Format(DateSerial(Year(Date), 1, 1), "MMM"), _
Format(DateSerial(Year(Date), 1, 1), "MMMM")
intMonat = 6
Case "Jul", "Juli", "July", Format(DateSerial(Year(Date), 1, 1), "MMM"), _
Format(DateSerial(Year(Date), 1, 1), "MMMM")
intMonat = 7
Case "Aug", "August", Format(DateSerial(Year(Date), 1, 1), "MMM"), _
Format(DateSerial(Year(Date), 1, 1), "MMMM")
intMonat = 8
Case "Sep", "September", Format(DateSerial(Year(Date), 1, 1), "MMM"), _
Format(DateSerial(Year(Date), 1, 1), "MMMM")
intMonat = 9
Case "Okt", "Oktober", Format(DateSerial(Year(Date), 1, 1), "MMM"), _
Format(DateSerial(Year(Date), 1, 1), "MMMM"), "Oct", "October"
intMonat = 10
Case "Nov", "November", Format(DateSerial(Year(Date), 1, 1), "MMM"), _
Format(DateSerial(Year(Date), 1, 1), "MMMM")
intMonat = 11
Case "Dez", "Dezember", Format(DateSerial(Year(Date), 1, 1), "MMM"), _
Format(DateSerial(Year(Date), 1, 1), "MMMM"), "Dec", "December"
intMonat = 12
Case Else
Exit Function
End Select
'Ergebnis auf gültiges Datum prüfen
If IsDate(Format(intJahr, "0000") & "-" & Format(intMonat, "00") & "-" _
& Format(intTag, "00")) Then
fncDatumUmwandlung = DateSerial(intJahr, intMonat, intTag)
End If
End If
End If
End Select
End Function

Anzeige
AW: Kalenderdaten umwandeln
01.09.2014 18:12:16
czender
Hallo Franz,
erstmal vielen Dank für die viele Mühe, die du dir gemacht hast. Ich stehe nur leider auf dem Schlauch was ich damit machen soll.
Hab es jetzt unter "Diese Arbeitsmappe" eingefügt, aber wenn ich dann in die entsprechende Zelle =fnc usw. eingebe, tut sich nichts. Was mache ich da falsch?
Das sieht ja aus, als wäre es eine selbstprogrammierte Funktion, die ich in der Zelle ausführe, in der das Ergebnis stehen soll.
Ich fürchte du musst mir genau erklären was ich tun muss, damit ich wenn ich die Funktion in Tabelle2!D1 schreibe sie das was in Tabelle2!C1 steht umwandelt und sie auch bis Tabelle2!C2345 kopieren kann.
Gruß
Christian

Anzeige
AW: Kalenderdaten umwandeln
02.09.2014 08:46:44
UweD
Hallo
- Das Makro in ein Standard- Modul setzen...
- In der Tabelle dann die Formel so wie angegeben..
- Runtercopieren
Tabelle1
 ABCD
1    Ist-ZustandFormelausgabe
2    ? 
3    24. Aug 1424.08.2014
4    24 July 201424.07.2014
5    Aug 1431.08.2014
6    July 201431.07.2014
7    201431.12.2014

verwendete Formeln
Zelle Formel Bereich
D2 =fncDatumUmwandlung(C2) 

Tabellendarstellung in Foren Version 5.49


Gruß UweD

Anzeige
AW: Kalenderdaten umwandeln
02.09.2014 09:00:23
czender
Hallo Uwe,
danke erstmal.
Habe leider aufgrund dieses Problems hier
https://www.herber.de/forum/messages/1379428.html
im Moment keine Daten in der Tabelle, mit denen ich es testen kann. Muss also leider mit deiner Lösung abwarten, bis ich eine Lösung für das andere Problem hab.
Gruß
Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige