ฉันจะจัดรูปแบบไบต์เซลล์ใน Excel เป็น KB, MB, GB ฯลฯ ได้อย่างไร


88

ฉันมีค่าในเซลล์ที่มีหน่วยเป็นไบต์ แต่ไม่มีใครสามารถอ่าน 728398112238 ได้ฉันจะพูดว่า 678.37GB

ในการเขียนสูตรเพื่อจัดรูปแบบค่อนข้างง่าย (นี่คือ: http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html )

แต่มีวิธีใดบ้างที่จะทำให้เป็น 'รูปแบบ'? ฉันต้องการให้ตัวเลขจำนวนมากในเซลล์ แต่ให้แสดงเป็นรูปแบบที่มนุษย์อ่านได้


3
หมายเหตุด่วนหากคุณสนใจสิ่งเหล่านี้: "kB" เป็นมาตรฐาน (ตัวพิมพ์เล็ก 'k' ไม่ใช่ตัวพิมพ์ใหญ่) แหล่งที่มา: en.wikipedia.org/wiki/Kilobyte en.wikipedia.org/wiki/Kilo-หากคุณไม่สนใจโปรดเพิกเฉยต่อโพสต์ของฉัน :)
PonyEars

ลิงค์ในกระทู้นี้ตายแล้ว นี่คือลิงค์อื่นไปยังโซลูชันโดยใช้สูตร: social.technet.microsoft.com/Forums/en-US/…
Joost

คำตอบ:


100

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

[<500000]#,##0" B";[<500000000]#,##0,," MB";#,##0,,," GB"

1
ว้าว .. คุณได้ยืนยันความสงสัยของฉันว่าฉันคำนวณไม่ได้ .. แต่วิธีแก้ปัญหาของคุณเป็นอัจฉริยะ! ฉันจะใช้สิ่งนั้นหรือสิ่งที่ใกล้เคียง ขอบคุณ!
RickMeasham

6
สำหรับการตั้งค่าภูมิภาคที่มี "เป็นตัวคั่นพันและ", "เป็นตัวคั่นด้วยเครื่องหมายจุลภาค: [<500000] # ## 0" B "; [<500000000] # ## 0" MB "; # ## 0" GB "
Grastveit

1
ฉันขอโทษ แต่รหัสนี้ไม่ถูกต้อง! การหารด้วย "5" หรือ 500000 จะแปลงค่าเป็นค่าที่ต่างกันโดยสิ้นเชิง ฉันใช้ค่า "569692" และรหัสนี้ให้ "1 MB"
Alper t Turker

54

นี่คือสิ่งที่ฉันใช้: -

[<1000000]0.00," KB";[<1000000000]0.00,," MB";0.00,,," GB"

ดูเหมือนจะทำงานได้ดี


2
ไม่สมบูรณ์แบบ (ทวีคูณ 1000 vs 1024) แต่ดีพอ & โหวตเพิ่ม ขอบคุณ!
Skwerl

2
เควิน: kB / MB / GB ถูกต้องจริง ๆ กับการทวีคูณ 1000 เท่านั้น (ตามที่กำหนดโดย SI ใช้โดย Mac และฮาร์ดไดรฟ์) ฉันเดาว่าสิ่งนี้ไม่เปลี่ยนแปลงที่คุณต้องการ 1024 (เขียนได้อย่างถูกต้องกว่า KiB / MiB / GiB ตามที่ใช้ใน Linux GUIs) ดังนั้นเพียงแค่ชี้ให้เห็นว่าเป็น Windows ที่รักษาสัญกรณ์ประวัติศาสตร์และสับสนนี้ สัญกรณ์ไบนารีเป็นมาตรฐานเมื่อศตวรรษที่แล้วดังนั้นจึงเป็นช่วงเวลาที่พวกเขาได้รับจากโปรแกรมนี้ ;-)
Luke Usherwood

1
หรือถ้าคุณต้องการไบต์ KB และ MB แทนที่จะเป็น KB, MB, GB:[<1000]#" B";[<1000000]0.00," KB";0.00,," MB"
Aaron Campbell

13

วิธีการจัดรูปแบบข้างต้นใช้ได้ แต่สำหรับสามระดับเท่านั้น ข้างต้นใช้ KB, MB และ GB ที่นี่ฉันได้ขยายเป็นหก คลิกขวาที่เซลล์แล้วเลือกจัดรูปแบบเซลล์ ภายใต้แท็บตัวเลขให้เลือกกำหนดเอง จากนั้นในช่อง Type: ให้ใส่สิ่งต่อไปนี้:

[<1000]##0.00"  B";[<1000000]##0.00," KB";##0.00,," MB"

