我在单元格中有一个以字节为单位的值。但没有人可以阅读728398112238.我宁愿说678.37GB
编写一个公式来格式化它相对容易(这里是一个:http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html)
但有没有办法将其作为'格式'?我希望在单元格中有大数字,但是它显示为人类可读的格式。
答案 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)
[&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")))))
答案 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"
952
=> 952 KB
1514
=> 1.51 MB
5122323
=> 5.12 GB
答案 14 :(得分:0)
对于确切的结果,我宁愿使用显示格式进行计算。
假设A1单元格的值为29773945664927。
计算B1单元格中的逗号数。
= QUOTIENT(LEN(A1)-1,3)
在C1单元格中将值除以1024 ^ B1。
= A1 / 1024 ^ B1
D1单元中的显示单位。
= SWITCH(B1,5,“ PB”,4,“ TB”,3,“ GB”,2,“ MB”,1,“ KB”,0,“ B”)
隐藏B1细胞。
答案 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 可能需要修改