2009-10-07 376 views
60

我在一个以字节为单位的单元格中有一个值。但是,没有人可以阅读728398112238.我宁愿它说678.37GB如何在Excel中将单元格的字节格式化为KB,MB,GB等?

要写出一个公式对其进行格式化比较容易(这是一个:http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html

但是有什么办法做到这一点的“格式” ?我希望在单元格中拥有大数字,但将其显示为可读格式。

+1

快速,如果在所有你感兴趣的是这样的东西纸条:“ kB“是标准的(小写字母'k',不是大写字母)来源: http://en.wikipedia.org/wiki/Kilobyte http://en.wikipedia.org/wiki/Kilo-如果你不是'没有兴趣,请忽略我的帖子:) – PonyEars 2013-03-22 02:00:45

+0

这篇文章中的链接已经死了。以下是使用公式的解决方案的另一个链接:https://social.technet.microsoft.com/Forums/zh-CN/1063a039-f26b-4bfe-a9eb-2704ae0575dc/format-for-kbmbgbtb?forum=excel – Joost 2015-11-19 06:24:33

回答

65

你不能真正在Excel的格式化功能中进行计算。您可以使用像下面这样做虽然粗略估计:

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

更新:其他新链接似乎已经过时了(虽然我能够点击它仍然) http://excel-answers.com/microsoft/Excel/34882622/using-comma-to-scale-large-numbers.aspx

+1

哇..你已经证实我怀疑我不能做计算..但你的解决方案是天才!我会使用那个或其他的东西。谢谢! – RickMeasham 2009-10-07 22:36:05

+3

对于使用''千分隔符和','作为逗号分隔符的区域设置:[<500000]### 0“B”; [<500000000]### 0“MB”;### 0“GB “ – Grastveit 2013-04-25 11:52:32

+2

eggheadcafe网站说:”您请求的页面被删除。“ – RyPeck 2013-07-25 18:47:10

3

我不知道的方式,以使其显示您的二进制千兆字节(1024 * 1024 * 1024的倍数),但你可以把它使用的格式一样告诉你十进制千兆字节:

0.00,,,"Gb" 
37

这里是我一直在使用的: -

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

似乎工作正常。

+2

不完美(1000与1024的倍数),但足够好和upvoted。谢谢! – 2012-09-10 23:08:15

+1

Kevin:kB/MB/GB是真正正确的,只有1000的倍数(由SI定义,由Mac和硬盘驱动器使用)。我想这不会改变,你想要1024(更正确地写在KiB/MiB/GiB,在Linux GUI中使用),所以只是指出它是Windows维护这个历史和令人困惑的符号。二进制符号在上个世纪被标准化了,所以这是他们在该计划中得到的时间。 ;-) – 2014-06-29 16:52:04

+0

或者如果你想要字节,KB和MB而不是KB,MB,GB:'[<1000]#“B”; [<1000000] 0.00,“KB”; 0.00 ,,“MB”' – 2016-04-05 18:43:34

6

稍有变化,使之在我区工作,欧洲(以千位分隔符,逗号作为小数点分隔符。)(!1000 = 1024)

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

还是同一个问题上的数据转换,但它的为我工作。

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 2015-12-18 01:53:35

7

虽然Excel格式条件的3个相关数大小(它们其编码如条件仅显示1“阳性;负;零;文本”不过我更喜欢把它看作:如果ISNUMBER和true; elseif isnumber and false; elseif number; elseif is text

对我来说,最好的答案是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" 

随你的选择!

2

比特拉少将在GB &超过999写GB写上TB

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

OR

[< 1000] 0“GB”; [> = 1000] 0。0, “TB”

1

以上公式需要在第一线减号: “= 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"""))))))))))) 
相关问题