Tidak dapat membuat Excel mengenali tanggal di kolom

45

Saya selalu memiliki masalah dalam menangani tanggal di Excel, saya pasti melakukan sesuatu yang salah tetapi saya tidak mengerti apa.

Saya memiliki spreadsheet, diekspor dari server pertukaran kami, yang berisi kolom dengan tanggal. Mereka telah keluar dalam format AS meskipun saya di Inggris.

Kolom yang dimaksud terlihat seperti ini

04/08/2012
04/09/2009
04/01/2010
04/21/2011
04/05/2012
08/30/2009
08/29/2010
08/28/2011

Di Excel, saya telah menyoroti kolom dan memilih Format Cells.... Dalam kotak dialog ini, saya telah memilih Date, memilih English (United States)sebagai lokal dan memilih format tanggal yang cocok dari daftar. Saya menekan OK dan mencoba mengurutkan data berdasarkan kolom ini.

Dalam dialog sortir saya memilih kolom ini, pilih sortir pada Nilai tetapi pesanan hanya memberi saya opsi untuk A sampai Z, bukan yang terlama ke terbaru seperti yang saya harapkan.

Ini pada gilirannya mengurutkan data tanggal dengan dua digit pertama.

Saya sadar saya bisa memformat ulang data ini ke ISO dan kemudian jenis A ke Z akan bekerja tetapi saya tidak seharusnya juga, saya jelas kehilangan sesuatu. Apa itu?

EDIT: Saya mengacaukan karunia tetapi ini seharusnya pergi ke @ r0berts menjawab, saran pertamanya Text to Columns tanpa pembatas dan memilih 'MDY' sebagai jenis data bekerja. Selain itu, jika Anda punya waktu (yaitu 04/21/2015 18:34:22), Anda harus terlebih dahulu menyingkirkan data waktu. Namun setelah itu metode yang disarankan oleh @ r0berts berfungsi dengan baik.

Patrick
sumber
Saya menduga masalahnya adalah Excel tidak tahu bagaimana melakukan ini - Anda dapat menguji. Ketika Anda mencoba memperbarui format tanggal, pilih kolom dan klik kanan padanya dan pilih format sel (seperti yang sudah Anda lakukan) tetapi pilih opsi 2001-03-14 (dekat bagian bawah daftar). Saya akan curiga bahwa hanya beberapa format tanggal yang diperbarui dengan benar, menunjukkan bahwa Excel masih memperlakukannya seperti string, bukan tanggal!
Dave
Apa format data yang diekspor? Apakah itu CSV atau XLSX?
Excellll

Jawaban:

70

Masalahnya: Excel tidak ingin mengenali tanggal sebagai tanggal, meskipun melalui "Format sel - Nomor - Kustom" Anda secara eksplisit mencoba untuk mengatakan bahwa ini adalah tanggal dengan " mm/dd/yyyy". Seperti yang Anda ketahui; ketika excel mengenali sesuatu sebagai tanggal, ia selanjutnya menyimpan ini sebagai angka - " 41004" tetapi ditampilkan sebagai tanggal sesuai dengan format yang Anda tentukan. Untuk menambah kebingungan excel dapat mengkonversi hanya sebagian dari tanggal Anda seperti 2008/08/08, tetapi biarkan lainnya misalnya 07/28/2009 belum bertobat.

Solusi: langkah 1 dan kemudian 2

1) Pilih kolom tanggal. Di bawah Data pilih tombol Teks ke Kolom. Pada layar pertama biarkan tombol radio pada " dibatasi " dan klik Next . Hapus centang pada kotak pembatas mana pun (kotak apa saja yang kosong ; tidak ada tanda centang) dan klik Berikutnya . Di bawah format data kolom pilih Tanggal dan pilih MDY di kotak kombo yang berdekatan dan klik Selesai . Sekarang Anda mendapatkan nilai tanggal (mis. Excel telah mengenali nilai Anda sebagai Datetipe data), tetapi pemformatan tersebut kemungkinan masih merupakan tanggal lokal, bukan yang mm/dd/yyyyAnda inginkan.

2) Untuk mendapatkan format tanggal AS yang diinginkan ditampilkan dengan benar, Anda pertama-tama harus memilih kolom (jika tidak dipilih) kemudian di bawah Format Sel - Nomor pilih Tanggal DAN pilih Lokal: Inggris (AS) . Ini akan memberi Anda format seperti " m/d/yy". Kemudian Anda dapat memilih Kustom dan di sana Anda dapat mengetik " mm/dd/yyyy" atau memilih ini dari daftar string khusus.

