mengapa kolom Excel diformat sebagai angka kehilangan nol di depannya ketika kolom diformat sebagai teks?

8

Saya harus mengekspor spreadsheet ke CSV. Salah satu kolom adalah kode pos dengan kode pos pantai timur yang memiliki nol di depan. Ketika saya memformat ulang kolom itu sebagai Teks berharap untuk mempertahankan nol di ekspor, segera kolom berubah dari kanan dibenarkan ke kiri dibenarkan dan nol di depan hilang! Saya akan berharap sebaliknya, bahwa itu mungkin kehilangan nol jika diformat ulang dari teks ke angka.

Bagaimana saya mempertahankan nol di depan itu?

mrblint
sumber

Jawaban:

6

Teori

Excel memiliki dua gagasan yang berbeda dan tidak terkait ketika menyangkut data dalam sel: nilai mentah / tersimpan , dan nilai tampilan .

Nilai "mentah" atau disimpan adalah data aktual dalam representasi yang tidak diformat. The tipe dari data mentah bisa menjadi nomor, teks, tanggal, dsb

Nilai "display" adalah bagaimana data diformat. Saat menggunakan GUI Excel, Anda melihat nilai tampilan, bukan nilai mentah.

Masalahnya adalah, ketika Anda mengekspor ke CSV, itu mengambil nilai mentah dan mengekspornya, bukan nilai tampilan! Jadi, bahkan jika Anda memformat data untuk mengandung nol terkemuka menggunakan dialog Format Cells, jika nilai yang mendasarinya tidak mengandung nol terkemuka, maka ekspor Anda tidak akan baik.

Anda perlu memformat semua data sebagai teks (dalam lembar bentang Excel), dan kemudian menambahkan nol depan bila perlu. Ini akan menghilangkan nilai tampilan yang membuat Anda berpikir bahwa Anda memiliki nol di awal dalam nilai mentah (Anda tidak).

Larutan

Nol tidak ada sebagai bagian dari konten sel, hanya pemformatan, jadi ketika Anda memformat sebagai teks Anda tidak mendapatkannya. Anda dapat mencoba menggunakan rumus di kolom berikutnya, mis. Jika Anda memiliki 5 digit (?) Kode pos dengan entri di A2 taruh rumus ini di B2

=TEXT(A2,"00000")

salin formula ke bawah kolom

Hasil dari itu adalah nilai teks (mungkin dengan nol awal aktual). Setelah Anda memiliki nilai ini di kolom lain, Anda dapat menyalin dan melakukan "Tempel Nilai" di atas kolom asli untuk mengganti semua data yang mendasarinya dengan data nol-empuk. Kemudian hapus kolom tambahan.

barry houdini
sumber
Halo Barry, jawaban yang sangat baik, saya menambahkan sedikit latar belakang "teori" daripada mengirim jawaban lain ... jangan ragu untuk mengedit seperti yang diinginkan, ini adalah jawaban kolaboratif :-)
allquixotic
@allquixotic, tidak ada masalah, tambahan yang bagus
barry houdini
2

Anda memiliki angka di dalam sel, bukan teks. Nilai numerik 02010 sama dengan angka 2010. Memformat itu sebagai teks memberikan representasi teks normal 2010, bukan 02010.

Untuk mempertahankan angka nol di depan, masukkan data sebagai string, bukan angka. Misalnya, masukkan = "02010" sebagai nilainya.

Untuk hanya menampilkan angka nol di depan, dengan asumsi semua angka memiliki panjang yang sama (katakanlah, lima digit), gunakan format Kustom. Pilih 0 dari Daftar Kustom, lalu ubah ke 00000. Semua angka akan ditampilkan sebagai lima digit, dengan nol di depan. Namun, jika Anda menyimpan data ini ke file CSV, nol di depannya tidak akan ada. Satu-satunya cara untuk menyimpannya adalah dengan memasukkan data sebagai string.

Charles Engelke
sumber
Kami mendapatkan data ini dari berbagai pihak ketiga. Sepertinya kita kurang beruntung, karena kita berada di tangan orang-orang yang memasukkan data dan tidak dapat memaksa mereka untuk melakukannya dengan cara yang cerdas. Saya terkejut bahwa mengubahnya menjadi teks dilucuti nol. IMO itu adalah efek samping, bukan sekadar representasi string dari nilai yang ditampilkan, sedangkan saya harapkan sel yang diformat sebagai angka untuk memotong nol di depannya.
mrblint
0

Sudah lama sejak saya menggunakan Excel, tapi saya selalu menggunakan awalan nol awal dengan 'dan Excel akan memperlakukannya sebagai string daripada mencoba menafsirkannya sebagai angka.

Sander Steffann
sumber