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


117

ฉันพยายามประมวลผลข้อมูลบางอย่างใน Excel ข้อมูลรวมถึงหมายเลขบัญชีที่เป็นตัวเลขและสตริงตัวเลขยาวอื่น ๆ (เช่น MEID ของโทรศัพท์มือถือ) ฉันไม่ได้ดำเนินการทางคณิตศาสตร์กับสตริงเหล่านี้ดังนั้นฉันต้องการให้ Excel ปฏิบัติต่อพวกเขาเป็นข้อความธรรมดา

นี่คือสิ่งที่ทำให้ฉันถั่ว (นี่คือ Excel 2010):

  1. ใช้ตัวเลขที่ยาวเช่น 1240800388917 แล้ววางลงในเซลล์ในแผ่นงานใหม่
  2. รูปแบบเซลล์เริ่มต้นของ Excel เป็นแบบทั่วไปดังนั้นสตริงจะถูกแสดงในรูปแบบทางวิทยาศาสตร์เป็น 1.2408E + 12
  3. คลิกขวาที่เซลล์เลือก Format Cells ตั้งค่ารูปแบบเป็น Text

เซลล์ยังคงแสดงเป็นสัญลักษณ์ทางวิทยาศาสตร์แม้ว่ารูปแบบได้รับการตั้งค่าเป็นข้อความ

ตอนนี้ถ้าฉันทำตามขั้นตอนในลำดับอื่น:

  1. จัดรูปแบบเซลล์ว่างเป็นข้อความ คลิกขวาที่เซลล์เลือก Format Cells ตั้งค่ารูปแบบเป็น Text
  2. ใช้ตัวเลขที่ยาวเช่น 1240800388917 และวางลงในเซลล์ที่จัดรูปแบบข้อความ

ตอนนี้เซลล์จะแสดงเป็นสตริงและไม่อยู่ในเครื่องหมายทางวิทยาศาสตร์

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

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

ทำไม Excel ถึงทำเช่นนี้

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


จำนวนยาว1240800388917ถูกคัดลอกมาจากเซลล์อื่นหรือไม่ หรือแค่ข้อความธรรมดาอย่างเช่นจาก Notepad
สัน

คำตอบ:


24

อ๊ะความทรงจำของข้อมูลกลับมาจากตอนที่ฉันทำการตรวจสอบไขว้จำนวนมากใน Excel (ไม่อีกแล้ว) .. เมื่อคุณต่อสายตัวเลขที่ยาวเข้าสู่ Excel ลองพูดว่า 12345678901234567890 (20 หลัก) โดยทั่วไป Excel จะแปลงให้คุณ ซึ่งหมายความว่าหมายเลข 20 หลักที่คุณเพิ่งแตะได้ถูกตัดกลับไปเป็นตัวเลขสำคัญประมาณสิบห้าเท่านั้น

หมายเหตุเช่นกัน: การแปลงเป็นการตัดทอนซึ่งต่างจากการปัดเศษ (12345678901234567890 คือ 1.2345678901234 6 E + 19 แต่ excel จะแสดงให้คุณ 1.2345678901234 5 E + 19)

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


1
ใช่ฉันเห็นพฤติกรรมนั้นเมื่อสตริงตัวเลขของฉันมีตัวเลขที่สำคัญมากกว่า 15 หลัก 12345678901234567890 กลายเป็น 1.23456789012345E + 19 ตามที่คุณพูด เมื่อฉันคลิกที่เซลล์กล่องแก้ไขจะแสดงสตริงที่ถูกตัดทอนและเติมด้วยศูนย์เป็น 12345678901234500000 สิ่งที่แปลกคือมันทำสิ่งเดียวกันสำหรับตัวเลขที่ไม่เกินขีด จำกัด 15 หลักของ excel ถ้าฉันวางใน 12345678901234 มันจะแสดงเป็น 1.23457E + 13 แต่เมื่อฉันคลิกมันกล่องแก้ไขยังคงแสดงสตริงเดิม ทีนี้สิ่งที่แปลกก็คือถ้าฉันจัดรูปแบบเซลล์นี้เป็นข้อความ น่ารำคาญ
Michael Levy

