Excel Date to String konversi

125

Dalam sel di lembar Excel saya memiliki nilai Tanggal seperti:

01/01/2010 14:30:00

Saya ingin mengonversi Tanggal menjadi Teks dan juga ingin Teks terlihat persis seperti Tanggal. Jadi nilai Date 01/01/2010 14:30:00seharusnya seperti 01/01/2010 14:30:00tetapi secara internal itu harus berupa Teks.

Bagaimana saya bisa melakukannya di Excel?

Chaitanya MSV
sumber
6
Banyak programmer yang sombong berpendapat bahwa excel bukan lingkungan pemrograman jadi bisa menutup pertanyaan ini. Saya harap mereka tidak melakukannya, tetapi hanya untuk memperingatkan Anda.
Nick Fortescue
4
Excel mungkin bukan IDE yang lengkap, tetapi jika Anda diberikan data dalam Excel dan membutuhkan hasil dalam Excel, beberapa pemrograman VBA masuk akal.
brichins

Jawaban:

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

(Waktu 24 jam)

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

(waktu standar)

Kirill
sumber
3
Referensi lengkap ke fungsi TEXT terutama untuk mengetahui cara mengatur format: lihat Pedoman untuk format tanggal dan waktu di halaman ini office.microsoft.com/en-us/excel-help/…
codea
Ketika saya mencoba melakukan konversi ini, ada "#AD?" teks dan mengatakan ada sesuatu yang salah.
AloneInTheDark
1
@AloneInTheDark Ketika Anda mengikuti tautan dari codea, format berfungsi tetapi hanya jika Anda memiliki OS windows yang menggunakan format bahasa Inggris. Milik saya menggunakan format Belanda yang berarti bahwa misalnya "DD / MM / YYYY jj: mm: dd" menjadi "DD / MM / JJJJ uu: mm: dd" karena dalam bahasa Belanda, 'tahun' adalah 'jaar' dan 'jam' adalah 'uur' yaitu huruf awal lainnya (sementara 'hari', 'bulan', 'menit' dan 'detik' dimulai dengan huruf yang sama dalam bahasa Belanda dan Inggris). Pada dasarnya, terjemahkan huruf awal format ke bahasa OS Anda.
Sem Vanmeenen
3
Dan konversi sebaliknya dilakukan denganDATEVALUE("01/01/2010")
Zenadix
Adakah cara untuk menggunakan format yang sudah saya gunakan untuk tampilan Tanggal tanpa harus menentukannya?
palswim
8

Berikut ini adalah pendekatan VBA:

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

Jika Anda mencari solusi tanpa pemrograman, Pertanyaan harus dipindahkan ke SuperUser.

marg
sumber
6

Ini pilihan lain. Gunakan wizard 'Teks ke Kolom' bawaan Excel. Itu ditemukan di bawah tab Data di Excel 2007.

Jika Anda memiliki satu kolom yang dipilih, default untuk tipe file dan pembatas harus berfungsi, maka itu meminta Anda untuk mengubah format data kolom. Memilih teks memaksanya ke format teks, untuk memastikan bahwa itu tidak disimpan sebagai tanggal.

Adam Miller
sumber
4

Dalam beberapa konteks menggunakan karakter 'sebelumnya akan berfungsi, tetapi jika Anda menyimpan ke CSV dan memuat lagi ini tidak mungkin.

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

Tidak dapat membuat rumus TEXT () berfungsi

Solusi termudah adalah menyalin paste ke Notepad dan kembali ke Excel dengan kolom diatur ke Teks sebelum menempel kembali

Atau Anda bisa melakukan hal yang sama dengan rumus seperti ini

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

Shankar ARUL - jupyterdata.com
sumber
1
Terpilih, karena menurut pemahaman saya, ini adalah satu-satunya metode kerja yang tidak tunduk pada pengaturan bahasa. Jika Anda ingin membagikan pekerjaan Anda, menggunakan TEXT () akan membuat Anda kesulitan. Bahkan di dalam satu negara (misalnya Jerman), Anda akan menemukan orang dengan konfigurasi Jerman dan Inggris.
Dr. V
1
terima kasih dan upvote besar! Ini berfungsi untuk saya, karena saya tidak dapat menggunakan = TEXT (rumus python library)
lestat_kim
1

Jika Anda tidak menggunakan pemrograman maka lakukan hal berikut (1) pilih kolom (2) klik kanan dan pilih Format Sel (3) Pilih "Kustom" (4) Tepat Di Bawah "Jenis:" ketik dd / mm / yyyy hh: mm : ss

Harihara Iyer
sumber
0

Di Excel 2010, jawaban marg hanya berfungsi untuk beberapa data yang saya miliki di spreadsheet saya (diimpor). Solusi berikut ini bekerja pada semua data.

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
sumber
0

Saya tidak tahu tentang tahun penerbitan pertanyaan; mungkin sudah tua sekarang. Jadi, saya berharap jawaban saya menjadi lebih banyak referensi untuk pertanyaan serupa di masa depan setelah posting saya.

Saya tidak tahu apakah ada orang di luar sana yang telah memberikan jawaban yang serupa dengan yang akan saya berikan, yang mungkin menghasilkan - Saya pikir - menjadi yang paling sederhana, paling langsung dan paling efektif: Jika seseorang telah memberikannya, saya minta maaf , tapi saya belum melihatnya. Di sini, jawaban saya menggunakan CStr bukan TEXT:

Asuming sel A1 berisi tanggal, dan menggunakan kode VBA:

Dim strDate As String

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

Selanjutnya, Anda dapat memanipulasinya sebagai string biasa menggunakan fungsi string (MID, LEFT, RIGHT, LEN, CONCATENATE (&), dll.)

Juan Manuel Alonso D.
sumber
-1

Jawaban yang dipilih tidak berfungsi untuk saya karena Excel masih belum mengubah teks menjadi tanggal. Ini solusinya.

Katakan bahwa di kolom pertama, A, Anda memiliki data tipe 2016/03/25 21:20:00tetapi disimpan sebagai teks. Kemudian di kolom B tulis =DATEVALUE(A1)dan di kolom C tulis =TIMEVALUE(A1).

Kemudian di kolom D lakukan =B1+C1untuk menambahkan format numerik tanggal dan waktu.

Terakhir, salin nilai dari D ke kolom E dengan mengklik kanan di kolom E dan pilih Paste Special -> Paste as Values.

Sorot nilai numerik di kolom E dan ubah tipe data menjadi tanggal - Saya lebih suka menggunakan tanggal kustom formulir YYYY-MM-DD HH:MM:SS.

puiu
sumber