จากนั้นเลือกตกลง ซึ่งครอบคลุม B, KB และ MB จากนั้นเมื่อเลือกเซลล์เดียวกันแล้วให้คลิก Home ribbon, การจัดรูปแบบตามเงื่อนไข, กฎใหม่ เลือกจัดรูปแบบเฉพาะเซลล์ที่มี จากนั้นด้านล่างในคำอธิบายกฎจัดรูปแบบเฉพาะเซลล์ที่มีค่าเซลล์มากกว่าหรือเท่ากับ 1000000000 (นั่นคือ 9 ศูนย์) จากนั้นคลิกที่รูปแบบแท็บตัวเลขกำหนดเองและในกล่องประเภท: ให้ใส่สิ่งต่อไปนี้:

[<1000000000000]##0.00,,," GB";[<1000000000000000]##0.00,,,," TB";#,##0.00,,,,," PB"

เลือกตกลงและตกลง การจัดรูปแบบตามเงื่อนไขนี้จะมีผลต่อเมื่อค่ามากกว่า 1,000,000,000 และจะดูแลช่วง GB, TB และ PB

567.00  B
  5.67 KB
 56.70 KB
567.00 KB
  5.67 MB
 56.70 MB
567.00 MB
  5.67 GB
 56.70 GB
567.00 GB
  5.67 TB
 56.70 TB
567.00 TB
  5.67 PB
 56.70 PB

อะไรก็ตามที่ใหญ่กว่า PB จะแสดงเป็น PB ที่ใหญ่กว่าเช่น 56,700 PB คุณสามารถเพิ่มการจัดรูปแบบตามเงื่อนไขอื่นเพื่อจัดการกับค่าที่ใหญ่กว่า EB และอื่น ๆ


1
หมายเหตุเล็กน้อย: หากใน installatoin คุณมีโลแคลที่กำหนดตัวคั่นอื่นให้แทนที่ตัวคั่นในสตริงด้านบนด้วยตัวคั่นที่เหมาะสม ในภาษาของฉันและ. ถูกสลับดังนั้นฉันจึงต้องใช้: [<1000] ## 0,00 "B"; [<1000000] ## 0,00. "KB"; ## 0,00 .. "MB" และ [<1000000000000] ## 0,00 ... "GB"; [<1000000000000000] ## 0,00 .... "TB"; #. ## 0,00 ..... "PB"
user1708042

12

แม้ว่าเงื่อนไขรูปแบบ Excel จะแสดงเพียง 1 ใน 3 เงื่อนไขที่เกี่ยวข้องกับขนาดตัวเลข (พวกเขาเขียนโค้ดเป็น"positive; negative; zero; text"แต่ฉันชอบที่จะมองว่าเป็น: if isnumber and true; elseif isnumber and false; elseif number; elseif เป็นข้อความ )

สำหรับฉันคำตอบที่ดีที่สุดคือความคิดเห็นของ David และ Grastveit สำหรับรูปแบบภูมิภาคอื่น ๆ

นี่คือสิ่งที่ฉันใช้ขึ้นอยู่กับรายงานที่ฉันทำ

[<1000000]#,##0.00," KB";[<1000000000]#,##0.00,," MB";#,##0.00,,," GB"

[>999999999999]#,##0.00,,,," TB";[>999999999]#,##0.00,,," GB";#.##0.00,," MB"

[<1000000]# ##0,00 " KB";[<1000000000]# ##0,00  " MB";# ##0,00   " GB"

[>999999999999]# ##0,00    " TB";[>999999999]# ##0,00   " GB";# ##0,00  " MB"

เลือกของคุณ!


10

เปลี่ยนแปลงเล็กน้อยเพื่อให้ทำงานในภูมิภาคของฉันยุโรป (. เป็นตัวคั่นหลักพัน, ลูกน้ำเป็นตัวคั่นทศนิยม):

[<1000000]#.##0,00" KB";[<1000000000]#.##0,00.." MB";#.##0,00..." GB"

ยังคงเป็นปัญหาเดิมในการแปลงข้อมูล (1,000! = 1024) แต่มันก็ใช้ได้ผลสำหรับฉัน


4

ฉันไม่รู้วิธีที่จะทำให้มันแสดงกิกะไบต์ไบนารี (ทวีคูณของ 1024 * 1024 * 1024) แต่คุณสามารถทำให้มันแสดงกิกะไบต์ทศนิยมโดยใช้รูปแบบเช่น

0.00,,,"Gb"

2
สังเกตว่า b เป็นบิตและ B คือไบต์ บิตคือ 1/8 ของไบต์ดังนั้นเพื่อหลีกเลี่ยงความสับสนโปรดใช้ตัวอักษรที่ถูกต้องเสมอ เช่นเดียวกับคำนำหน้าเช่น M สำหรับ mega (1000000 ×) และ m สำหรับ milli (1/1000)
Liggliluff

