เพิ่มเลขศูนย์นำหน้า / 0 ไปยังค่า Excel ที่มีอยู่ตามความยาวที่กำหนด


299

มีคำถามมากมายและคำตอบด้านคุณภาพมากมายเกี่ยวกับวิธีการป้องกันไม่ให้ศูนย์นำถูกตัดออกเมื่อนำเข้าหรือส่งออกจาก Excel อย่างไรก็ตามฉันมีสเปรดชีตที่มีค่าอยู่ในนั้นซึ่งถูกตัดทอนเป็นตัวเลขเมื่อจริงแล้วพวกเขาควรได้รับการจัดการเป็นสตริง ฉันต้องล้างข้อมูลและเพิ่มศูนย์นำหน้ากลับเข้าไป

มีฟิลด์ที่ควรมีสี่ตัวอักษรโดยมีศูนย์นำไปสู่การขยายสตริงเป็นสี่อักขระ อย่างไรก็ตาม:

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

คำถาม: มีสูตร Excel เพื่อย้อนกลับ 0 เหล่านี้ไปยังค่าเหล่านี้เพื่อให้พวกเขาทั้งสี่ตัวอักษร?

หมายเหตุ: นี่คล้ายกับปัญหารหัสไปรษณีย์อายุที่ซึ่งรหัสไปรษณีย์ในเขตนิวอิงแลนด์ลดลงเป็นศูนย์นำและคุณต้องเพิ่มกลับเข้าไปใหม่


ระยะเวลาที่ควรจะมี"3829."หรือไม่
Josh Lee

ไม่ แต่นั่นคือตำแหน่งที่เหมาะสมสำหรับ "" ตัวละครในประโยคตามสำเนาที่เชื่อถือได้ของฉันของ Strunk & White ลบออกเพื่อความชัดเจน
ทำเครื่องหมาย A

7
ฉันยอมรับว่ายกเว้นว่ามันอยู่ในบล็อคโค้ดซึ่งฉันมักจะทำสิ่งต่าง ๆ อย่างแท้จริง (นอกจากนี้ Excel จะเก็บตัวเลขทุกตัวเป็นทศนิยมเพื่อที่จะได้เป็นทศนิยม)
Josh Lee

4
@ Josh upvote เพื่อการสะกดที่ถูกต้อง "ยอมรับว่ายกเว้น"
Michiel van der Blonk

คำตอบ:


506
=TEXT(A1,"0000")

อย่างไรก็ตามฟังก์ชัน TEXTสามารถทำสิ่งแฟนซีอื่น ๆ เช่นการจัดรูปแบบวันที่ได้เช่นกัน


4
พระเจ้าช่วย! ที่สมบูรณ์แบบ! คุณเรียนรู้สิ่งใหม่ทุกวัน ฉันยังมีหนังสือ Excel ที่มีหูสุนัขหลายเล่มและไม่เคยเจอสิ่งนี้ - จะใช้ทุกครั้งที่ฉันมีข้อมูลรหัสไปรษณีย์ที่อิงกับ Excel ในอนาคต
ทำเครื่องหมาย A

1
สิ่งนี้ทำงานได้ดีกับตัวเลขทศนิยม ... แต่จะเป็นเลขฐานสิบหก? ฉันไม่สามารถหาวิธีที่จะทำให้การทำงานชั้นนำ 0s กับมัน ...
เงา

10
@shadow เลขฐานสิบหกสำหรับ Excel เป็นสตริงไม่ใช่ตัวเลข =RIGHT("0000" + A1, 4)ดังนั้นจัดการกับมันเป็นสตริง:
GSerg

8
@shadow, DEC2HEXรับอาร์กิวเมนต์ตำแหน่ง ดังนั้น=DEC2HEX(HEX2DEC(A1),4)ทำงานได้ดีกับตัวเลขฐานสิบหกแผ่น
Raz Wilson

9
@mcs พวกเขาไม่ได้เปลี่ยนไวยากรณ์ Excel เวอร์ชันของคุณใช้;เป็นตัวคั่นพารามิเตอร์ซึ่งใช้จากการตั้งค่าภาษา Windows ของคุณ
GSerg

78

วิธีการทำเช่นนี้มีประสิทธิภาพมากขึ้น (น้อยกว่าเสือก) คือผ่านการจัดรูปแบบที่กำหนดเอง

  1. เน้นคอลัมน์ / อาร์เรย์ที่คุณต้องการจัดรูปแบบ
  2. คลิกctrl+ 1หรือรูปแบบ -> จัดรูปแบบเซลล์
  3. ในแท็บตัวเลขให้เลือกกำหนดเอง
  4. ตั้งค่าการจัดรูปแบบที่กำหนดเองเป็น 000 # (ศูนย์ศูนย์ศูนย์ #)