7
อันที่จริงแล้วเป็นเรื่องเล็ก ๆ น้อย ๆ ในการแสดงผล - การตั้งค่ารูปแบบจากข้อความทั่วไปจะไม่แสดงเป็นสตริงดั้งเดิมทันที แต่ถ้าคุณเข้าไปในและแก้ไขข้อมูล (เช่นคลิกที่โซนแก้ไขและคลิกเข้าไป ) มันจะอัปเดตให้ตรงกับที่คุณใส่ทุกอย่าง
tanantish

11
แฮ็คด่วน: ตั้งค่าการจัดรูปแบบในคอลัมน์ที่เหมาะสมคัดลอกวางไปยังแผ่นจดบันทึกแล้วไปที่ Excel
Brian

9
สิ่งนี้ไม่ควรเป็นคำตอบที่ยอมรับ : ดูรายการถัดไปด้านล่าง
javadba

3
ดังนั้นคุณจึงระลึกถึงและย้ำปัญหา ตอนนี้คุณจะแก้ไขได้อย่างไร
user3932000

162

สิ่งนี้ใช้ได้กับฉันใน Excel 2010 เพียงเลือกคอลัมน์คลิกขวาจัดรูปแบบเซลล์กำหนดเองและเลือกตัวเลือกที่ระบุว่า 0 (ตัวเลือกที่สองด้านล่างทั่วไป)


25
นี่เป็นคำตอบที่ดีกว่าคำตอบที่บอกว่า "คุณโชคไม่ดี"! ฉันมีไฟล์ CSV ซึ่งมีปัญหานี้และโซลูชันการจัดรูปแบบที่กำหนดเองทำงานได้อย่างสมบูรณ์
davidair

4
ต้องเป็นคำตอบที่ยอมรับได้บางคนควร / สามารถเปลี่ยนแปลงได้?
qwertzman

11
สิ่งนี้ดูเหมือนว่าจะตัดทอนในการทดสอบของฉัน การใช้ Excel 2013 ฉันป้อนสิ่งต่อไปนี้ลงในเซลล์ 12345678901234567890 เมื่อฉันกด Enter จะปรากฏเป็น 1.23457E + 19 และค่าพื้นฐานจะเปลี่ยนเป็น 12345678901234500000 ดังนั้นจึงมีการสูญเสียข้อมูล สิ่งนี้ไม่ตอบคำถามเดิม
Michael Levy

1
ฉันอยู่ที่นี่อีกหนึ่งปีต่อมากลับมาตอบคำตอบเดิมอีกครั้งและหวังว่าฉันจะสามารถโหวตได้อีกครั้ง
billynoah

7
คำตอบนี้แก้ไขการจัดรูปแบบ แต่ไม่รักษาข้อมูลที่ป้อน นั่นคือเหตุผลที่ฉันไม่สามารถยอมรับว่ามันเป็นคำตอบที่ถูกต้อง ฉันโพสต์วิดีโอสั้น ๆ เพื่อแสดง เมื่อคุณทำตามคำแนะนำเหล่านี้แล้วป้อนจำนวนเต็มแบบยาวเช่น 12345678901234567890 คุณจะสูญเสียความแม่นยำเมื่อถือเป็นตัวเลขแม้ว่าจะแสดงเป็นสัญลักษณ์ที่ไม่ใช่วิทยาศาสตร์ก็ตาม Excel ถือว่าเป็นค่า 12345678901234500000 เท่านั้นโดยถือว่าเป็นข้อความคุณสามารถรักษาตัวเลขทั้งหมด ดูyoutu.be/7EDcR7TQpYs
Michael Levy

13

เครื่องหมายอัญประกาศเดี่ยวเดี่ยว 'ก่อนหมายเลขจะบังคับให้ Excel รักษาตัวเลขเป็นข้อความ (รวมถึงการจัดแนวซ้ายเริ่มต้น) และหากคุณมีข้อผิดพลาดการตั้งค่าสถานะมันจะแสดงเป็นหมายเลขที่จัดเก็บเป็นข้อผิดพลาดข้อความในเซลล์


