Nomor pad dengan panjang tertentu di Google Spreadsheet [ditutup]

33

Saya memiliki kolom dengan angka integer seperti ini: 1, 2, 3, 4, 5dan saya ingin membuat kolom lain dengan nilai-nilai ini empuk dengan panjang tiga seperti ini: 001, 002, 003, 004, 005.

Apakah mungkin untuk merangkai string menjadi panjang di Google Spreadsheet?

Saya tidak dapat menemukan fungsi standar untuk ini.

Slava Fomin II
sumber
2
Ini bukan apa yang Anda minta, tetapi mencapai efek yang sebanding dan mungkin menjadi solusi untuk tugas umum yang dicari orang: (1) pilih kolom dengan angka yang ingin Anda empuk. (2) Pilih Format> Nomor> Format Lainnya> Format Nomor Kustom ... (3) Dalam dialog, masukkan sebanyak 0 digit yang harus dimiliki string nomor, misalnya 000 pada contoh Anda.
tophcito
2
Seharusnya tidak ditutup begitu saja, tetapi harus dipindahkan ke webapps.stackexchange.com
Lennart Rolland

Jawaban:

53

Cara yang disarankan adalah menggunakan fungsi TEXT () .

Ringkasan cepat tentang bagaimana Anda akan menggunakannya dalam kasus Anda:

=TEXT(5,"000")

Akan menghasilkan:

005

Tentu saja Anda akan mengganti literal 5 dengan referensi ke sel lain di mana nomor sumbernya.

Lennart Rolland
sumber
Apakah akan ada cara untuk mengisi ruang?
Álex
Saya kira hanya "000" dengan "" di atas
Lennart Rolland
12

Jika Anda hanya ingin perubahan tampilan, Anda dapat menerapkan format angka kustom "000" ke sel.masukkan deskripsi gambar di sini

Pilih sel, Klik Format> Nomor> Lebih Format> Custom format angka ... .

Dari bantuan editor Documents :

Digit dalam angka. Angka 0 yang tidak signifikan akan muncul di hasil.

sylr
sumber
2
Bisakah Anda mengedit jawaban Anda untuk memperluas tentang bagaimana OP akan melakukan ini?
Burgi
3

Solusi sementara

Inilah solusi sementara yang saya buat.

Formula kerja

Cukup gunakan rumus ini:

`=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)`

Ganti 3dengan panjang padding dan 0dengan karakter padding. A2adalah sumber padding.

Penjelasan

Pertimbangkan spreadsheet berikut:

-------------
| A   |  B  |
-------------
| 1   | 001 |
-------------
| 2   | 002 |
-------------
| 31  | 031 |
-------------
| 45  | 045 |
-------------
| 500 | 500 |
-------------

Kami memiliki kolom awal (A) dengan bilangan bulat yang ingin kami pad. Kolom (B) akan berisi formula khusus untuk memproses data.

Menggabungkan!

Pertama-tama kita membutuhkan cara untuk menggabungkan nilai dari Akolom dengan string padding. Kita dapat melakukan ini dengan CONCATENATEfungsi:

=CONCATENATE("00", A2)

Ulangi!

Saat ini, karakter padding 0diulang dua kali dalam formula kami. Ini tidak bagus. Kita dapat menggunakan REPTfungsi untuk mengulangi karakter padding kami beberapa kali seperti ini:

=REPT("0", 2)

Formula ini akan diulang 0dua kali. Mari kita gabungkan mereka:

=CONCATENATE(REPT("0", 2), A2)

Hitung panjang!

Itu lebih baik. Tetapi panjang padding memiliki nilai konstan dalam formula kami dan itu tidak akan bekerja dengan angka lebih besar dari 9. Kita bisa memperbaikinya dengan menghitung panjang string yang empuk (menggunakan LENfungsi) dan mengurangi itu dari panjang target kami:

=3-LEN(A2)

Mari tambahkan ke formula kami:

=CONCATENATE(REPT("0", 3-LEN(A2)), A2)

Namun, kami akan mendapatkan hasil negatif untuk nilai yang lebih besar dari 999 dan itu akan merusak REPTfungsinya (jumlah pengulangan tidak bisa negatif).

Kami dapat dengan mudah memperbaikinya dengan menambahkan kondisi:

=IF(LEN(A2)<3, "APPLY REPT", "OUTPUT AS IS")

Mari kita menyatukan perdamaian terakhir:

=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)
Slava Fomin II
sumber
Sempurna! Ini adalah jawaban terbaik dan bekerja dengan nilai-nilai non-numerik ;-D
t3chb0t