โปรดทราบว่าสิ่งนี้ไม่ได้เปลี่ยนค่าของเซลล์ จะแสดงเลขศูนย์นำหน้าในแผ่นงานเท่านั้น


8
วิธีนี้ใช้งานได้ดีหากไม่จำเป็นต้องเก็บค่าศูนย์นำหน้าไว้ในเซลล์เดิม แต่จะไม่ทำงานหากจำเป็นต้องใช้สตริงอื่นทุกที่ มันจะทำให้เซลล์แสดงเป็น 0004, 01032, 0284 แต่ถ้าคุณพยายามรวมสตริงในเซลล์ที่แยกต่างหากมันจะแสดงตัวอย่างเช่น 4-1032-284 แทนที่จะเป็นที่ต้องการ 0004-01032-0284
Ashton Sheets

@AshtonSheets ใช่ดังที่ฉันได้บันทึกไว้ในคำตอบมันจะแสดงเฉพาะเลขศูนย์นำหน้ามันไม่ได้ทำอะไรกับมูลค่าที่แท้จริง อย่างไรก็ตามมีหลายสถานการณ์ที่ฉันใช้สิ่งนี้แทน=text()เพราะความสะดวกสบายและไม่มีสูตรที่เกี่ยวข้อง
โมเสส

7
สำหรับการอ้างอิงนี้จริงควรจะเป็นไม่ได้0000 000#มิฉะนั้นจะใช้งานไม่ได้สำหรับ 0.
PearsonArtPhoto

2
สำหรับผู้ที่มีปัญหาของฉันข้างต้นคำตอบคือการสลับ # (แฮช) เป็น 0 (ศูนย์) # ให้คุณไม่มีตัวอักษรเมื่อไม่มีค่า แต่ 0 จะให้ค่าเป็นศูนย์เมื่อไม่มีค่า! ทำให้รู้สึกและใช้งานได้ดี: $ 0.0 ,, "M"
แอนดรู

1
ยังไม่ได้ผลสำหรับฉันที่ใช้ # 000 แต่ทำงานเมื่อฉันเพิ่งระบุรูปแบบที่กำหนดเองเป็น 0000 สำหรับตัวเลขสี่หลัก 00000 สำหรับห้า 000000 สำหรับหกเป็นต้นเห็นได้ชัดว่านี่เป็นประโยชน์สำหรับตัวเลขรูปแบบที่สั้นลงเท่านั้น
Hilary

16

ฉันกดหน้านี้เพื่อพยายามลดค่าเลขฐานสิบหกเมื่อฉันรู้ว่าDEC2HEX()มีคุณสมบัติที่ฟรีมาก

คุณเพียงแค่ต้องเพิ่มพารามิเตอร์ตัวที่สอง ตัวอย่างเช่นการผูกให้กลาย12เป็น0C
DEC2HEX(12,2)=> 0C
DEC2HEX(12,4)=> 000C
... และอื่น ๆ


9

ฉันไม่แน่ใจว่านี่เป็นของใหม่ใน Excel 2013 หรือไม่ถ้าคุณคลิกขวาที่คอลัมน์และพูดว่า "พิเศษ" จะมีตัวเลือกที่กำหนดไว้ล่วงหน้าสำหรับรหัสไปรษณีย์และรหัสไปรษณีย์ + 4 เวทมนตร์

ป้อนคำอธิบายรูปภาพที่นี่


6
ข้อเสนอแนะและการปรับปรุงที่ดีเยี่ยม จำเป็นต้องให้ Microsoft -1 เพื่อกระตุ้นให้ทุกคนเก็บ SSN ในสเปรดชีต
ทำเครื่องหมาย

8

ฉันรู้ว่าสิ่งนี้ได้รับคำตอบเมื่อไม่นานมานี้ แต่เพิ่งพูดคุยกับวิธีแก้ปัญหาง่ายๆที่ฉันไม่แปลกใจเลย

=RIGHT("0000" & A1, 4)

เมื่อใดก็ตามที่ฉันต้องการแผ่นฉันใช้สิ่งที่ต้องการข้างต้น โดยส่วนตัวฉันพบว่ามันเป็นทางออกที่ง่ายที่สุดและอ่านง่ายขึ้น


1

หากคุณใช้การจัดรูปแบบที่กำหนดเองและจำเป็นต้องเชื่อมค่าเหล่านั้นที่อื่นคุณสามารถคัดลอกและวางพิเศษ -> ค่าที่อื่น ๆ ในแผ่นงาน (หรือบนแผ่นงานที่แตกต่างกัน) จากนั้นเชื่อมต่อค่าเหล่านั้น


1

แม้จะใช้งานได้ดี

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

โดยที่ 2 คือจำนวนหลักทั้งหมดสำหรับ 0 ~ 9 -> จะแสดง 00 ถึง 09 ที่เหลือจะไม่มีการเพิ่มอะไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.