Alternatif : gunakan LibreOffice Calc. Setelah menempelkan data dari pos Patrick pilih Tempel Spesial ( Ctrl+Shift+V) dan pilih Teks Tidak Diformat. Ini akan membuka kotak dialog "Impor Teks". Set karakter tetap Unicode tetapi untuk bahasa pilih Inggris (AS); Anda juga harus mencentang kotak "Deteksi nomor khusus". Tanggal Anda segera muncul dalam format AS standar dan dapat diurutkan berdasarkan tanggal. Jika Anda menginginkan format AS khusus MM / DD / YYYY, Anda perlu menentukan ini sekali melalui "format Sel" - baik sebelum atau setelah menempel.

Orang mungkin mengatakan - Excel seharusnya mengenali tanggal segera setelah saya katakan melalui "Format Sel" dan saya sangat setuju . Sayangnya hanya melalui langkah 1 dari atas saya dapat membuat Excel mengenali string teks ini sebagai tanggal. Jelas jika Anda sering melakukan ini, itu adalah rasa sakit di leher dan Anda mungkin menyusun rutin visual basic yang akan melakukan ini untuk Anda dengan menekan sebuah tombol.

Data | Teks ke Kolom

Pembaruan pada tanda kutip terkemuka setelah menempel: Anda dapat melihat di bilah rumus bahwa di sel di mana tanggal tidak dikenali ada tanda kutip terkemuka. Itu berarti dalam sel diformat sebagai angka (atau tanggal) ada string teks. Anda bisa mengatakan - tanda kutip utama mencegah spreadsheet untuk mengenali nomor tersebut. Anda perlu tahu untuk melihat di bilah rumus untuk ini - karena spreadsheet hanya menampilkan apa yang tampak seperti angka rata kiri. Untuk mengatasi masalah ini pilih kolom yang ingin Anda koreksi, pilih di menuData | Text to Columnsdan klik OK. Terkadang Anda akan dapat menentukan tipe data, tetapi jika sebelumnya Anda telah menetapkan format kolom menjadi tipe data khusus Anda - Anda tidak akan membutuhkannya. Perintah ini benar-benar dimaksudkan untuk membagi kolom teks menjadi dua atau lebih menggunakan pembatas, tetapi berfungsi seperti pesona untuk masalah ini juga. Saya telah mengujinya di Libreoffice , tetapi ada item menu yang sama di Excel juga.

r0berts
sumber
Saya membahas kedua poin Anda di OP saya. Membagi nilai tanggal ke kolom (dan kemudian mengintegrasikan kembali dalam format ISO) tentu saja kemungkinan, tetapi mengingat bahwa Excel memiliki fungsi tanggal bawaan yang luas, saya ingin dapat memanfaatkannya dengan data tanggal valid yang saya miliki. Pilihan kedua Anda persis seperti yang saya jelaskan apa yang tidak berfungsi untuk saya.
Patrick
Patrick terkasih, tolong baca dengan seksama. Atau Anda dapat menggunakan Libre Office Calc - dengan data Anda ini langsung bekerja - Anda cukup pra-format kolom untuk Tanggal - Bahasa Inggris (AS) dan setelah menempelkan lakukan "Tempel Spesial" "Teks tidak diformat" - cukup beri tahu kotak dialog bahwa bahasa adalah Bahasa Inggris (AS) dan jangan lupa centang kotak untuk mengenali nomor khusus. Dalam jawaban saya, saya mencoba memberi petunjuk sekeras yang saya bisa bahwa Excel tidak konsisten dengan ini (kereta) dan Anda harus menggunakan langkah-langkah ini 1 dan 2 untuk mencapai hasil yang Anda inginkan.
r0berts
Seharusnya saya membaca pertanyaan Anda dengan benar. Saran pertama Anda memang berhasil. Anda harus memiliki karunia itu. Terima kasih atas bantuan anda
Patrick
Saran 1 bekerja seperti pesona. Terima kasih.
Adam
Jawaban yang sangat bagus !!!
Adders
8

Pilih semua kolom dan pergi ke Temukan dan Ganti dan ganti saja "/"dengan /.

