Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Lokales Datumformat mit Text Funktion

Lokales Datumformat mit Text Funktion
26.12.2019 00:15:58
Kailash
Hallo Excel Freunde!
Ich möchte dass ein Datum, das mit der Text Funktion angezeigt wird, auch auf Computern mit anderen Sprachen angezeigt wird.
Zelle Y23= 25.12.2019
=TEXT($Y$23;"TT.MMM.JJJJ") ergibt 25.Dez.2019 (auf deutschen Computern)
=TEXT($Y$23;"TT.MMM.e") ergibt 25.Dez.2019 (auf allen Computern)
was schreibe ich anstelle von "TT" damit es z.B. auch auf einem englischen Computer richtig angezeigt wird (gerne in lokaler Sprache)?
Als Notlösung, habe ich gedacht dass man die Buchstaben auch aus einem Formeltext extrahieren könnte, weil sich die Formel ja immer der Excelsprache und so anpasst.
Aber ich weiß keine Formel, mit der man das Format ausgeben könnte.
Hat jemand ne Idee?
Wenn das denn alles nicht geht, vielleicht kann man die Buchstaben irgendwie mit VBA herausbekommen.
Viele Grüsse!
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum ungarisch, japanisch, finnisch, ...
26.12.2019 01:15:45
Kailash
Hallo WF!
Danke! Groassartige Datei.
Aber ich möchte dass die Datei sich automatisch der Sprache anpasst. Ich will nicht dass der User den Ländercode auswählen muss.
Kann man den Ländercode des Users irgendwie automatisch in eine Zelle schreiben lassen?
Viele Grüsse
Anzeige
AW: Datum ungarisch, japanisch, finnisch, ...
26.12.2019 01:42:31
Kailash
Hallo noch mal!
Hab auch gar nicht verstanden wie das mit dem Ländercode funktioniert. Bzw. warum.
26.12.2019
=TEXT(H1;"[$-409] "&"TTTT MMM JJJJ")
Thursday Dec 2019
[$-409] steht für Englisch
Aber "TTTT MMM JJJJ" kann ja gar nicht mit Englisch funktionieren. Da heisst es ja "DDDD MMM YYY"
Ist es so dass der Ländercode dafür ist nur die Deutschen Zeichen ("TTTT MMM JJJJ") in andere Sprachen umzuwandeln?
Wenn ich also "DDDD MMM YYY" in die Text Funktion schreiben möchte, dann muss es ein anderer Länderkod sein? Oder wie?
Viele Grüsse
Anzeige
AW: Datum ungarisch, japanisch, finnisch, ...
26.12.2019 07:00:40
ChrisL
Hi
Ja. Solange du an der Text-Funktion festhältst, müsstet du für jede Ländereinstellung eine eigene Formel schreiben bzw. mindestens den Format-String dynamisch gestalten. Theoretisch lässt sich z.B. englische Sprache und trotzdem deutsches Format einstellen, es gäbe somit viele Varianten zu berücksichtigen.
Darum lässt man das Datum i.d.R. als Wert stehen und formatiert es als Datum. So erhält jeder User automatisch seine bevorzugte Ansicht anhand der Einstellungen. (Nummernformat anstelle Text-Funktion)
Es gibt nur wenige Situationen, wo eine Text-Konvertierung sinnvoll ist z.B. als Vorbereitung für einen Word-Serienbrief. Insofern wäre es interessant zu wissen, worin dein Verwendungszweck besteht.
cu
Chris
Anzeige
AW: Datum ungarisch, japanisch, finnisch, ...
26.12.2019 19:04:47
Kailash
Hallo noch mal!
Weil ich nicht weiss wie man den Ländercode [$-409] auslesen kann und weil ich Glück gehabt habe, verwende ich nun einen definierten Namen mit dieser Formel:
=Get.Cell(7,$A$1)
Mit dieser Formel wird das Datumsformat aus der Zelle A1 ausgelesen.
Nun verwende ich den Namen in der Text Funktion um das Datum so zu formatieren wie das Datum in A1
Text(Heute();calc_Get.Cell_Cellformat)
wobei calc_Get.Cell_Cellformat der Name ist, den ich im Namensmanager vergeben habe.
Mehr Infos für den Interessierten hier:
https://www.rondebruin.nl/win/s9/win013.htm
und hier noch eine Liste mit allen Nummern, die man in Get.Cell verwenden kann
https://www.mrexcel.com/board/threads/info-only-get-cell-arguments.20611/
Hoffe, dass mal jemanden behilflich ist.
Viele Grüsse!
Anzeige
AW: Datum ungarisch, japanisch, finnisch, ...
27.12.2019 11:05:15
Luschi
Hallo Kailash,
Du jubelst zu früh, denn M$ hat die Excel4Makros teilweise nicht in Vba umgesetzt und die benötigen die länderspezifische Anrede.
Die Namensmanager in Excel 2013/16/19 deutsch/Prof pro+ können mit 'Get.Cells(…)' nix, aber auch gar nichts anfangen, denn hier muß der dt. Ansprechweise gehuldigt werden: 'Zelle.Zuordnen(…)'.
Viel Spaß beim weiteren Tüffteln!
Gruß von Luschi
aus klein-Paris
Anzeige
Wollt ihr mal die Datei mit GET.CELL angucken?
27.12.2019 15:25:29
Kailash
Hallo Luschi!
Habe mal eine Testdatei hochgeladen.
https://www.herber.de/bbs/user/133987.xlsm
Selber habe ich das mit Excel 2016 in Englischer Version gemacht, Datumseinstellungen sind aber komischerweise auf Deutsch. TTTT.MMMM.JJJ
Vielleicht möchte ja jemand die Datei mal angucken und sagen ob die Formatierung sich in die jeweiligen Sprache angepasst hat. Vielleicht hat ja jemand eine ausländische Excel Version. Und auch gucken ob GET.CEll überhaupt funktioniert.
Weil mir niemand geschrieben hat wie man den Ländercode z.B.[$-409] auslesen kann, darf ich wohl annehmen, dass es nicht möglich ist, oder?
Günther hat was von PowerQuery geschrieben, das möchte ich aber nicht verwenden, weil ich mich damit noch nicht beschäftigt habe.
Eine Umwandlungstabelle hat er auch genannt. Aber ich weiss nicht richtig was man in die Tabelle reinschreiben soll, denn auch wenn man die Sprache auslesen kann, hat die ja scheinbar nicht viel mit dem Ländercode im Datum zu tun, weil meine Excel Sprache ist ja Englisch und es werden trotzdem Deutsche Kürzel angezeigt. (TT.MM.JJJJ)
Hier kann man ja so Sachen auslesen:
https://docs.microsoft.com/en-us/office/vba/api/excel.application.international
aber da ist nichts dabei was brauchbar ist, finde ich.
Sub Auslesen()
MsgBox Application.International(xlCountryCode)
End Sub
Ergibt ne 1 als Resultat. Das ist aber nicht das was ich brauche.
xlCountrySetting ergibt ne 49
Für die Datumseinstellung muss es aber ne 407 sein.
So ist das auf jeden Fall in dem internationalen Kalender von
http://www.excelformeln.de/formeln.html?welcher=422
Viele Grüsse!
Anzeige
bekomme Fehler
27.12.2019 15:45:40
ChrisL
Hi
Mein "ausländisches Excel" sagt:
#NAME?
Excel Version 2016
cu
Chris
AW: bekomme Fehler
27.12.2019 16:21:41
Kailash
Moin Chris!
Herzlichen Dank fürs Testen!
Dann war das nix. Nur ne Menge Zeit verschwendet. Dann stehe ich wieder da wo ich am Anfang war.
Viele Grüsse
Anfang = Sinnfrage
27.12.2019 18:27:00
ChrisL
Hi
Würde man den Sinn der ganzen Übung verstehen, dann würden u.U. noch andere sinnlose/-volle Umgehungslösungen vorgeschlagen z.B.
A1 (ausgeblendet) = gewünschtes Nummernformat
B1 (Ergebnis) = Format "Text"
Range("B1") = Range("A1").Text
cu
Chris
Anzeige
AW: Anfang = Sinnfrage
27.12.2019 21:40:33
Kailash
Hallo Chris!
Ja, mit VBA geht das.
Schliesslich bin ich auf die Lösung gekommen.
Hier zum Angucken und Ausprobieren. Sollte es nicht richtig angezeigt werden, kannst ja noch mal Bescheid sagen.
https://www.herber.de/bbs/user/133990.xlsm
Die Lösung für mich ist, die Zutaten für mein Datum mit VBA auszulesen, in eine Zelle schreiben zu lassen und die zellen dann in der Text Funktion zu verwenden.
=TEXT(B5;REPT(D;4)&"-"&REPT(M;4)&"-"&REPT(Y;4))
D,M,Y sind die Namen der Zellen
Mit Rept (englisch) vervielfacht man den Wert.
Man könnte aber auch so schreiben:
=TEXT(B5;D&D&D&D&"-"&M&M&M&M&"-"&Y&Y&Y&Y)
Danke an alle, die mich auf den Weg gebracht haben!
Viele Grüsse
Anzeige
AW: Lokales Datumformat mit Text Funktion
26.12.2019 10:42:37
Günther
Moin,
ich habe eben einmal Mr. Goo bemüht und festgestellt, dass du per VBA die Ländereinstellungen des Rechners auslesen kannst. Und dann im Rahmen Select Case eine Umwandlungstabelle anlegen und entsprechend auswerten.
Ähnlich würde es gewiss auch mit Power Query gehen, da kannst du den aktuellen Ländercode mit einer Funktion auslesen und als Ergebnis beispielsweise "de-DE" oder "en-US" erhalten. Im Endeffekt sollte auch hier eine Konvertierungsliste erstellt werden und diese dann für den PQ-Verweis eingesetzt werden.
Das einfachste und sinnvollste ist und bleibt aus meiner Sicht, das Datum als kalendarisches Datum in der Zelle stehen zu lassen und die Endanwender sollen sich das so formatieren, wie sie es gerne hätten. Denn: Wer mit Excel arbeitet sollte damit auch in Grundzügen umgehen können.
Gruß
Günther
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Lokales Datumformat mit der TEXT-Funktion in Excel


