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 3
dengan panjang padding dan 0
dengan karakter padding. A2
adalah 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 A
kolom dengan string padding. Kita dapat melakukan ini dengan CONCATENATE
fungsi:
=CONCATENATE("00", A2)
Ulangi!
Saat ini, karakter padding 0
diulang dua kali dalam formula kami. Ini tidak bagus. Kita dapat menggunakan REPT
fungsi untuk mengulangi karakter padding kami beberapa kali seperti ini:
=REPT("0", 2)
Formula ini akan diulang 0
dua 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 LEN
fungsi) 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 REPT
fungsinya (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)