ฉันชอบความเรียบง่าย แม้ว่าจะไม่ใช่ทวีคูณของ 1,024 คำตอบนี้ก็มีประโยชน์
satoc

การคูณ 1024 จะไม่เป็น KB, MB, GB อยู่ดี นั่นจะเป็น KiB, MiB, GiB
Nilpo

4

สูตรด้านบนต้องมีเครื่องหมายลบในบรรทัดแรก: "= IF (A1 <-999500000000"

=IF(A1<-999500000000,TEXT(A1,"#,##.#0,,,"" TB"""),
IF(A1<-9995000000,TEXT(A1,"#,##.#0,,,"" GB"""),
IF(A1<-9995000,TEXT(A1,"#,##0,,"" MB"""),
IF(A1<-9995,TEXT(A1,"#,##0,"" KB"""),
IF(A1<-1000,TEXT(A1,"#,##0"" B """),
IF(A1<0,TEXT(A1,"#,##0"" B """),
IF(A1<1000,TEXT(A1,"#,##0"" B """),
IF(A1<999500,TEXT(A1,"#,##0,"" KB"""),
IF(A1<999500000,TEXT(A1,"#,##0,,"" MB"""),
IF(A1<999500000000,TEXT(A1,"#,##.#0,,,"" GB"""),
TEXT(A1,"#,##.#0,,,,"" TB""")))))))))))

3

และอีกวิธีหนึ่งคือการใช้สัญกรณ์วิศวกรรม (นั่นเหมือนกับสัญกรณ์ทางวิทยาศาสตร์ยกเว้นเลขชี้กำลังเป็นผลคูณของ 3 เสมอ) คลิกขวาที่เซลล์แล้วเลือกจัดรูปแบบเซลล์ ภายใต้แท็บตัวเลขให้เลือกกำหนดเอง จากนั้นในช่อง Type: ให้ใส่สิ่งต่อไปนี้:

##0.00E+00

จากนั้นคลิกตกลง แทนที่จะเป็น K, M ฯลฯ คุณจะมี +3, +6 เป็นต้นซึ่งจะใช้ได้กับจำนวนบวกและลบเช่นเดียวกับเลขชี้กำลังบวกและลบ -3 คือ m, -6 คือ u เป็นต้น

567.00E-06
  5.67E-03
 56.70E-03
567.00E-03
  5.67E+00
 56.70E+00
567.00E+00
  5.67E+03
 56.70E+03
567.00E+03
  5.67E+06

2

น้อยกว่า Tera จะเขียนบน GB และมากกว่า 999 GB เขียนบน TB

[<1000] 0 "GB"; [> 999] 0.0, "TB"

หรือ

[<1000] 0 "GB"; [> = 1000] 0.0, "TB"


1

ฉันใช้ CDH hadoop และเมื่อฉันส่งออกรายงาน excel ฉันมีปัญหาสองประการ

1) แปลงวันที่ของลินุกซ์เป็นวันที่ excel
เพื่อที่จะเพิ่มคอลัมน์ว่างถัดจากคอลัมน์วันที่สมมติว่าแถวบนสุดคือ B4 วางสูตรด้านล่างแล้วลากBLACK "+"ไปจนสุดวันสุดท้ายของคุณเมื่อสิ้นสุด คอลัมน์. จากนั้นซ่อนคอลัมน์เดิม

=(((B4/1000/60)/60)/24)+DATE(1970|1|1)+(-5/24)

2) แปลงขนาดดิสก์จากไบต์เป็น TB, GB และ MB
สูตรที่ดีที่สุดสำหรับสิ่งนี้คือ

[>999999999999]# ##0.000,,,," TB";[>999999999]# ##0.000,,," GB";# ##0.000,," MB"

มันจะให้ค่าคุณด้วยทศนิยม 3 ตำแหน่งเพียงแค่จัดรูปแบบเซลล์ -> กำหนดเองและวางโค้ดด้านบนที่นั่น


1

มันเป็น "พลังเดรัจฉาน" เล็กน้อย แต่ได้ผล;)

=IF(E4/1000<1;CONCATENATE(E4;" bps");IF(E4/1000<1000;CONCATENATE(ROUND(E4/1000;2);" kbps");IF(E4/1000000<1000;CONCATENATE(ROUND(E4/1000000;2);" mbps");IF(E4/1000000000<1000;CONCATENATE(ROUND(E4/1000000000;2);" gbps")))))

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


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

1