Jair Bressani
sumber
Bisakah Anda menjelaskan apa yang dilakukan untuk memperbaiki masalah?
fixer1234
Ini benar-benar bekerja dan mudah. Pengganti hanya menghapus nol terkemuka
PedroGabriel
2
Pertama, KARYA INI. Solusi terbaik. JAUH lebih baik daripada solusi yang diperiksa :). Untuk fixer1234 dan @PedroGabriel: Bukan berarti menghapus nol. Dalam tindakan mengganti konten sel, Excel mengevaluasi apakah sel yang dihasilkan berisi rumus, teks, atau angka. Setelah melakukan penggantian "/", itu menginterpretasikan sel untuk sekarang berisi nomor (yang tanggal secara teknis adalah untuk Excel), jadi sekarang dapat diurutkan dengan benar. (Pengguna cerdas dapat mengenali teknik melakukan pencarian / ganti dengan karakter "=" dalam skenario yang sama dengan Excel menafsirkan kembali konten.) Bagaimanapun, Jair memiliki solusi yang ideal :)
MicrosoftShouldBeKickedInNuts
@MicrosoftShouldBeKickedInNuts hari ini saya tidak tahu mengapa saya mengatakan bahwa tentang nol, itu benar-benar tidak ada hubungannya dengan nol ... Ini adalah jawaban terbaik, masih menggunakan yang ini. Cheers
PedroGabriel
3

Saya memiliki masalah yang sama persis dengan tanggal di excel. Format cocok dengan persyaratan untuk tanggal dalam excel, namun tanpa mengedit setiap sel, ia tidak akan mengenali tanggal, dan ketika Anda berurusan dengan ribuan baris, tidak praktis untuk mengedit setiap sel secara manual. Solusi adalah menjalankan pencarian dan ganti pada baris tanggal di mana saya mengganti tanda hubung dengan tanda hubung. Excel berjalan melalui kolom menggantikan suka dengan suka tetapi faktor yang dihasilkan adalah bahwa sekarang recongnises tanggal! TETAP!

Warren Rocchi
sumber
3

Saya berurusan dengan masalah yang sama dengan ribuan baris yang diekstraksi dari database SAP dan, tanpa dapat dijelaskan, dua format tanggal yang berbeda dalam kolom tanggal yang sama (kebanyakan menjadi standar kami "YYYY-MM-DD" tetapi sekitar 10% menjadi "MM- DD-YYY "). Mengedit 650 baris secara manual sebulan sekali bukanlah pilihan.

Tidak ada (nol ... 0 ... nihil) dari opsi di atas yang berfungsi. Ya, saya sudah mencoba semuanya. Menyalin ke file teks atau secara eksplisit mengekspor ke txt masih, entah bagaimana, tidak berpengaruh pada format (atau kekurangannya) dari 10% tanggal yang hanya duduk di sudut mereka menolak untuk berperilaku.

Satu-satunya cara saya dapat memperbaikinya adalah dengan memasukkan kolom kosong di sebelah kanan kolom tanggal yang tidak pantas dan menggunakan rumus berikut, yang agak sederhana:

(dengan asumsi data perilaku salah Anda ada di Column D)

=IF(MID(D2,3,1)="-",DATEVALUE(TEXT(CONCATENATE(RIGHT(D2,4),"-",LEFT(D2,5)),"YYYY-MM-DD")),DATEVALUE(TEXT(D2,"YYYY-MM-DD")))

Saya kemudian dapat menyalin hasil di kolom baru saya yang dihitung, di atas tanggal yang salah dengan menempelkan "Nilai" hanya setelah itu saya bisa menghapus kolom terhitung saya.

Lucster
sumber
3

Ini mungkin tidak relevan dengan penanya asli, tetapi dapat membantu orang lain yang tidak dapat mengurutkan kolom tanggal.

Saya menemukan bahwa Excel tidak akan mengenali kolom tanggal yang semuanya sebelum 1900, bersikeras bahwa mereka adalah kolom teks (karena 1/1/1900 memiliki angka yang setara dengan 1, dan angka negatif tampaknya tidak diperbolehkan). Jadi saya melakukan penggantian umum semua tanggal saya (yang ada di tahun 1800-an) untuk memasukkannya ke tahun 1900, misalnya 180 -> 190, 181 -> 191, dll. Proses penyortiran kemudian bekerja dengan baik. Akhirnya saya melakukan penggantian dengan cara lain, mis. 190 -> 180.

Semoga ini bisa membantu beberapa sejarawan lain di luar sana.

Laurie Allen
sumber
2

Tampaknya Excel tidak mengenali tanggal Anda sebagai tanggal, itu mengenalinya teks, maka Anda mendapatkan opsi Urutkan sebagai A hingga Z. Jika Anda melakukannya dengan benar, Anda harus mendapatkan sesuatu seperti ini:

http://i.stack.imgur.com/Qb4Pj.png

Karenanya, penting untuk memastikan bahwa Excel mengenali tanggal. Cara paling sederhana untuk melakukannya, adalah menggunakan pintasan CTRL+SHIFT+3.

