如何将Excel中的单元格格式化为KB,MB,GB等?

时间:2009-10-07 19:52:38

标签: excel formatting

我在单元格中有一个以字节为单位的值。但没有人可以阅读728398112238.我宁愿说678.37GB

编写一个公式来格式化它相对容易(这里是一个:http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html

但有没有办法将其作为'格式'?我希望在单元格中有大数字,但是它显示为人类可读的格式。

17 个答案:

答案 0 :(得分:73)

您无法在Excel的格式设置功能中进行实际计算。您可以使用以下内容进行粗略估计:

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

答案 1 :(得分:40)

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

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

似乎工作正常。

答案 2 :(得分:10)

虽然Excel格式条件只会显示与数字大小相关的3个条件中的1个(它们将其编码为“正数;负数;零;文本”但我更喜欢将其视为: if isnumber和true; elseif isnumber和false; elseif number; elseif is text

所以对我来说,最好的答案是David's以及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"

接受你的选择!

答案 3 :(得分:7)

轻微更改,使其在我的地区,欧洲(。作为千位分隔符,逗号作为小数点分隔符)工作:

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

数据转换仍然存在同样的问题(1000!= 1024),但它确实适合我。

答案 4 :(得分:4)

我不知道如何让它显示二进制千兆字节(1024 * 1024 * 1024的倍数),但您可以使用以下格式显示十进制千兆字节:

0.00,,,"Gb"

答案 5 :(得分:4)

以上格式化方法有效,但仅适用于三个级别。上面使用的KB,MB和GB。在这里,我将其扩展为六个。右键单击单元格,然后选择“设置单元格格式”。在数字选项卡下,选择自定义。然后在“类型:”框中,输入以下内容:

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

然后选择确定。这包括B,KB和MB。然后,在选择相同单元格的情况下,单击“首页”功能区,“条件格式”,“新规则”。选择仅格式化包含的单元格。然后在下面的规则说明中,“仅格式化单元格值大于或等于1000000000(即9个零)的单元格。”然后单击“格式”,“数字”选项卡,“自定义”,然后在“类型:”框中,输入以下内容:< / p>

[<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等。

答案 6 :(得分:3)

以上公式在第一行需要减号:&#34; = IF(A1 <-999500000000&#34;

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

答案 7 :(得分:2)

还有另一个解决方案,就是使用工程符号。 (这与科学计数法类似,只是指数始终是3的倍数。)右键单击单元格,然后选择“设置单元格格式”。在数字选项卡下,选择自定义。然后在“类型:”框中,输入以下内容:

##0.00E+00

然后单击“确定”。您将拥有+ 3,+ 6等,而不是K,M等。这将适用于正数和负数以及正负数,-3是m,-6是u等。< / p>

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

答案 8 :(得分:1)

这里的所有答案都提供10的幂的值。这是使用正确的SI单位(1024的倍数,即兆字节,千兆字节和兆字节)的格式:

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

这支持MiB,GiB和TiB显示两位小数。

答案 9 :(得分:1)

小于Tera将写入GB&amp;超过999 GB写入TB

[&lt; 1000] 0“GB”; [&gt; 999] 0.0,“TB”

OR

[&lt; 1000] 0“GB”; [&gt; = 1000] 0.0,“TB”

答案 10 :(得分:1)

我使用CDH hadoop,并且在导出excel报告时出现两个问题;

1)将Linux日期转换为Excel日期,
为此,请在日期列旁边添加一个空白列,假设第一行是B4, 粘贴在公式下方,并将黑色“ +” 一直拖动到列末尾的最后一天。然后隐藏原始列

=(((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位小数的值 只需格式化单元格->自定义并在其中粘贴上面的代码

答案 11 :(得分: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")))))

enter image description here

答案 12 :(得分: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)))))

答案 13 :(得分:0)

我怀疑这里的很多答案已经过时了,因为我没有从给定的答案中得到预期的结果。

如果您要根据大小来设置KB值,则可以尝试以下操作。


公式

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


初始值(以KB为单位)=>输出

952 => 952 KB

1514 => 1.51 MB

5122323 => 5.12 GB

答案 14 :(得分:0)

对于确切的结果,我宁愿使用显示格式进行计算。

假设A1单元格的值为29773945664927。

  1. 计算B1单元格中的逗号数。

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

  2. 在C1单元格中将值除以1024 ^ B1。

    = A1 / 1024 ^ B1

  3. D1单元中的显示单位。

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

  4. 隐藏B1细胞。

  

screenshot

答案 15 :(得分: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""")))))))))))

答案 16 :(得分:-1)

如果你想在一个单元格上工作。假设单元格 def buy_tool(): for tool in tools: if player['current_tool'] != tool and player['money'] >= tool['cost']: player['current_tool'] = tool player['money'] -= tool['cost'] cut_grass() def check_money(): for tool in tools: if player['money'] >= tool['cost']: buy_tool() else: cut_grass() def cut_grass(): print('You currently have $' + str(player['money']) + ' and are using your ' + player['current_tool']['name'] + '.') start_cutting = input('Are you ready to cut grass? (y/n)') if start_cutting == 'y': player['money'] += player['current_tool']['profit'] check_money() cut_grass() ,你可以使用这个:

F3

这已经在谷歌表上试过了。 IF ELSE caluse 可能需要修改