Làm cách nào để định dạng byte một ô trong Excel dưới dạng KB, MB, GB, v.v.?


86

Tôi có một giá trị trong ô tính bằng byte. Nhưng không ai có thể đọc 728398112238. Tôi muốn nó nói 678,37GB

Để viết một công thức để định dạng nó tương đối dễ dàng (đây là: http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html )

Nhưng có cách nào để làm điều này như một 'định dạng' không? Tôi muốn có một số lớn trong ô, nhưng để nó hiển thị ở định dạng con người có thể đọc được.


3
Lưu ý nhanh nếu bạn quan tâm đến những thứ như thế này: "kB" là tiêu chuẩn (chữ 'k' viết thường, không phải chữ hoa). Nguồn: en.wikipedia.org/wiki/Kilobyte en.wikipedia.org/wiki/Kilo- Nếu bạn không quan tâm, vui lòng bỏ qua bài đăng của tôi :)
PonyEars

Liên kết trong bài viết này đã chết. Đây là một liên kết khác đến một giải pháp sử dụng công thức: social.technet.microsoft.com/Forums/en-US/…
Joost

Câu trả lời:


98

Bạn thực sự không thể thực hiện tính toán trong các tính năng định dạng của Excel. Tuy nhiên, bạn có thể sử dụng một cái gì đó như sau để ước tính sơ bộ:

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

1
Wow .. bạn đã xác nhận sự nghi ngờ của tôi rằng tôi không thể tính toán .. nhưng giải pháp của bạn là thiên tài! Tôi sẽ sử dụng cái đó hoặc cái gì đó gần giống. Cảm ơn!
RickMeasham

6
Đối với cài đặt khu vực có '' dưới dạng dấu phân cách nghìn và ',' là dấu phân cách bằng dấu phẩy: [<500000] # ## 0 "B"; [<500000000] # ## 0 "MB"; # ## 0 "GB"
Grastveit

1
Tôi xin lỗi, nhưng mã này sai! Chia cho "5" hoặc 500000 sẽ chuyển đổi giá trị thành một giá trị hoàn toàn khác. Tôi đã sử dụng giá trị "569692" và mã này đã cho tôi "1 MB"
Alper t. Turker

53

Đây là một cái mà tôi đã sử dụng: -

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

Có vẻ hoạt động tốt.


2
không hoàn hảo (bội số của 1000 so với 1024), nhưng đủ tốt và được ủng hộ. cảm ơn!
Skwerl

2
Kevin: kB / MB / GB chỉ thực sự đúng với bội số của 1000 (theo định nghĩa của SI, được sử dụng bởi Mac & ổ cứng). Tôi đoán điều này không thay đổi việc bạn muốn 1024 (được viết chính xác hơn là KiB / MiB / GiB, như được sử dụng trong các GUI của Linux), vì vậy chỉ cần chỉ ra rằng Windows duy trì ký hiệu lịch sử và khó hiểu này. Ký hiệu nhị phân đã được tiêu chuẩn hóa vào thế kỷ trước, vì vậy đã đến lúc họ sử dụng chương trình. ;-)
Luke Usherwood

1
Hoặc nếu bạn muốn byte, KB và MB thay vì KB, MB, GB:[<1000]#" B";[<1000000]0.00," KB";0.00,," MB"
Aaron Campbell

12

Mặc dù các điều kiện định dạng Excel sẽ chỉ hiển thị 1 trong 3 điều kiện liên quan đến kích thước số (chúng mã nó là "dương; âm; không; văn bản" nhưng tôi thích xem nó là: if isnumber và true; elseif isnumber và false; elseif number; elseif là văn bản )

vì vậy với tôi câu trả lời tốt nhất là của David cũng như nhận xét của Grastveit cho định dạng khu vực khác.

Đây là những cái tôi sử dụng tùy thuộc vào báo cáo tôi thực hiện.