Inilah yang saya lakukan pada data Anda. Saya cukup menyalinnya dari pos Anda di atas dan menempelkannya di excel. Kemudian saya menerapkan cara pintas di atas, dan saya mendapat opsi pengurutan yang diperlukan. Periksa gambar.

http://i.stack.imgur.com/yAa6a.png

Gergaji
sumber
2
Sayangnya pintasan itu tidak berfungsi untuk saya.
Patrick
Apa yang dilakukan pintasan di sistem Anda Patrick.
Firee
3
Jalan pintas tampaknya tidak melakukan apa-apa sama sekali. Saya punya beberapa sistem yang siap menjalankan Office 2007, 2010 dan 2013 dan tidak ada yang bereaksi terhadap pintasan CTRL SHIFT 3. CTRL 1 dengan benar memunculkan dialog 'format sel'.
Patrick
Pintasan keyboard Ctrl + Shift + 3, dirujuk agak sembrono sebagai "Ctrl + Shift + #" di sini , berarti "Menerapkan format Tanggal dengan hari, bulan, dan tahun." Di Excel 2007, 2010, 2013, dan 2016. (Khususnya , pada Excel 2013 saya, ini adalah "d-mmm-yy".) Dokumen Microsoft tidak menjelaskan bahwa sel-sel harus sudah mengandung ... (Lanjutan)
Scott
(Lanjutan) ... nilai-nilai yang Excel mengakui sebagai data tanggal / waktu, dan sepertinya tidak ada di sini telah jelas menjelaskan bahwa, sejak Patrick adalah di Inggris, versinya Excel mengenali string seperti 04/08/2012, 04/09/2009, dan 04/01/2010sebagai 4-Agustus-2012 , 4-Sep-2009, dan 4-Jan-2010, masing-masing, dan diperlakukan 04/21/2011sebagai string teks (karena tidak ada bulan ke-21). Karena beberapa nilai adalah teks (dan beberapa nilai, mungkin, sebenarnya telah disalahtafsirkan), pemformatan (seperti dengan cara pintas keyboard Ctrl + Shift + 3) tidak akan ada gunanya.
Scott
2

Saya menduga masalahnya adalah Excel tidak dapat memahami format ... Meskipun Anda memilih format Tanggal, tetap sebagai Teks.

Anda dapat menguji ini dengan mudah: Ketika Anda mencoba memperbarui format tanggal, pilih kolom dan klik kanan padanya dan pilih format sel (seperti yang sudah Anda lakukan) tetapi pilih opsi 2001-03-14 (dekat bagian bawah daftar). Kemudian tinjau format sel Anda.

Saya akan curiga bahwa hanya beberapa format tanggal yang diperbarui dengan benar, menunjukkan bahwa Excel masih memperlakukannya seperti string, bukan tanggal (perhatikan format yang berbeda di cuplikan layar di bawah ini)!

masukkan deskripsi gambar di sini

Ada beberapa solusi untuk ini, tetapi, tidak satupun dari mereka akan otomatis hanya karena Anda mengekspor setiap waktu. Saya akan menyarankan menggunakan VBa, di mana Anda bisa menjalankan makro yang mengkonversi dari format tanggal AS ke Inggris, tetapi, ini berarti menyalin dan menempel VBa ke lembar Anda setiap kali.

Atau, Anda membuat Excel yang membaca lembar Excel yang baru dibuat yang diekspor (dari bursa) dan kemudian jalankan VBa untuk memperbarui format tanggal untuk Anda. Saya akan menganggap file Excel yang Diekspor Pertukaran akan selalu memiliki nama file / direktori yang sama dan memberikan contoh yang berfungsi:

Jadi, buat lembar Excel baru, yang disebut ImportedData.xlsm (excel diaktifkan). Ini adalah file tempat kami akan mengimpor file Excel yang Diekspor Ke!

Tambahkan VBa ini ke file ImportedData.xlsm

Sub DoTheCopyBit()

Dim dateCol As String
dateCol = "A"        'UPDATE ME TO THE COLUMN OF THE DATE COLUMN

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

directory = "C:\Users\Dave\Desktop\"                   'UPDATE ME
fileName = Dir(directory & "ExportedExcel.xlsx")       'UPDATE ME (this is the Exchange exported file location)

Do While fileName <> ""

'MAKE SURE THE EXPORTED FILE IS OPEN
Workbooks.Open (directory & fileName)

Workbooks(fileName).Worksheets("Sheet1").Copy _

Workbooks(fileName).Close

fileName = Dir()

Loop

Application.ScreenUpdating = True
Application.DisplayAlerts = True

