Tambahkan nol nol terkemuka / 0 ke nilai Excel yang ada hingga panjang tertentu

299

Ada banyak, banyak pertanyaan dan jawaban kualitas pada SO tentang bagaimana mencegah nol terkemuka tidak dilepaskan saat mengimpor ke atau mengekspor dari Excel. Namun, saya sudah memiliki spreadsheet yang memiliki nilai di dalamnya yang dipotong sebagai angka ketika, pada kenyataannya, mereka seharusnya ditangani sebagai string. Saya perlu membersihkan data dan menambahkan nol terkemuka kembali.

Ada bidang yang harus terdiri dari empat karakter dengan angka nol di depan yang memunculkan string menjadi empat karakter. Namun:

"23" should be "0023", 
"245" should be "0245", and
"3829" should remain "3829"

Pertanyaan: Apakah ada rumus Excel untuk memasangkan kembali 0 ini ke nilai-nilai ini sehingga semuanya adalah empat karakter?

Catatan: ini mirip dengan masalah Kode Pos yang lama di mana kode pos daerah New England mendapatkan nol di depannya dan Anda harus menambahkannya kembali.

Tandai A
sumber
Apakah periode seharusnya ada di sana "3829."?
Josh Lee
Tidak, tapi itu posisi yang tepat untuk "." karakter dalam kalimat menurut salinan terpercaya saya dari Strunk & White. Dihapus untuk kejelasan.
Mark A
7
Saya akan menerimanya kecuali bahwa itu dalam blok kode, di mana saya cenderung mengambil hal-hal yang lebih harfiah. (Juga, Excel menyimpan setiap angka sebagai float, sehingga bisa menjadi tempat desimal.)
Josh Lee
4
@ josh upvote untuk pengejaan yang benar "terima itu kecuali itu".
Michiel van der Blonk

Jawaban:

506
=TEXT(A1,"0000")

Namun fungsi TEXT dapat melakukan hal-hal mewah lainnya seperti format tanggal, juga.

GSerg
sumber
4
OH TUHAN! Sempurna! Anda belajar sesuatu yang baru setiap hari. Saya bahkan memiliki beberapa buku Excel dog-eared dan tidak pernah menemukan ini - akan digunakan kapan saja saya memiliki data kode pos berbasis Excel di masa depan.
Markus
1
Ini bekerja dengan baik dengan angka desimal ... tapi bagaimana dengan heksadesimal? Saya tidak dapat menemukan cara untuk membuat 0s terkemuka bekerja dengannya ...
Shadow
10
@shadow Nomor heksadesimal untuk Excel adalah string, bukan angka. Jadi menanganinya sebagai string: =RIGHT("0000" + A1, 4).
GSerg
8
@shadow, DEC2HEX mengambil argumen tempat. Jadi =DEC2HEX(HEX2DEC(A1),4)berfungsi dengan baik untuk mengisi nomor hex.
Raz Wilson
9
@ MBs. Mereka tidak mengubah sintaks. Versi Excel Anda kebetulan digunakan; sebagai pemisah parameter, yang diambil dari pengaturan bahasa Windows Anda.
GSerg
78

Cara yang lebih efisien (kurang menonjol) untuk melakukan ini adalah melalui pemformatan khusus.

  1. Sorot kolom / array yang ingin Anda gaya.
  2. Klik ctrl+ 1atau Format -> Format Sel.
  3. Di tab Angka, pilih Kustom.
  4. Atur pemformatan Kustom ke 000 #. (nol nol nol #)

Perhatikan bahwa ini sebenarnya tidak mengubah nilai sel. Ini hanya menampilkan nol terkemuka di lembar kerja.

Musa
sumber
8
Ini berfungsi dengan baik jika tidak perlu mempertahankan nol terkemuka melewati sel asli tetapi tidak akan berfungsi jika string perlu digunakan di tempat lain. Itu akan membuat sel-sel ditampilkan sebagai 0004, 01032, 0284 tetapi jika Anda mencoba untuk menggabungkan string dalam sel yang terpisah itu akan menunjukkan, misalnya, 4-1032-284 bukannya 0004-01032-0284 yang diinginkan
Ashton Sheets
@ AshtonSheets ya, seperti yang saya catat di jawaban itu hanya menampilkan nol terkemuka, itu tidak melakukan apa-apa dengan nilai aktual. Namun, ada situasi di mana saya menggunakan ini bukan =text()karena kenyamanan dan kurangnya formula yang terlibat.
Moses
7
Sebagai referensi, ini seharusnya benar 0000, bukan 000#. Kalau tidak, itu tidak berfungsi untuk 0.
PearsonArtPhoto
2
Bagi mereka dengan masalah saya di atas, jawabannya adalah untuk menukar # (hash) dengan 0 (nol). # Memberi Anda tidak ada karakter ketika tidak ada nilai tetapi 0 memberi Anda nol ketika tidak ada nilai! Masuk akal dan bekerja dengan baik: $ 0,0 ,, "M"
Andrew
1
Juga tidak berfungsi untuk saya menggunakan 000 # tetapi berfungsi ketika saya hanya menetapkan format khusus sebagai 0000 untuk nomor empat digit, 00000 untuk lima, 000000 untuk enam dll. Jelas ini hanya membantu untuk nomor format yang lebih pendek
Hilary
16

Saya menekan halaman ini mencoba untuk memasukkan nilai heksadesimal ketika saya menyadari bahwa DEC2HEX()menyediakan fitur yang sangat gratis .

Anda hanya perlu menambahkan parameter kedua. Misalnya, mengikat untuk berubah 12menjadi 0C
DEC2HEX(12,2)=> 0C
DEC2HEX(12,4)=> 000C
... dan seterusnya

MonoThreaded
sumber
9

Saya tidak yakin apakah ini baru di Excel 2013, tetapi jika Anda mengklik kanan pada kolom dan mengatakan "Spesial" sebenarnya ada opsi yang telah ditentukan untuk Kode ZIP dan Kode ZIP + 4. Magic.

masukkan deskripsi gambar di sini

ProVega
sumber
6
Saran bagus dan pembaruan. Perlu memberi Microsoft -1 untuk mendorong siapa pun untuk menyimpan SSN dalam spreadsheet.
Mark A
8

Saya tahu ini dijawab beberapa saat yang lalu tetapi hanya berdentang dengan solusi sederhana di sini yang saya terkejut tidak disebutkan.

=RIGHT("0000" & A1, 4)

Setiap kali saya perlu pad saya menggunakan sesuatu seperti di atas. Secara pribadi saya menemukannya solusi paling sederhana dan lebih mudah dibaca.

zgirod
sumber
1

Jika Anda menggunakan pemformatan khusus dan perlu menggabungkan nilai-nilai itu di tempat lain, Anda dapat menyalinnya dan menempelkan Nilai Khusus -> di tempat lain di lembar (atau pada lembar yang berbeda), lalu menggabungkan nilai-nilai itu.

JeffK627
sumber
1

Bahkan ini akan bekerja dengan baik

REPT(0,2-LEN(F2)&F2

di mana 2 adalah jumlah digit, untuk 0 ~ 9 -> itu akan menampilkan 00 hingga 09 sisanya tidak akan ditambahkan.

pengguna2902302
sumber