Konvertierung von Excel-Datum in Zeichenfolge

125

In einer Zelle in einer Excel-Tabelle habe ich einen Datumswert wie:

01/01/2010 14:30:00

Ich möchte dieses Datum in Text konvertieren und möchte, dass der Text genau wie Datum aussieht. Ein Datumswert von 01/01/2010 14:30:00sollte also so aussehen, 01/01/2010 14:30:00aber intern sollte es Text sein.

Wie kann ich das in Excel machen?

Chaitanya MSV
quelle
6
Viele snobistische Programmierer würden argumentieren, dass Excel keine Programmierumgebung ist, daher könnte diese Frage geschlossen werden. Ich hoffe sie tun es nicht, sondern nur um dich zu warnen.
Nick Fortescue
4
Excel ist möglicherweise keine vollständige IDE. Wenn Sie jedoch Daten in Excel erhalten und Ergebnisse in Excel benötigen, ist eine gewisse VBA-Programmierung sinnvoll.
Brichins

Antworten:

241
=TEXT(A1,"DD/MM/YYYY hh:mm:ss")

(24 Stunden Zeit)

=TEXT(A1,"DD/MM/YYYY hh:mm:ss AM/PM")

(Standardzeit)

Kirill
quelle
3
Vollständiger Verweis auf die TEXT-Funktion, insbesondere um zu erfahren, wie Formate festgelegt werden: Siehe Richtlinien für Datums- und Uhrzeitformate
codea
Wenn ich versuche, diese Konvertierung durchzuführen, gibt es ein "#AD?" Text und es sagt, dass etwas nicht stimmt.
AloneInTheDark
1
@AloneInTheDark Wenn Sie dem Link von codea folgen, funktionieren die Formate jedoch nur, wenn Sie ein Windows-Betriebssystem haben, das die englischen Formate verwendet. Meins verwendet die niederländischen Formate, was bedeutet, dass beispielsweise "TT / MM / JJJJ hh: mm: ss" zu "TT / MM / JJJJ uu: mm: ss" wird, weil auf Niederländisch "Jahr" "Jaar" und "Stunde" ist. ist 'uur', dh andere Startbuchstaben (während 'Tag', 'Monat', 'Minuten' und 'Sekunden' mit denselben Buchstaben auf Niederländisch und Englisch beginnen). Übersetzen Sie grundsätzlich die Anfangsbuchstaben der Formate in die Sprache Ihres Betriebssystems.
Sem Vanmeenen
3
Und die entgegengesetzte Konvertierung erfolgt mitDATEVALUE("01/01/2010")
Zenadix
Gibt es eine Möglichkeit, das Format zu verwenden, das ich bereits für die Datumsanzeige verwende, ohne es angeben zu müssen?
Palswim
8

Hier ist ein VBA-Ansatz:

Sub change()
    toText Sheets(1).Range("A1:F20")
End Sub

Sub toText(target As Range)
Dim cell As Range
    For Each cell In target
        cell.Value = cell.Text
        cell.NumberFormat = "@"
    Next cell
End Sub

Wenn Sie nach einer Lösung ohne Programmierung suchen, sollte die Frage in SuperUser verschoben werden.

Rn
quelle
6

Hier ist eine weitere Option. Verwenden Sie den in Excel integrierten Assistenten "Text in Spalten". Es befindet sich in Excel 2007 auf der Registerkarte Daten.

Wenn Sie eine Spalte ausgewählt haben, sollten die Standardeinstellungen für Dateityp und Trennzeichen funktionieren. Anschließend werden Sie aufgefordert, das Datenformat der Spalte zu ändern. Wenn Sie Text auswählen, wird das Textformat aktiviert, um sicherzustellen, dass es nicht als Datum gespeichert wird.

Adam Miller
quelle
4

In einigen Kontexten funktioniert die vorherige Verwendung eines Zeichens. Wenn Sie jedoch in CSV speichern und erneut laden, ist dies nicht möglich.

'01/01/2010 14:30:00
Nick Fortescue
quelle
4

Die TEXT () - Formel konnte nicht funktionieren