Dim row As Integer
row = 1
Dim i As Integer
Do While (Range(dateCol & row).Value <> "")

     Dim splitty() As String
     splitty = Split(Range(dateCol & row).Value, "/")
     Range(dateCol & row).NumberFormat = "@"
     Range(dateCol & row).Value = splitty(2) + "/" + splitty(0) + "/" + splitty(1)
     Range(dateCol & row).NumberFormat = "yyyy-mm-dd"
     row = row + 1
Loop


End Sub

Apa yang saya juga lakukan adalah memperbarui format tanggal ke yyyy-mm-dd karena dengan cara ini, bahkan jika Excel memberi Anda filter AZ, bukan nilai-nilai terbaru, itu masih berfungsi!

Saya yakin kode di atas memiliki bug tetapi saya jelas tidak tahu tipe data apa yang Anda miliki tetapi saya mengujinya dengan satu kolom tanggal (seperti yang Anda miliki) dan berfungsi dengan baik untuk saya!

Bagaimana cara menambahkan VBA di MS Office?

Dave
sumber
baik ... saya akan meninggalkan ini selama beberapa hari untuk memberikan sedikit eksposur tambahan tapi ini sepertinya jawaban yang solid. Ini benar-benar gila, saya tidak percaya ini diperlukan. Karena saya telah memperbaiki data di sumber dengan fungsi kecil di PowerShell untuk membalikkannya ke format ISO di mana saya tidak peduli jika Excel mengenalinya sebagai tanggal: /
Patrick
1

Saya menemukan jawabannya!

Ada ruang di awal dan di akhir tanggal.

  1. Jika Anda menggunakan temukan dan ganti dan tekan bilah spasi, itu TIDAK AKAN bekerja.
  2. Anda harus mengklik kanan sebelum nomor bulan, tekan shift dan panah kiri untuk memilih dan menyalin. Terkadang Anda perlu menggunakan mouse untuk memilih ruang.
  3. Kemudian rekatkan ini sebagai ruang di temukan dan ganti dan semua tanggal Anda akan menjadi tanggal.
  4. Jika ada ruang dan tanggal Pilih Data> Pergi ke Data> Teks ke kolom> Dibatasi> Spasi sebagai pemisah lalu selesai.
  5. Semua spasi akan dihapus.
JailDoctor
sumber
Alasan menemukan dan mengganti tidak akan berfungsi dengan bilah spasi adalah bahwa celah tersebut kemungkinan adalah tab.
Patrick
0

Jika Excel dengan keras kepala menolak untuk mengenali kolom Anda sebagai tanggal, gantilah dengan yang lain:

  • Tambahkan kolom baru di sebelah kanan kolom lama
  • Klik kanan kolom baru dan pilih Format
  • Atur format ke date
  • Sorot seluruh kolom lama dan salin
  • Sorot sel atas kolom baru dan pilih Paste Special, dan hanya tempelvalues
  • Anda sekarang dapat menghapus kolom yang lama.
harrymc
sumber
Saya sudah mencoba ini, berperilaku sama dengan kolom baru. Lihat jawaban Dave, tutup layar di atas adalah apa yang saya dapatkan, tidak peduli berapa kali saya memindahkannya di antara kolom.
Patrick
Coba paksakan masalah dengan menggunakan fungsi DATEVALUE (kolom lama) dalam rumus di kolom baru, lalu gunakan daftar dropdown pemformatan angka pada bilah pita Beranda untuk memilih Tanggal Pendek / Panjang.
harrymc
0

Saya cukup menyalin nomor 1 (satu) dan mengalikannya dengan kolom tanggal (data) menggunakan fungsi PASTE SPECIAL. Kemudian berubah menjadi General formating yaitu 42102 Lalu pergi Date pada formating dan sekarang mengenalinya sebagai tanggal.

Semoga ini membantu

Mpho Sehlako
sumber
0

Semua solusi di atas - termasuk r0berts - tidak berhasil, tetapi menemukan solusi aneh yang ternyata merupakan perbaikan tercepat.

Saya mencoba mengurutkan "tanggal" pada spreadsheet transaksi akun yang diunduh.

Ini telah diunduh melalui browser CHROME. Tidak ada manipulasi "tanggal" yang bisa membuat mereka dikenali sebagai yang dapat disortir dari lama ke baru.

Tapi, kemudian saya unduh melalui browser INTERNET EXPLORER - luar biasa - Saya bisa mengurutkan langsung tanpa menyentuh kolom.