[<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"

Bạn chọn đi!


12

Cách tiếp cận định dạng trên hoạt động nhưng chỉ dành cho ba cấp độ. KB, MB và GB đã sử dụng ở trên. Ở đây tôi đã mở rộng nó thành sáu. Bấm chuột phải vào (các) ô và chọn Định dạng Ô. Trong tab Số, chọn Tùy chỉnh. Sau đó, trong hộp Loại:, hãy đặt như sau:

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

Sau đó chọn OK. Điều này bao gồm B, KB và MB. Sau đó, với các ô giống nhau được chọn, hãy bấm Ruy-băng Trang chủ, Định dạng có Điều kiện, Quy tắc Mới. Chọn Chỉ định dạng các ô có chứa. Sau đó, bên dưới trong mô tả quy tắc, Chỉ định dạng các ô có, Giá trị ô, lớn hơn hoặc bằng 1000000000 (đó là 9 số không.) Sau đó nhấp vào Định dạng, tab Số, Tùy chỉnh và trong hộp Loại:, đặt như sau:

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

Chọn OK và chọn OK. Định dạng có điều kiện này sẽ chỉ thực hiện nếu giá trị lớn hơn 1.000.000.000. Và nó sẽ quan tâm đến phạm vi GB, TB và 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

Bất kỳ thứ gì lớn hơn PB sẽ chỉ hiển thị dưới dạng PB lớn hơn, ví dụ: 56,700 PB. Bạn có thể thêm một định dạng có điều kiện khác để xử lý các giá trị lớn hơn, EB, v.v.


1
Một lưu ý nhỏ: nếu trong cài đặt của bạn có một ngôn ngữ quy định các dấu phân cách khác, hãy thay thế các dấu phân cách trong các chuỗi ở trên bằng các dấu phân cách thích hợp. Trong ngôn ngữ của tôi, và. được hoán đổi nên tôi phải sử dụng: [<1000] ## 0,00 "B"; [<1000000] ## 0,00. "KB"; ## 0,00 .. "MB" và [<1000000000000] ## 0,00 ... "GB"; [<1000000000000000] ## 0,00 .... "TB"; #. ## 0,00 ..... "PB"
dùng1708042

10

Thay đổi nhẹ để làm cho nó hoạt động trên khu vực của tôi, Châu Âu (. Dưới dạng dấu phân cách hàng nghìn, dấu phẩy làm dấu phân cách thập phân):

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

Vẫn còn vấn đề về chuyển đổi dữ liệu (1000! = 1024) nhưng nó thực hiện công việc cho tôi.


4

Tôi không biết cách làm cho nó hiển thị cho bạn gigabyte nhị phân (bội số của 1024 * 1024 * 1024) nhưng bạn có thể làm cho nó hiển thị cho bạn gigabyte thập phân bằng cách sử dụng định dạng như:

0.00,,,"Gb"

2
Lưu ý rằng b là bit và B là byte. Một bit là 1/8 byte, vì vậy để tránh nhầm lẫn, hãy luôn đảm bảo sử dụng đúng chữ cái. Tương tự đối với các tiền tố như M cho mega (1000000 ×) và m cho milli (1/1000).
Liggliluff

Tôi thích sự đơn giản. Ngay cả khi nó không phải là bội số của 1,024, câu trả lời này vẫn hữu ích.
satoc 20/09/18

3

Công thức trên yêu cầu dấu trừ ở dòng đầu tiên: "= 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

Và, một giải pháp khác, là sử dụng ký hiệu kỹ thuật. (Điều đó giống như ký hiệu khoa học ngoại trừ số mũ luôn là bội số của 3.) Nhấp chuột phải vào (các) ô và chọn Định dạng Ô. Trong tab Số, chọn Tùy chỉnh. Sau đó, trong hộp Loại:, hãy nhập như sau:

##0.00E+00

Sau đó bấm OK. Thay vì K, M, v.v., bạn sẽ có +3, +6, v.v. Điều này sẽ hoạt động đối với số dương và số âm, cũng như số mũ dương và âm, -3 là m, -6 là u, v.v.

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

1

Dưới Tera sẽ ghi trên GB và hơn 999 GB ghi trên TB

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

HOẶC LÀ

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


1

Tôi sử dụng CDH hadoop và khi tôi xuất báo cáo excel, tôi gặp hai vấn đề;

1) chuyển đổi ngày tháng Linux thành ngày excel,
Đối với điều đó, hãy thêm một cột trống bên cạnh cột ngày tháng, cho phép hàng trên cùng là B4, dán công thức bên dưới và kéo "+" ĐEN đến hết ngày cuối cùng của bạn ở cuối cột. Sau đó, ẩn cột ban đầu

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

