Clever-Excel-Forum

Normale Version: Zelle in Datum umwandeln
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Grüezi zusammen (jaja, ein Schweizer im Forum  Blush )

Ich habe ein kleines Problem, welche ich ohne VBA lösen will. Es geht darum das ich in einer Zelle das Datum berechnen will wobei sich dieses Unterschiedlich zusammensetzten kann.

Also in der Zelle F1 habe ich die Jahreszahl. Dies soll immer genommen werden.

Nun kann man in der Spalte A7 bis A15 ein Datum eingeben. Aus diesen Eingaben will ich ein korrektes Datum (in B7 bis B15) berechnen. Dabei muss aber einiges berücksichtigt werden.
Ich habe mir das in etwa so vorgestellt, dass ich Hilfsspalten erstelle (Spalten C, D und E) mit jeweils dem Tag, Monat und Jahr und dort dann das ganze zusammensetzte.

F1 = 2023

A7 = 1.5. --> B7 = 01.05.2023 (Eingabe mit abschliessendem Punkt)  C7=01 / D7=05 / E7=2023
A8 = 01.05. --> B8 = 01.05.2023 (Eingabe mit abschliessendem Punkt) C7=01 / D7=05 / E7=2023
A9 = 1.5 --> B9 = 01.05.2023 (Eingabe ohne abschliessenden Punkt) C7=01 / D7=05 / E7=2023
A10 = 1.5.2022 -- B10 = 01.05.2023 (soll aber ev. ein Hinweis erscheinen, dass das Jahr falsch ist)  C7=01 / D7=05 / E7=2022 (2022, damit ich danach einen Hinweis auf das falsche Jahr ausgeben kann)
.......

Habt Ihr eine Idee wie ich die Spalte C, D und E mit einer korrekten Formel abfüllen kann?

Also nächstes wäre dann aber ev. auch noch das Problem, wenn das Datum mit Kommatrennung eingegeben wird statt mit Punkt... Das wäre natürlich noch ein Highlight, wenn dies auch gleich abgefangen werden könnte (man hat ja wünsche Angel )

Gruss
Harry
Moin Harry

Mit freundlichen Hinweisen für die Anwender.
Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEF
12023
2
3
4
5
6
71.5.Das ist kein Datum, du Dummkopf!
801.05.Das ist kein Datum, du Dummkopf!
901.05.2022Das ist das falsche Jahr, du Idiot!
1001.05.2022Das ist das falsche Jahr, du Idiot!

ZelleFormel
B7=WENNFEHLER(WENN(JAHR(A7)<>$F$1;"Das ist das falsche Jahr, du Idiot!";"");"Das ist kein Datum, du Dummkopf!")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg
Hallo shift-del
Hui, da hätten meine Kunden aber keine Freude, wenn ich die als Dummkopf betitelten würde 17 .

Aber als Lösungsansatz natürlich schon mal etwas... Gerne würde ich aber einfach die Zahlen aus der Spalte A auseinandernehmen... Sieht sicher freundlicher aus 19
Gruss

Harry
(20.02.2022, 19:25)Hasi63 schrieb: [ -> ]Hui, da hätten meine Kunden aber keine Freude, wenn ich die als Dummkopf betitelten würde 17 .
Anscheinend haben sie es nötig wenn du entsprechende Maßnahmen planst.

(20.02.2022, 19:25)Hasi63 schrieb: [ -> ]Gerne würde ich aber einfach die Zahlen aus der Spalte A auseinandernehmen... Sieht sicher freundlicher aus 19
Erstens nicht notwendig und zweitens nix freundlich.
Moin!
Und wenn man dann noch bedenkt, dass bei den Schweizern das Dezimaltrennzeichen identisch mit dem Datumstrenner ist …
… macht es die Sache ja nicht einfacher.
Schließlich ist
"1.2" in Deutschland (nach Umwandlung) der 01.02.2022
in der Schweiz aber entweder 1.2 oder (wahrscheinlich) s.o.
Hi,

da sollte eigentlich das reichen:



Code:
=WENN(RECHTS(A6;1)=".";(A6&WENN(LÄNGE(A6)-LÄNGE(WECHSELN(A6;".";""))=1;".";"")&$F$1)*1;DATUM($F$1;MONAT(A6);TAG(A6)))
Hallo Harry,

oder du machst das andersrum:
Du läßt deine Kunden in Spalte A nicht das (halb-) fertige Datum eingeben (das du dann recht aufwendig prüfen und in ein richtiges Datum umrechnen musst), sondern jeweils getrennt in zwei Spalten den Monat (Spalte A) und den Tag (Spalte B).
Und aus diesen beiden Angaben (und dem Jahr in F1) läßt sich dann mit der Funktion DATUM(Jahr;Monat;Tag) das Datum berechnen.

Über die Datengültigkeit (im Menüpunkt Daten) kannst du regeln, dass in Spalte A und Spalte B nur korrekte Werte eingegeben werden können.

Werte zulassen für Spalte A:
nur ganze Zahlen zwischen 1 und 12

Werte zulassen für Spalte B:
Da wird es ein bisschen komplexer, weil das ja abhängig vom Monat und vom Jahr ist (deshalb muss auch zuerst der Monat eingegeben werden)
Benutzerdefiniert -> Formel:
=UND(A7>0;B7=GANZZAHL(B7);A7=MONAT(DATUM($F$1;A7;B7)))
Den Haken bei der Option "leere Zellen ignorieren" entfernen.

Allerdings ist die Überwachung der Eingabe mittels Datengültigkeit nicht idtiotensicher:
Wenn man die Werte nicht manuell direkt in die Zellen einträgt, sondern von woanders reinkopiert, ist die Datengültigkeit in dieser Zelle futsch, das heißt durch das Kopieren können beliebige Werte eingetragen werden.

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEF
1Jahr2022
2
3
4
5Dateneingabe
6MonatTagDatum
713131.01.2022
822828.02.2022
9
10

ZelleFormel
C7=WENN(UND(A7>0;B7>0);DATUM($F$1;A7;B7);"")

ZelleGültigkeitstypOperatorWert1Wert2
A7Ganzzahlzwischen112
B7Benutzerdefiniert=UND(A7>0;B7=GANZZAHL(B7);A7=MONAT(DATUM($F$1;A7;B7)))
Verwendete Systemkomponenten: [Windows (64-bit) NT 10.00] / MS Excel 2021
Diese Tabelle wurde mit Tab2Html (v2.7.1) erstellt. ©Gerd alias Bamberg

siehe Beispieldatei

Gruß
Fred