Saya tidak bisa menjelaskan mengapa browser yang berbeda memengaruhi pemformatan data, kecuali bahwa browser itu jelas melakukan dan merupakan perbaikan yang sangat cepat.

Ros
sumber
0

Solusi saya di Inggris - Saya punya teman kencan dengan titik-titik di dalamnya seperti ini:

03.01.17

Saya memecahkan ini dengan yang berikut:

  1. Sorot seluruh kolom.
  2. Pergi untuk menemukan dan memilih / mengganti.
  3. Saya mengganti semua berhenti penuh dengan tanda hubung tengah misalnya 03.01.17 03-01-17.
  4. Biarkan kolom tetap disorot.
  5. Memformat sel, pilih nomor tab tanggal.
  6. Gunakan Jenis 14-03-12(penting untuk tambang saya memiliki tanda hubung tengah)
  7. Bahasa Inggris Lokal (Britania Raya)

Saat menyortir kolom, semua tanggal untuk tahun ini diurutkan.

Charlie
sumber
0

Saya mencoba berbagai saran, tetapi menemukan solusi termudah bagi saya adalah sebagai berikut ...

Lihat Gambar 1 dan 2 untuk contoh ... (perhatikan - beberapa bidang disembunyikan secara sengaja karena tidak berkontribusi pada contoh). Saya harap ini membantu...

  1. Field C - format campuran yang membuat saya benar-benar gila. Ini adalah bagaimana data datang langsung dari database dan tidak memiliki ruang ekstra atau karakter gila. Ketika menampilkannya sebagai teks misalnya, 01/01/2016 ditampilkan sebagai nilai tipe '42504', dicampur dengan 04/15/2006 yang menunjukkan apa adanya.

  2. Bidang F - di mana saya memperoleh panjang bidang C (rumus LEN akan menjadi panjang 5 dari 10 tergantung pada format tanggal). Bidang ini format umum untuk kesederhanaan.

  3. Bidang G - mendapatkan komponen bulan dari tanggal campuran - berdasarkan hasil panjang di bidang F (5 atau 10), saya mendapatkan bulan dari nilai tanggal di bidang C, atau mendapatkan karakter bulan dalam string.

  4. Bidang H - mendapatkan komponen hari dari tanggal campuran - berdasarkan hasil panjang di bidang F (5 atau 10), saya mendapatkan hari dari nilai tanggal di bidang C, atau mendapatkan karakter hari dalam string.

Saya dapat melakukan ini untuk tahun ini juga, kemudian membuat tanggal dari tiga komponen yang konsisten. Kalau tidak, saya bisa menggunakan nilai hari, bulan, dan tahun individual dalam analisis saya.

Gambar 1: spreadsheet dasar yang menampilkan nilai dan nama bidang

Gambar 2: spreadsheet menampilkan formula yang cocok dengan penjelasan di atas

Saya harap ini membantu.

Eran
sumber
(1) Meskipun bagus untuk memposting gambar layar untuk menunjukkan bahwa jawaban Anda benar-benar berfungsi, kami lebih suka bahwa rumus dalam solusi Anda diposting sebagai teks di badan jawaban Anda, sehingga orang dapat menyalin dan menempelkannya. (2) Anda tampaknya memahami masalahnya - bahwa tanggal numerik seperti 04/08tidak jelas. 04/08akan ditafsirkan sebagai 8 April di beberapa lokal (seperti Amerika Serikat) dan 4-Agustus di lain (seperti Inggris). Tapi ini ambigu justru karena jumlah bulan dan hari-bulan berbeda. … (Lanjutan)
Scott
(Lanjutkan) ... Jadi mengapa Anda menggunakan  tanggal yang tidak jelas seperti 01/01dalam jawaban Anda? (3) Sebenarnya, saya tidak yakin Anda memahami masalahnya, atau bahwa jawaban Anda benar-benar berfungsi, karena lembar Anda memiliki baris di mana bulan # adalah 15; yang tampaknya merupakan kesalahan nyata. Dan, mengingat hal 04/15itu tidak ambigu - itu berarti tanggal 15 April - tidak masuk akal jika metode Anda diuraikan 01/11sebagai hari pertama di bulan ke-11. … (Lanjutan)
Scott
(Lanjutkan) ... (4) Harus ditunjukkan bahwa, paling banter, jawaban Anda hanya akan menangani tanggal yang terlihat seperti nn / nn / nnnn . Ini akan gagal pada tanggal seperti 5/8, 5/08, 5/28, 05/8, dan 11/8. Juga - fakta menyenangkan - jawaban Anda akan gagal pada tanggal ≤ 17 Mei 1927 dan ≥ 17 Oktober 2173. Jangankan masalah Y10K; kami dapat mulai mengalami masalah secepat 154 tahun dari sekarang! (5) Anda berkata, “Saya bisa melakukan ini untuk tahun ini juga, kemudian membuat tanggal dari tiga komponen yang konsisten.” Jadi mengapa tidak Anda lakukan, dan perlihatkan ? … (Lanjutan)
Scott
(Lanjutkan) ... Sangat sulit untuk memverifikasi bahwa metode Anda berfungsi saat Anda menyajikan versi yang tidak lengkap; yang tidak menunjukkan bulan, hari dan tahun yang disusun kembali menjadi tanggal. (6) Seperti yang saya katakan kepada Patsaeed , alangkah baiknya jika Anda menggunakan data OP, dari pertanyaan, daripada membuat sendiri. Gagal menggunakan data OP, mungkin lebih baik jika Anda menggunakan Patsaeed, jadi setidaknya kita bisa membandingkan apel dengan apel. … (Lanjutan)
Scott
(Lanjutkan) ... Dan, apakah Anda menggunakan data OP atau orang lain, alangkah baiknya jika Anda telah menunjukkan input asli ke skenario Anda. (Misalnya, untuk Baris 7, apakah itu 01/11/2016atau  11/01/2016?) Dan, jika Anda akan menggunakan data Anda sendiri, alangkah baiknya jika Anda memasukkan tanggal dari bulan yang sama yang menunjukkan (misalnya) bagaimana 1/11dan 1/21ditangani berbeda. Dan mengapa memiliki data rangkap? Anda telah menyia-nyiakan 19 baris dengan menggunakan empat nilai yang sama beberapa kali, tersebar di 23 baris.
Scott
0