นี่ไม่ใช่กรณีเสมอไป บางครั้ง Excel ทำให้ข้อมูลของฉันถูกทำลายแม้จะเป็นเครื่องหมายอัญประกาศเดี่ยวชั้นนำ
Cerin

3
Cerin ซึ่งเป็นจุดที่ไม่เคยประมาทความสามารถของ Excel (หรือของ Microsoft) ในการทำสิ่งที่ไม่สามารถอธิบายได้หรือทำซ้ำได้อย่างสมบูรณ์ อย่างไรก็ตามเคล็ดลับอะพอสโทรฟีมักใช้งานได้ตามที่โฆษณาไว้
dav

1
คุณสามารถทำสิ่งนี้เป็นกลุ่มได้ไหม ฉันมีข้อมูลที่มีเซลล์ 60000 เซลล์ที่ฉันต้องการแปลงเป็นข้อความ
vaibhavcool20

หรือเพียงแค่เลือกจัดรูปแบบเป็นข้อความในเมนูคลิกขวาจัดรูปแบบเซลล์;)
Shayan

13

ฉันพบว่าใน Office 2010 หากคุณจัดรูปแบบคอลัมน์ก่อนแล้วจึงวางข้อมูลจะแสดงตัวเลขขนาดใหญ่ได้อย่างถูกต้อง


นั่นอาจเป็นเพราะมันถูกเก็บไว้เป็นสตริง จะเกิดอะไรขึ้นถ้าคุณสร้างอีกเซลล์หนึ่งขึ้นมาว่าเนื้อหาของเซลล์คูณด้วย 2
Peter Mortensen

1
สิ่งนี้ใช้งานได้ใน Excel 2016 / Office 365 ฉันเลือกเซลล์ทั้งหมดจัดรูปแบบให้เป็นข้อความแล้ววางข้อมูลที่คัดลอกแล้วและไม่แสดงด้วยเครื่องหมายทางวิทยาศาสตร์ที่น่ารำคาญ ขอบคุณ!
frezq

สิ่งนี้ใช้ได้กับฉันใน Google ชีต ... "รูปแบบ> หมายเลข> 0" ก่อนที่จะวางใน vals และไม่ได้แปลงเป็นสัญลักษณ์ทางวิทยาศาสตร์ในขณะที่ยังไม่สูญเสียค่าสิ้นสุด (ปัดเศษของ vals) ซึ่งเกิดขึ้นบ่อยเกินไป .
twknab

12

ลองสิ่งนี้ ... มันใช้งานได้กับ Excel 2013

=""&a1

โดยที่ a1 เก็บค่าตัวเลข หลังจากนั้นให้คัดลอกคอลัมน์แล้ววางไปที่คอลัมน์เดิม


ใช้งานได้ใน Excel 2010 เช่นกัน
พอล G

2
ในฐานะที่เป็นโหนดด้านข้าง: ="1240800388917"ทำเช่นเดียวกัน
nixda

5

คุณสามารถจัดรูปแบบเซลล์ตามที่กำหนดเอง> #

สิ่งนี้สามารถนำไปใช้ได้หลังจากที่คุณวางข้อมูลลงในคอลัมน์ แต่คุณต้องทำก่อนที่จะบันทึกสเปรดชีต

ฉันทำงานมากกับบาร์โค้ด (UPC) และ excel จะจัดรูปแบบเป็นสัญลักษณ์ทางวิทยาศาสตร์ตามค่าเริ่มต้น ไดรฟ์ฉันถั่ว! ทำไมนี่ไม่ใช่ตัวเลือกที่ฉันไม่เคยรู้เลย


แต่นั่นไม่ได้แปลงตัวเลขเป็นข้อความซึ่งอาจทำให้เกิดปัญหาในภายหลัง แต่ดี ...
Joris MEYS

5

ฉันรู้อายุของคำถาม แต่นี่คือสิ่งที่ฉันได้รับหลังจากค้นหาโดย Google และไม่ได้ตอบคำถามของฉัน (เพราะเหตุใดการจัดรูปแบบเป็นข้อความไม่ทำงานและทำไมตัวเลขจึงถูกลดลงเหลือ 15 หลักหลังจากรูปแบบ เป็นข้อความ).