2) Chuyển đổi kích thước đĩa từ byte sang TB, GB và MB
, công thức tốt nhất cho điều đó là

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

nó sẽ cung cấp cho bạn các giá trị với 3 số thập phân chỉ định dạng ô -> Tùy chỉnh và dán đoạn mã trên vào đó


1

Nó hơi "vũ phu" nhưng có tác dụng;)

=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")))))

nhập mô tả hình ảnh ở đây


Xin chào, chào mừng bạn đến với Stack Overflow. Khi trả lời một câu hỏi đã có nhiều câu trả lời, hãy đảm bảo thêm một số thông tin chi tiết bổ sung về lý do tại sao câu trả lời bạn đang cung cấp là thực chất và không chỉ lặp lại những gì đã được người đăng ban đầu xem xét. Điều này đặc biệt quan trọng trong các câu trả lời "chỉ có mã", chẳng hạn như câu bạn đã cung cấp.
chb

1

Dán cái này bên cạnh giá trị của bạn (byte) và điều này sẽ tự động thay đổi nó thành bất kỳ kích thước giá trị nào của bạn.

=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

Tất cả các câu trả lời ở đây cung cấp các giá trị có lũy thừa là 10. Đây là định dạng sử dụng các đơn vị SI thích hợp (bội số của 1024, tức là Mebibyte, Gibibyte và Tebibyte):

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

Điều này hỗ trợ MiB, GiB và TiB hiển thị hai chữ số thập phân.


0

Sau khi xem câu trả lời ở đây, công thức này chỉ được cải thiện để có vị trí thập phân trên các giá trị lớn hơn và phục vụ cho các giá trị âm.

=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
Câu hỏi ban đầu bao gồm chi tiết về cách sử dụng công thức. Nhưng đó là về việc sử dụng một định dạng số. Giải pháp của bạn rất giống với giải pháp được liên kết ngoại trừ bạn xử lý các số âm. Thay vì đưa chúng vào các câu lệnh IF riêng biệt, hãy sử dụng ABS () để nhận giá trị tuyệt đối.
RickMeasham

0

Tôi nghi ngờ rất nhiều câu trả lời ở đây đã lỗi thời, vì tôi đã không nhận được kết quả mong đợi từ câu trả lời đã cho.

Nếu bạn có giá trị tính bằng KB mà bạn muốn định dạng theo kích thước, bạn có thể thử các cách sau.


Công thức

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


Giá trị ban đầu (tính bằng KB) => Đầu ra

952 => 952 KB

1514 => 1.51 MB

5122323 => 5.12 GB


0

Để có kết quả chính xác, tôi muốn tính toán nó, nhưng sử dụng định dạng hiển thị.

Giả sử ô A1 có giá trị 29773945664927.

  1. Đếm số dấu phẩy trong ô B1.

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

  2. Chia giá trị cho 1024 ^ B1 trong ô C1.

    = A1 / 1024 ^ B1

  3. Đơn vị hiển thị trong ô D1.

    = SWITCH (B1, 5, "PB", 4, "TB", 3, "GB", 2, "MB", 1, "KB", 0, "B")

  4. Ẩn ô B1.

ảnh chụp màn hình

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.