Die einfachste Lösung bestand darin, das Einfügen in den Editor und zurück in Excel zu kopieren, wobei die Spalte vor dem Einfügen auf Text gesetzt war

Oder Sie können dasselbe mit einer Formel wie dieser tun

=DAY(A2)&"/"&MONTH(A2)&"/"&YEAR(A2)& " "&HOUR(B2)&":"&MINUTE(B2)&":"&SECOND(B2)

Shankar ARUL - jupyterdata.com
quelle
1
Upvoted, da dies meines Wissens die einzige Arbeitsmethode ist, für die keine Spracheinstellungen gelten. Wenn Sie beabsichtigen, Ihre Arbeit zu teilen, wird die Verwendung von TEXT () Ihnen Probleme bereiten. Selbst innerhalb eines Landes (z. B. Deutschland) finden Sie Personen mit deutscher und englischer Konfiguration.
Dr. V
1
Vielen Dank und positive Bewertung! Es funktioniert für mich, weil ich = TEXT (Python-Bibliotheksformeln) nicht verwenden kann
lestat_kim
1

Wenn Sie keine Programmierung verwenden, gehen Sie wie folgt vor: (1) Wählen Sie die Spalte (2) aus, klicken Sie mit der rechten Maustaste und wählen Sie Zellen formatieren. (3) Wählen Sie "Benutzerdefiniert". (4) Geben Sie unter "Typ:" TT / MM / JJJJ HH: MM ein : ss

Harihara Iyer
quelle
0

In Excel 2010 funktionierte die Antwort von marg nur für einige der Daten, die ich in meiner Tabelle hatte (sie wurden importiert). Die folgende Lösung funktionierte mit allen Daten.

Sub change()
    toText Selection
End Sub

Sub toText(target As range)
Dim cell As range
Dim txt As String
    For Each cell In target
        txt = cell.text
        cell.NumberFormat = "@"
        cell.Value2 = txt
    Next cell
End Sub
Archimaredes
quelle
0

Ich habe keine Ahnung über das Jahr der Veröffentlichung der Frage; es könnte jetzt alt sein. Daher erwarte ich, dass meine Antwort nach meinem Beitrag eher eine Referenz für zukünftige ähnliche Fragen ist.

Ich weiß nicht, ob jemand da draußen bereits eine ähnliche Antwort gegeben hat wie die, die ich gleich geben werde, was - ich denke - dazu führen könnte, dass sie die einfachste, direkteste und effektivste ist: Wenn jemand sie bereits gegeben hat, entschuldige ich mich , aber ich habe es nicht gesehen. Hier meine Antwort mit CStr anstelle von TEXT:

Angenommen, Zelle A1 enthält ein Datum und verwendet VBA-Code:

Dim strDate As String

'Convert to string the value contained in A1 (a date)
strDate = CStr([A1].Value)

Sie können es anschließend wie eine normale Zeichenfolge mit Zeichenfolgenfunktionen (MID, LEFT, RIGHT, LEN, CONCATENATE (&) usw.) bearbeiten.

Prof. Juan Manuel Alonso D.
quelle
-1

Die ausgewählte Antwort funktionierte bei mir nicht, da Excel den Text immer noch nicht auf den neuesten Stand brachte. Hier ist meine Lösung.

Angenommen, Sie haben in der ersten Spalte A Daten des Typs, die 2016/03/25 21:20:00jedoch als Text gespeichert sind. Dann in Spalte B schreiben =DATEVALUE(A1)und in Spalte C schreiben =TIMEVALUE(A1).

Fügen Sie dann in Spalte D =B1+C1die numerischen Formate von Datum und Uhrzeit hinzu.

Kopieren Sie abschließend die Werte von D in Spalte E, indem Sie mit der rechten Maustaste in Spalte E klicken und auswählen Paste Special -> Paste as Values.

Markieren Sie die numerischen Werte in Spalte E und ändern Sie den Datentyp auf Datum. Ich bevorzuge die Verwendung eines benutzerdefinierten Datums des Formulars YYYY-MM-DD HH:MM:SS.

puiu
quelle