วางสิ่งนี้ถัดจากค่าของคุณ (ไบต์) และสิ่งนี้จะเปลี่ยนเป็นขนาดของค่าของคุณโดยอัตโนมัติ

=IF(G10>=1099511627776,CONCATENATE(ROUND((G10/1024/1024/1024/1024),1)," TB"),IF(G10>=1073741824,CONCATENATE(ROUND((G10/1024/1024/1024),1)," GB"),IF(G10>=1048576,CONCATENATE(ROUND((G10/1024/1024),1)," MB"),IF(G10>=1024,CONCATENATE(ROUND((G10/1024),1)," KB"),IF(G10>=1,CONCATENATE((G10)," BYTES"),0)))))


1

คำตอบทั้งหมดที่นี่ให้ค่าด้วยพาวเวอร์ 10 นี่คือรูปแบบที่ใช้หน่วย SI ที่เหมาะสม (ทวีคูณ 1024 เช่น Mebibytes, Gibibytes และ Tebibytes):

[>1099511627776]#.##,,,," TiB";[>1073741824]#.##,,," GiB";0.##,," MiB"

รองรับ MiB, GiB และ TiB ที่แสดงทศนิยมสองตำแหน่ง


คุณหารด้วยพลัง 10 MiB, GiB และ TiB หมายถึง 1024 ^ 2, 1024 ^ 3, 1024 ^ 4
แซม

@ คุณอาจจะพลาดคำตอบสำหรับความคิดเห็นของคุณ
kap

2
ไม่ @ แซมถูกต้อง คำตอบนี้ใช้ 1024 ทวีคูณเป็นเงื่อนไขอย่างถูกต้อง แต่การจัดรูปแบบยังคงเป็นแบบ 10
Nilpo

0

หลังจากเห็นคำตอบที่นี่เพิ่งปรับปรุงสูตรนี้ให้มีตำแหน่งทศนิยมสำหรับค่าที่ใหญ่กว่าและรองรับค่าลบ

=IF(A1<999500000000,TEXT(A1,"#,##.#0,,,"" TB"""),
IF(A1<-9995000000,TEXT(A1,"#,##.#0,,,"" GB"""),
IF(A1<-9995000,TEXT(A1,"#,##0,,"" MB"""),
IF(A1<-9995,TEXT(A1,"#,##0,"" KB"""),
IF(A1<-1000,TEXT(A1,"#,##0"" B """),
IF(A1<0,TEXT(A1,"#,##0"" B """),
IF(A1<1000,TEXT(A1,"#,##0"" B """),
IF(A1<999500,TEXT(A1,"#,##0,"" KB"""),
IF(A1<999500000,TEXT(A1,"#,##0,,"" MB"""),
IF(A1<999500000000,TEXT(A1,"#,##.#0,,,"" GB"""),
TEXT(A1,"#,##.#0,,,,"" TB""")))))))))))

1
คำถามเดิมมีรายละเอียดเกี่ยวกับการใช้สูตร แต่มันเกี่ยวกับการใช้รูปแบบตัวเลข วิธีแก้ปัญหาของคุณคล้ายกับการเชื่อมโยงมากยกเว้นคุณจัดการกับจำนวนลบ แทนที่จะรวมไว้ในคำสั่ง IF แยกต่างหากให้ใช้ ABS () เพื่อรับค่าสัมบูรณ์
RickMeasham

0

ฉันสงสัยว่าคำตอบจำนวนมากที่นี่ล้าสมัยเนื่องจากฉันไม่ได้รับผลลัพธ์ที่คาดหวังจากคำตอบที่ระบุ

หากคุณมีค่าเป็น KB ที่คุณต้องการจัดรูปแบบตามขนาดคุณสามารถลองทำดังต่อไปนี้


สูตร

[<1000]#" KB ";[<1000000]#0,00 " MB";0,## " GB"


ค่าเริ่มต้น (เป็น KB) => เอาต์พุต

952 => 952 KB

1514 => 1.51 MB

5122323 => 5.12 GB


0

เพื่อให้ได้ผลลัพธ์ที่แน่นอนฉันควรคำนวณ แต่ใช้รูปแบบการแสดงผล

สมมติว่าเซลล์ A1 มีค่า 29773945664927

  1. นับจำนวนลูกน้ำในเซลล์ B1

    = QUOTIENT (LEN (A1) -1,3)

  2. หารค่าด้วย 1024 ^ B1 ในเซลล์ C1

    = A1 / 1024 ^ B1

  3. หน่วยแสดงผลในเซลล์ D1

    = สวิตช์ (B1, 5, "PB", 4, "TB", 3, "GB", 2, "MB", 1, "KB", 0, "B")

  4. ซ่อนเซลล์ B1

ภาพหน้าจอ

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