BERBAGI SEDIKIT PANJANG TETAPI SOLUSI LEBIH MUDAH UNTUK MENYESUAIKAN ..... Tidak perlu menjalankan makro atau hal-hal aneh .... ms sederhana excel formula dan editing.

tanggal campuran, unggul snapshot:

masukkan deskripsi gambar di sini

  • Tanggal dalam format campuran.
  • Oleh karena itu, untuk membuat format tanggal simetris, kolom tambahan telah dibuat dengan mengubah kolom tanggal 'format campuran' ke TEXT.
  • Dari teks itu kami telah mengidentifikasi posisi "/" dan teks tengah telah diekstraksi menentukan tanggal, bulan, tahun menggunakan rumus MID.
  • Yang awalnya tanggal, formula berakhir dengan KESALAHAN / #VALUEhasil. - Akhirnya, dari string yang kami buat - kami telah mengonversinya menjadi tanggal dengan rumus DATE.
  • #VALUE dipilih sebagaimana IFERROR ditambahkan ke rumus DATE & kolom diformat sesuai kebutuhan (di sini, hh / mmm / tttt)

* REFER THE SNAPSHOT OF EXCEL SHEET DI ATAS (= tanggal campuran, unggul snapshot) *

Patsaeed
sumber
(1) Meskipun bagus memposting gambar layar untuk menunjukkan bahwa jawaban Anda benar-benar berfungsi, kami lebih suka bahwa rumus dalam solusi Anda diposting sebagai teks di badan jawaban Anda, sehingga orang dapat menyalin dan menempelkannya. (2) rumus anda sebagai ditunjukkan dalam gambar Anda salah, karena mereka mengacu pada Kolom  V, Wdan  Xketika mereka harus mengacu pada Kolom  B, C, dan  D. … (Lanjutan)
Scott
(Lanjutan) ... (3) Alangkah baiknya jika Anda menggunakan data OP, dari pertanyaan, daripada membuat sendiri. Dan, apakah Anda menggunakan data OP atau milik Anda, alangkah baiknya jika Anda telah menunjukkan input asli ke skenario Anda (misalnya, untuk Baris 9, itu 5/8/2014atau  5/08/2014). Dan, jika Anda akan menggunakan data Anda sendiri, alangkah baiknya jika Anda memasukkan tanggal dari bulan yang sama, untuk menunjukkan (misalnya) bagaimana 5/8dan 5/28ditangani secara berbeda. Dan mengapa memiliki data rangkap? Anda telah membuang enam baris dengan menggunakan nilai yang sama lebih dari satu kali.
Scott
0

Ini terjadi setiap saat ketika bertukar data tanggal antara lokal di Excel. Jika Anda memiliki kontrol atas program VBA yang mengekspor data, saya sarankan mengekspor nomor yang mewakili tanggal, bukan tanggal itu sendiri. Angka tersebut berkorelasi unik dengan satu tanggal, terlepas dari pemformatan dan lokal. Misalnya, alih-alih file CSV yang menampilkan 24/09/2010, file itu akan menampilkan 40445.

