在excel中将KG,MB,GB,TB转换为GB的公式

时间:2017-02-26 19:06:49

标签: excel

我正在尝试转换excel表中的数据,有些是GB,MB,TB,KB。我想将所有内容转换为GB

这是我使用的公式

=IF(ISERROR(FIND("GB",H2))=FALSE,VALUE(LEFT(H2,FIND("GB",H2)-1)*1),IF(ISERROR(FIND("TB",H2))=FALSE,VALUE(LEFT(H2,FIND("TB",H2)-1)*1024),VALUE(LEFT(H2,FIND("MB",H2)-1)/1024),VALUE(LEFT(H2,FIND("KB",H2)-1)/1048576)))

我收到的错误太多了

3 个答案:

答案 0 :(得分:2)

使用此数组公式:

=LEFT(A1,MIN(IFERROR(FIND({"KB","MB","GB","TB"},A1),1E+99))-1)/INDEX({1048576,1024,1,0.0009765625},MATCH(RIGHT(A1,2),{"KB","MB","GB","TB"},0)) & "GB"

作为数组公式,需要使用Ctrl-Shift-Enter而不是enter来确认。如果正确完成,那么excel会将{}放在公式周围。

enter image description here

如果你的字符串总是以大小结尾,那么你可以使用这个正常的公式:

=LEFT(A1,LEN(A1)-2)/INDEX({1048576,1024,1,0.0009765625},MATCH(RIGHT(A1,2),{"KB","MB","GB","TB"},0)) & "GB"

答案 1 :(得分:1)

缺少MB的IF:

=IF(ISERROR(FIND("GB",I2))=FALSE,VALUE(LEFT(I2,FIND("GB",I2)-1)*1),IF(ISERROR(FIND("TB",I2))=FALSE,VALUE(LEFT(I2,FIND("TB",I2)-1)*1024),IF(ISERROR(FIND("MB",I2))=FALSE,VALUE(LEFT(I2,FIND("MB",I2)-1)/1024),VALUE(LEFT(I2,FIND("KB",I2)-1)/1048576))))

不是我鼓励这种公式,因为它太钝了,但这就是它的错误。此外,它假定最后一个值HAS为KB。

答案 2 :(得分:1)

=ROUND( LEFT(H2,FIND("B",H2)-2) *1024^(FIND(MID(H2,FIND("B",H2)-1,1),"KMGTPEZY")-3) ,2)&"GB"

LEFT部分是获取?B之前的数字,*1024^部分是根据B之前的字母将其转换为GB,{{1是可选的