如何在Excel中将单元格的字节格式设置为KB,MB,GB等?


86

我在以字节为单位的单元格中有一个值。但没人能读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 2013年

这篇文章中的链接已失效。这是使用公式的解决方案的另一个链接:social.technet.microsoft.com/Forums/en-US/…–
Joost

Answers:


98

您实际上无法在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

53

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

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

似乎工作正常。


2
不够完美(1000相对于1024的倍数),但是足够好并被推荐。谢谢!
Skwerl 2012年

2
凯文:kB / MB / GB确实是正确的,只能是1000的倍数(由SI定义,Mac和硬盘驱动器使用)。我想这并不会改变您想要的1024(更正确地编写为KiB / MiB / GiB,如Linux GUI中所使用的),因此只需指出是Windows保持了这种历史性和令人困惑的表示法。二进制符号在上个世纪是标准化的,因此该程序获得了很高的评价。;-)
卢克·厄舍伍德

1
或者,如果您要字节,KB和MB而不是KB,MB,GB:[<1000]#" B";[<1000000]0.00," KB";0.00,," MB"
Aaron Campbell

12

尽管Excel格式条件只会显示3个与数字大小有关的条件中的1个(它们将其编码为“正;负;零;文本”,但我更喜欢将其视为:if isnumber和true; elseif isnumber和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"

随便你!


12

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

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

然后选择确定。这包括B,KB和MB。然后,在选择相同单元格的情况下,单击“首页”功能区,“条件格式”,“新规则”。选择仅格式化包含的单元格。然后在规则说明的下方,“仅格式化单元格值大于或等于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
一个小注意事项:如果在安装程序中,您有一个规定其他分隔符的语言环境,请使用适当的分隔符替换上面字符串中的分隔符。用我的语言和。被交换,所以我不得不使用:[<1000] ## 0,00“ B”; [<1000000] ## 0,00。“ KB”; ## 0,00 ..“ MB”和[<1000000000000] ## 0,00 ...“ GB”; [<1000000000000000] ## 0,00 ....“ TB”;#。## 0,00 .....“ PB”
user1708042

10

进行细微更改以使其在我所在的地区欧洲有效(。以千位分隔符,以逗号分隔为小数分隔符):

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

数据转换(1000!= 1024)仍然是同样的问题,但是对我来说确实有用。


4

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

0.00,,,"Gb"

2
注意,b是位,B是字节。一位是一个字节的1/8,因此为避免混淆,请务必确保使用正确的字母。前缀也是如此,例如M代表兆(1000000×),m代表毫(1/1000)。
Liggliluff

我喜欢简单。即使不是1,024的倍数,此答案也很有用。
satoc 18/09/20

3

上面的公式在第一行中需要减号:“ = 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的倍数。)右键单击单元格,然后选择“设置单元格格式”。在数字选项卡下,选择自定义。然后在“类型:”框中,输入以下内容:

##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

1

少于Tera可以在GB上写入,而超过999 GB可以在TB上写入

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

要么

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


1

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

1)将Linux日期转换为excel日期,
为此,在date列旁边添加一个空列,假设第一行是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的倍数,即兆字节,千兆字节和兆字节)的格式:

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

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


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单元格中的逗号数。

    =数量(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单元格。

屏幕截图

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.