ทางออกชั่วคราว
นี่เป็นวิธีแก้ปัญหาชั่วคราวที่ฉันคิดขึ้นมา
สูตรการทำงาน
เพียงใช้สูตรนี้:
`=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)`
แทนที่3
ด้วยความยาวของช่องว่างภายในและ0
ด้วยอักขระเสริม A2
เป็นแหล่งที่มา
คำอธิบาย
พิจารณาสเปรดชีตต่อไปนี้:
-------------
| A | B |
-------------
| 1 | 001 |
-------------
| 2 | 002 |
-------------
| 31 | 031 |
-------------
| 45 | 045 |
-------------
| 500 | 500 |
-------------
เรามีคอลัมน์เริ่มต้น (A) ที่มีจำนวนเต็มที่เราต้องการแพด คอลัมน์ (B) จะมีสูตรพิเศษเพื่อประมวลผลข้อมูล
Concatenate!
ก่อนอื่นเราต้องมีวิธีการเรียงค่าจากA
คอลัมน์ด้วยการเติมสตริง เราสามารถทำได้ด้วยCONCATENATE
ฟังก์ชั่น:
=CONCATENATE("00", A2)
ทำซ้ำ!
ตอนนี้ตัวละครซ้อนภายใน0
ซ้ำแล้วซ้ำอีกในสูตรของเรา มันไม่ดี เราสามารถใช้REPT
ฟังก์ชั่นเพื่อทำซ้ำตัวละครของเราได้หลายครั้งดังนี้:
=REPT("0", 2)
สูตรนี้จะทำซ้ำ0
สองครั้ง มารวมกัน:
=CONCATENATE(REPT("0", 2), A2)
คำนวณความยาว!
นั่นดีกว่า. แต่ความยาวการเติมมีค่าคงที่ในสูตรของเราและนั่นจะไม่ทำงานกับตัวเลขที่มากกว่า 9 เราสามารถแก้ไขได้โดยการคำนวณความยาวของสตริง padded (โดยใช้LEN
ฟังก์ชั่น) และลบออกจากความยาวเป้าหมายของเรา:
=3-LEN(A2)
มาเพิ่มลงในสูตรของเรา:
=CONCATENATE(REPT("0", 3-LEN(A2)), A2)
อย่างไรก็ตามเราจะได้รับผลลัพธ์เชิงลบสำหรับค่าที่มากกว่า 999 และจะทำลายREPT
ฟังก์ชัน (จำนวนการทำซ้ำไม่สามารถเป็นค่าลบ)
เราสามารถแก้ไขได้อย่างง่ายดายโดยการเพิ่มเงื่อนไข:
=IF(LEN(A2)<3, "APPLY REPT", "OUTPUT AS IS")
ลองใส่ peaces สุดท้ายเข้าด้วยกัน:
=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)