คำตอบสั้น ๆ Enterคือคุณไม่สามารถทำงานได้กับจำนวนของคุณในแบบที่คุณชอบหลังจากที่คุณป้อนค่าตัวเลขและเคาะ ช่วงเวลาที่คุณทำเช่นนั้นหมายเลขจะถูกตัดเหลือ 15 หลักและแสดงเป็นเลขชี้กำลัง

นี่ไม่ใช่ข้อผิดพลาดมันเป็นคุณสมบัติ

สิ่งที่คุณทำหลังจากนั้นจะใช้ค่าที่ถูกตัดทอนดังนั้นเคล็ดลับการจัดรูปแบบจะไม่ช่วย อย่างไรก็ตามคุณสามารถใช้Text to columnsตัวเลือกการแปลงสัญกรณ์ชี้แจงถึงข้อความ (คลิกที่ส่วนหัวของคอลัมน์คลิกText to dataแล้วDelimited, Next, untick กล่องคั่นทั้งหมดเลือกTextในColumn data formatแล้วFinish) จะมีค่าที่แปลงเป็นข้อความและแสดงผลได้ทันทีจำนวน 15 หลัก แต่มันจะเป็นเพียง 15 หลักดังนั้นหากคุณมีจำนวนที่มากขึ้นส่วนที่เหลือจะหายไป

เพื่อให้มีตัวเลขในสเปรดชีตตรงตามที่คุณพิมพ์ลงไปคุณต้องเก็บไว้เป็นข้อความ ดังนั้นคุณต้องนำหน้าด้วยเครื่องหมายอะโพสโทรฟีหรือจัดรูปแบบเซลล์เป็นข้อความก่อนพิมพ์ / คัดลอกค่าลงใน หาก "บางครั้งใช้งานไม่ได้" ขออภัยคุณทำอะไรผิดพลาดหรือมีการแก้ไขอัตโนมัติบางอย่าง (ถ้าคุณใช้เครื่องหมายอัญประกาศเดี่ยวและจำนวนมาก> 15 หลัก Excel ถือว่าเป็นค่าที่ไม่ถูกต้องและแจ้งเตือนเซลล์ ข้อความดังนั้นคำพูดนี้ไม่ได้เป็นข้อมูลส่วนบุคคลหรือคำวิจารณ์)

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

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


3

Excel 2010: ใช้งานได้หนึ่งคอลัมน์ในแต่ละครั้ง แต่จะไม่ทำงานทีละแถว เลือกคอลัมน์หรือชุดย่อยของคอลัมน์จากแท็บ Data เลือก "Text to Columns" และข้ามไปทางขวาเพื่อ "Finish" ไม่มีสัญกรณ์ทางวิทยาศาสตร์มากขึ้น

ฉันเห็นด้วยกับผู้ใช้ Excel หลายคนมันผิดกฎหมายที่ไม่มีตัวเลือกในการป้องกันสัญกรณ์ทางวิทยาศาสตร์!


1
ในการทดสอบของฉันใน Excel 2007 ผมต้องคลิกNext >สองครั้งแล้วเลือก“ข้อความ” Finishและคลิก คุณสามารถใช้สิ่งนี้กับแถวโดยการแปลงการแปลงและการแปลงกลับ
สกอตต์

1

ใน Excel 2013 มีสิ่งเดียวกันเกิดขึ้นกับฉันและฉันเพิ่งไปที่ Format Cells -> Number จากนั้นตรวจสอบให้แน่ใจว่าตำแหน่งทศนิยมถูกตั้งค่าเป็น "0"


1
คล้ายกับคำตอบที่ไม่ระบุชื่อด้านบน แต่การเลือก "ตัวเลข" อย่างใดทำให้รู้สึกมากกว่าการเลือก "กำหนดเอง" .. และมันก็สูงกว่าในรายการ อย่างไรก็ตามมันก็ทำสิ่งเดียวกัน แต่ฉันชอบสิ่งนี้ดีกว่า
billynoah