Dalam loop ekspor saat Anda memegang setiap sel, jika itu tanggal, konversikan ke nomor menggunakan CLng (myDateValue). Ini adalah contoh loop saya berjalan melalui semua baris tabel dan mengekspor ke CSV (perhatikan saya juga mengganti koma dalam string dengan tag yang saya lepas saat mengimpor, tetapi Anda mungkin tidak memerlukan ini):

arr = Worksheets(strSheetName).Range(strTableName & "[#Data]").Value

    For i = LBound(arr, 1) To UBound(arr, 1)
        strLine = ""
        For j = LBound(arr, 2) To UBound(arr, 2) - 1
            varCurrentValue = arr(i, j)
            If VarType(varCurrentValue) = vbString Then
                varCurrentValue = Replace(varCurrentValue, ",", "<comma>")
            End If
            If VarType(varCurrentValue) = vbDate Then
                varCurrentValue = CLng(varCurrentValue)
            End If
            strLine = strLine & varCurrentValue & ","
        Next j
        'Last column - not adding comma
        varCurrentValue = arr(i, j)
            If VarType(varCurrentValue) = vbString Then
                varCurrentValue = Replace(varCurrentValue, ",", "<comma>")
            End If
            If VarType(varCurrentValue) = vbDate Then
                varCurrentValue = CLng(varCurrentValue)
            End If
        strLine = strLine & varCurrentValue

        strLine = Replace(strLine, vbCrLf, "<vbCrLf>") 'replace all vbCrLf with tag - to avoid new line in output file
        strLine = Replace(strLine, vbLf, "<vbLf>") 'replace all vbLf with tag - to avoid new line in output file
        Print #intFileHandle, strLine
    Next i
Mor Sagmon
sumber
0

Saya tidak beruntung dengan semua saran di atas - muncul dengan solusi yang sangat sederhana yang bekerja seperti pesona. Tempel data ke dalam Google Sheets, sorot kolom tanggal, klik format, lalu nomor, dan nomor sekali lagi untuk mengubahnya ke format angka. Saya kemudian menyalin dan menempelkan data ke dalam lembar bentang Excel, klik pada tanggal, lalu format sel ke tanggal. Sangat cepat. Semoga ini membantu.

Mike
sumber
0

Masalah ini membuatku gila, lalu aku menemukan solusi yang mudah. Setidaknya itu berfungsi untuk data saya. Mudah dilakukan dan diingat. Tapi saya tidak tahu mengapa ini bekerja tetapi mengubah jenis seperti ditunjukkan di atas tidak. 1. Pilih kolom dengan tanggal 2. Cari satu tahun di tanggal Anda, misalnya 2015. Pilih Ganti Semua dengan tahun yang sama, 2015. 3. Ulangi untuk setiap tahun. Ini mengubah tipe tanggal aktual, tahun ke tahun.
Ini masih rumit jika Anda memiliki data bertahun-tahun. Lebih cepat adalah mencari dan mengganti 201 dengan 201 (untuk mengganti 2010 hingga 2019); ganti 200 dengan 200 (untuk menggantikan 2000 hingga 2009); Dan seterusnya.

Wally
sumber
0

Pilih tanggal dan jalankan kode ini di atasnya ..

On Error Resume Next
    For Each xcell In Selection            
        xcell.Value = CDate(xcell.Value)     
    Next xcell                              
End Sub
Kathryn
sumber
-1

Saya menggunakan mac.

Pergi ke excel preferensi> Edit> Opsi tanggal> Konversi sistem tanggal secara otomatis

Juga,

Buka Tabel & Filter> Tanggal grup saat memfilter.

Masalahnya mungkin dimulai ketika Anda menerima file dengan sistem tanggal yang berbeda, dan itu mengacaukan fungsi tanggal excel Anda

Stephenie
sumber
-2

Saya biasanya hanya membuat kolom tambahan untuk menyortir atau menjumlahkan tujuan jadi gunakan year(a1)&if len(month(a1))=1,),"")&month(a1)&day(a1).

Itu akan memberikan yyyymmddhasil yang bisa disortir. Menggunakan len(a1)just memungkinkan tambahan nol untuk ditambahkan selama berbulan-bulan 1-9.

Paul
sumber
2
Ini tidak akan membantu karena tanggal tidak dikenali sebagai tanggal. Juga, menggunakan kolom tambahan untuk tujuan penyortiran jarang diperlukan
CallumDA