我的某个单元格中有一个以字节为单位的值。 但是728398112238没有人能读懂。 我更想它显示为678.37GB。
为了相对容易地编写格式公式(这里有一个:http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html),
但是有没有一种方法可以将其作为“格式”来完成? 我想在单元格中使用大数字,但显示为人类可读格式。
我的某个单元格中有一个以字节为单位的值。 但是728398112238没有人能读懂。 我更想它显示为678.37GB。
为了相对容易地编写格式公式(这里有一个:http://www.yonahruss.com/2007/02/format-excel-numbers-as-gb-mb-kb-b.html),
但是有没有一种方法可以将其作为“格式”来完成? 我想在单元格中使用大数字,但显示为人类可读格式。
在 Excel 的格式化功能中,你实际上无法进行计算。不过,你可以使用以下类似的方法来进行粗略的估算:
[<500000]#,##0" B";[<500000000]#,##0,," MB";#,##0,,," GB"
这是我一直在使用的方法: -
[<1000000]0.00," KB";[<1000000000]0.00,," MB";0.00,,," GB"
看起来运行得很好。
[<1000]#" B";[<1000000]0.00," KB";0.00,," MB"
- Aaron Campbell上述格式化方法可以工作,但仅限于三个级别。上面使用了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等。
虽然 Excel 格式条件只会显示与数字大小相关的三种条件之一(它们将其编码为 "正数、负数、零、文本",但我更喜欢看作: 如果是数字并且为真;否则,如果是数字而为假;否则,如果是数字;否则,如果是文本)
因此,在我看来,最好的答案是 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"
随便选!
稍作调整,以适应我的地区欧洲(使用"."作为千位分隔符,使用","作为小数点):
[<1000000]#.##0,00" KB";[<1000000000]#.##0,00.." MB";#.##0,00..." GB"
数据转换仍存在相同的问题(1000!=1024),但对我来说它完成了工作。
因为还没有人写过这个答案,所以我认为对于未来的帖子查找者来说这会很有用。在Excel中使用转换函数可以轻松地进行比特和字节的转换。
您只需要使用=CONVERT(数字或单元格, "fromDatatype", "toDatatype")
例如,=CONVERT(5, "Gbyte", "Mbyte")
关于此内容,您可以在“测量系统”->“信息”下找到相关文档。 https://support.microsoft.com/en-us/office/convert-function-d785bef1-808e-4aac-bdcd-666c810f9af2
遗憾的是没有关于前缀(如M
,Mi
,G
或Gi
)的图表。但这很容易。只需使用常见的前缀,然后分别加上“bit”或“byte”。
前缀 | 简称 | 比特 | 字节 |
---|---|---|---|
尧塔 | Y | Y比特 | Y字节 |
泽它 | Z | Z比特 | Z字节 |
艾克萨 | E | E比特 | E字节 |
拍它 | P | P比特 | P字节 |
太拉 | T | T比特 | T字节 |
吉卡 | G | G比特 | G字节 |
兆 | M | M比特 | M字节 |
千 | k | k比特 | k字节 |
百 | h | h比特 | h字节 |
十 | da | dabit | dabyte |
尧比 | Yi | Yibit | Yibyte |
斯比 | Zi | Zibit | Zibyte |
艾比 | Ei | Eibit | Eibyte |
拍比 | Pi | Pibit | Pibyte |
太比 | Ti | Tibit | Tibyte |
吉比 | Gi | Gibit | Gibyte |
美比 | Mi | Mibit | Mibyte |
基比 | ki | kibit | kibyte |
我不知道有什么方法可以让它显示二进制千兆字节(1024x1024x1024的倍数),但是您可以使用以下格式使其显示十进制千兆字节:
0.00,,,"GB"
=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的倍数)。右键单击单元格并选择“格式单元格”。在“数字”选项卡下,选择“自定义”。然后在“类型”框中输入以下内容:
##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
将以下代码粘贴到您的数值(bytes)旁边,它会自动将其转换为相应大小的值。
=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)))))
=IF(A1>POWER(1024,4),TRUNC(A1/POWER(1024,4),2)&" TB", IF(A1>POWER(1024,3),TRUNC(A1/POWER(1024,3),2)&" GB", IF(A1>POWER(1024,2), ROUND(A1/POWER(1024,2),0)&" MB", ROUND(A1/1024,0)&" KB")))
- Steve