Schritt-für-Schritt-Anleitung

  1. Datum eingeben: Stelle sicher, dass das Datum in einer Zelle korrekt eingegeben ist, z.B. 25.12.2019 in Zelle Y23.

  2. TEXT-Funktion verwenden:

    =TEXT($Y$23;"TT.MMM.JJJJ")

    Diese Formel zeigt das Datum in der deutschen Notation an (25.Dez.2019).

  3. Format anpassen für englische Computersysteme: Um das Datum auch auf englischen Systemen korrekt anzuzeigen, kann folgende Formel verwendet werden:

    =TEXT($Y$23;"[$-409] TTTT MMM JJJJ")

    Hierbei steht [$-409] für das englische Datumsformat.

  4. Dynamisches Format: Wenn Du das Datumsformat dynamisch anpassen möchtest, kannst Du VBA verwenden, um den Ländercode auszulesen und in der TEXT-Funktion zu verwenden.


Häufige Fehler und Lösungen

  • Fehler: #NAME?
    Dies tritt auf, wenn Excel die Funktion oder den Namen nicht erkennt. Überprüfe, ob die Funktion korrekt eingegeben wurde und keine Schreibfehler vorliegen.

  • Datum wird nicht richtig angezeigt:
    Stelle sicher, dass die Regionaleinstellungen Deines Systems mit dem gewünschten Datumsformat übereinstimmen. Du kannst die Ländereinstellungen über die Systemsteuerung ändern.

  • TEXT-Funktion funktioniert nicht wie erwartet:
    Bei der Verwendung von =TEXT(A1;"TTTT MMM JJJJ") kann es sein, dass das Format nicht zur Sprache des Systems passt. Stelle sicher, dass Du die richtigen Kürzel verwendest.