0

เลือกเซลล์ทั้งหมด - หรือเพื่อให้สิ่งที่ง่าย - เลือกทั้งสเปรดชีตและคลิกจัดรูปแบบเซลล์แล้วข้อความ

โดยอัตโนมัติสเปรดชีตทั้งหมดของคุณจะใช้ข้อความ คุณไม่ต้องทำมันต่อเซลล์


อนิจจานี่ใช้งานไม่ได้ ข้อความที่จะเป็นเพียงในทางวิทยาศาสตร์ว่าเป็นปัญหาที่เกิดขึ้นทั้งหมด ...
Joris MEYS

0
  1. คัดลอก / วางปัญหาฟิลด์ลงในแผ่นงานใหม่ในคอลัมน์ A

  2. คัดลอก / วางคอลัมน์ A ลงในไฟล์ข้อความ

  3. จัดรูปแบบคอลัมน์ B เป็นข้อความและวางไฟล์ข้อความในคอลัมน์ B

  4. ในคอลัมน์ C:

    =IF(ISNUMBER(SEARCH("+",B1)),A1,"")
    
  5. แปลงคอลัมน์ C เป็นรูปแบบตัวเลขโดยไม่มีทศนิยม

  6. คัดลอก / วางคอลัมน์ C ลงในไฟล์ข้อความ

  7. จัดรูปแบบคอลัมน์ D เป็นข้อความและวางไฟล์ข้อความเป็นคอลัมน์ D

  8. ในคอลัมน์ E:

    =IF(IF(IF(B2=A2,A2,D2)=0,A2,IF(B2=A2,A2,D2))=0,"",IF(IF(B2=A2,A2,D2)=0,A2,IF(B2=A2,A2,D2)))
    
  9. คัดลอก / วางคอลัมน์ E ลงในแผ่นจดบันทึก

  10. ลบข้อมูลในฟิลด์ปัญหาและคอลัมน์รูปแบบเป็นข้อความ

  11. คัดลอก / วางข้อมูลจากไฟล์ข้อความไปยังฟิลด์ปัญหา


0

สิ่งนี้ใช้ได้ผลกับฉันใน Excel 2013 รวมถึงการคัดลอกการวางเซลล์ออกไปยังโปรแกรมอื่น การกรองข้อมูลช่วยโดยเฉพาะอย่างยิ่งสำหรับขั้นตอนการแก้ไข

  1. เลือกเซลล์ที่คุณต้องการ
  2. ใช้รูปแบบตัวเลข "ข้อความ" (ลอง Alt, H, N จากนั้น "Text")

จากนั้นสำหรับแต่ละเซลล์ที่คุณต้องการ:

  1. เข้าสู่โหมดแก้ไข (ลอง F2)
  2. ยืนยันการแก้ไขของคุณด้วย Enter (ดีสำหรับคอลัมน์) หรือแท็บ (เหมาะสำหรับแถว) อย่าดัดแปลงเนื้อหา

หมายเลขของคุณจะปรากฏตามปกติแม้จะอยู่ที่ 100 หลัก =)


ใช้ไม่ได้กับหลายเซลล์ (Excel 365)
Albin

0

Excel ทำลายข้อมูล CSV / ข้อมูลจำนวนมากเช่นนี้ ทำงานกับ LibreOffice ถ้าเป็นไปได้มันจะไม่ทำเช่นนี้นั่นคือถ้าคุณเปิดแผ่นงานเดียวกัน (.xlsx) ใน Libreoffice 'ตัวเลข' ขนาดใหญ่ซึ่งเป็นสตริงจริง ๆ จะไม่แสดงในโน้ตวิทยาศาสตร์ (ซึ่งเป็นการตัดสินใจที่ไร้สาระ โดย Excel) ความเที่ยงตรงของไฟล์ของ LibreOffice ยอดเยี่ยม: เปิดไฟล์. xlsx เดียวกันใน Excel อีกครั้งและสัญกรณ์ทางวิทยาศาสตร์ในทันที "ทำงาน" เหมือนปกติ

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