Giải pháp tạm thời
Đây là cách giải quyết tạm thời mà tôi nghĩ ra.
Công thức làm việc
Chỉ cần sử dụng công thức này:
`=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)`
Thay thế 3
bằng chiều dài đệm và 0
với ký tự đệm. A2
là một nguồn đệm.
Giải trình
Hãy xem xét các bảng tính sau:
-------------
| A | B |
-------------
| 1 | 001 |
-------------
| 2 | 002 |
-------------
| 31 | 031 |
-------------
| 45 | 045 |
-------------
| 500 | 500 |
-------------
Chúng tôi có cột ban đầu (A) với các số nguyên mà chúng tôi muốn đệm. Cột (B) sẽ chứa công thức đặc biệt để xử lý dữ liệu.
Liên kết!
Trước hết chúng ta cần một cách để nối giá trị từ A
cột với chuỗi đệm. Chúng ta có thể làm điều này với CONCATENATE
chức năng:
=CONCATENATE("00", A2)
Nói lại!
Ngay bây giờ, nhân vật đệm 0
được lặp lại hai lần trong công thức của chúng tôi. Điều này không tốt. Chúng ta có thể sử dụng REPT
chức năng để lặp lại ký tự đệm của mình nhiều lần như thế này:
=REPT("0", 2)
Công thức này sẽ lặp lại 0
hai lần. Hãy kết hợp chúng:
=CONCATENATE(REPT("0", 2), A2)
Tính chiều dài!
Cái đó tốt hơn. Nhưng độ dài đệm có giá trị không đổi trong công thức của chúng tôi và điều đó sẽ không hoạt động với các số lớn hơn 9. Chúng tôi có thể khắc phục điều này bằng cách tính độ dài của chuỗi đệm (sử dụng LEN
hàm) và trừ nó khỏi độ dài mục tiêu của chúng tôi:
=3-LEN(A2)
Hãy thêm nó vào công thức của chúng tôi:
=CONCATENATE(REPT("0", 3-LEN(A2)), A2)
Tuy nhiên, chúng tôi sẽ nhận được kết quả âm cho các giá trị lớn hơn 999 và nó sẽ phá vỡ REPT
chức năng (số lần lặp lại không thể âm).
Chúng ta có thể dễ dàng sửa nó bằng cách thêm một điều kiện:
=IF(LEN(A2)<3, "APPLY REPT", "OUTPUT AS IS")
Chúng ta hãy đặt những hạt đậu cuối cùng lại với nhau:
=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)