2009-10-07 42 views
60

Tôi có một giá trị trong một ô bằng byte. Nhưng không ai có thể đọc 728398112238. Tôi thà nó nói 678.37GBLàm thế nào tôi có thể định dạng byte một ô trong Excel dưới dạng KB, MB, GB, v.v ...?

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

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

+1

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

+0

Liên kết trong bài đăng này đã chết. Đây là một liên kết khác đến giải pháp sử dụng công thức: https://social.technet.microsoft.com/Forums/en-US/1063a039-f26b-4bfe-a9eb-2704ae0575dc/format-for-kbmbgbtb?forum=excel – Joost

Trả lời

65

Bạn không thể thực sự tính toán trong các tính năng định dạng của Excel. Bạn có thể sử dụng một cái gì đó như sau để làm một ước tính sơ mặc dù:

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

Cập nhật: liên kết mới là khác dường như đã trở nên lỗi thời (mặc dù tôi đã có thể click vào nó vẫn) http://excel-answers.com/microsoft/Excel/34882622/using-comma-to-scale-large-numbers.aspx

+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 nó hoặc một cái gì đó gần. Cảm ơn! – RickMeasham

+3

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

+2

Trang web eggheadcafe cho biết" Trang bạn yêu cầu đã bị xóa ". – RyPeck

3

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

0.00,,,"Gb" 
37

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

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

Dường như 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 bỏ phiếu. cảm ơn! –

+1

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

+0

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 "' –

6

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

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

Tuy nhiên cùng một vấn đề về chuyển đổi dữ liệu, nhưng nó có công việc cho tôi.

0

Sau khi xem câu trả lời ở đây, chỉ cần cải thiện công thức này để có cá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 các chi tiết về cách sử dụng công thức. Nhưng đó là về việc sử dụng đị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 trừ khi bạn xử lý các số âm. Thay vì bao gồm chúng trong các câu lệnh IF riêng biệt, sử dụng ABS() để nhận giá trị tuyệt đối. – RickMeasham

7

Mặc dù Excel định dạng điều kiện này sẽ chỉ hiển thị 1 trong tổng số 3 điều kiện liên quan đến kích thước số (họ mã nó như "tích cực; tiêu cực; zero; text" nhưng tôi thích nhìn thấy nó như: nếu ISNUMBER và trueif số khác và số sai, số khác; số khác là văn bản)

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

Dưới đây là những điều 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" 

Hãy lựa chọn!

2

Ít hơn Tera sẽ viết trên GB & hơn 999 GB viết trên TB

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

HOẶC

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

1

Trên công thức đòi hỏi một dấu trừ ở dòng đầu tiên: '= IF (A1 < -999.500.000.000'

=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"""))))))))))) 
Các vấn đề liên quan