Alternative Methoden

  • Verwendung von VBA: Wenn Du den Ländercode automatisch bestimmen möchtest, kannst Du VBA verwenden:

    Sub LändercodeAuslesen()
       MsgBox Application.International(xlCountryCode)
    End Sub
  • Power Query: Eine andere Möglichkeit ist die Verwendung von Power Query, um das Datum zu transformieren und den gewünschten Ländercode zu ermitteln.


Praktische Beispiele

  1. Datum als Text umwandeln: Um ein Datum als Text auszugeben, kannst Du folgende Formel verwenden:

    =TEXT(A1;"TT.MM.JJJJ")
  2. Umwandlung von deutschem in englisches Datum:

    =TEXT(A1;"[$-409] DDDD, MMMM DD, YYYY")

    Diese Formel gibt das Datum im englischen Format aus.

  3. Dynamisches Format mit VBA: Verwende die Funktion Get.Cell, um das aktuelle Datumsformat auszulesen und in der TEXT-Funktion zu verwenden:

    =TEXT(B5;calc_Get.Cell_Cellformat)

Tipps für Profis

  • Nutze die Funktion REPT, um mehrere Zeichen für die Textformatierung zu wiederholen:

    =TEXT(B5;REPT("D";4)&"-"&REPT("M";4)&"-"&REPT("Y";4))
  • Halte Dich an die regionalen Datumsformate, um Komplikationen zu vermeiden. Verwende die Format-Funktion, um sicherzustellen, dass das Datum korrekt dargestellt wird.


FAQ: Häufige Fragen

1. Wie kann ich das deutsche Datum in ein englisches Datum umwandeln?
Verwende die TEXT-Funktion mit dem entsprechenden Ländercode in der Formel:

=TEXT(A1;"[$-409] DD.MM.YYYY")

2. Warum funktioniert die TEXT-Funktion manchmal nicht?
Die TEXT-Funktion kann aufgrund von falschen Ländereinstellungen oder nicht unterstützten Datumsformaten in der Excel-Version nicht funktionieren.

3. Gibt es eine Möglichkeit, das Datum automatisch an die Sprache des Benutzers anzupassen?
Ja, durch die Verwendung von VBA kannst Du den Ländercode des Benutzers auslesen und die TEXT-Funktion entsprechend anpassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige