Excel: преобразование единиц (МБ, ГБ, КБ и т. д.)

у меня есть значение количество ячеек в электронной таблице, все которые содержат данные, которые являются числом, за которым следуют единицы

Е. Г

1.13 GB
134.3 MB
104.34 MB

то, что я пытаюсь сделать, - это стандартизировать все это на GB.

так:

1.13 GB -> 1.13 
    134.3 MB -> 0.1343
    104.34 MB -> 0.10434

etc.

Я нашел много методов, делающих это наоборот,но ни один из них.

виртуальное пиво на линии формула :-)

6 ответов


на B1 enter:

=IF(RIGHT(A1,2)="GB",--MID(A1,1,FIND(" ",A1)-1),--MID(A1,1,FIND(" ",A1)-1)/1000)

и скопировать вниз:

enter image description here


вот еще один способ:

  • предполагает, что значение в A1 является допустимым
  • работает от PB до KB (или ничего) и легко расширяется при необходимости
  • как написано нормализуется до ГБ, но это легко изменить.
  • предполагает, что единицы являются последними двумя символами строки, если присутствует

    =слева (A1, LEN (A1)-2) / 10^((IFERROR (MATCH (RIGHT (A1, 2), {"PB","TB", "GB", "MB", "KB"},0),6)-3)*3)


что вы можете сделать, это создать две таблицы:

1. Построение таблицы легенд пример в таблице: (=E1:F3) Это одно предназначено положить в место измерения блока:

unit    in GB
 GB       1
 MB   =1/1024
 KB   =1/1048576

Это означает, что 1 ГБ = 1 ГБ ; 1 МБ = 1/1024 ГБ 1 КБ = 1/1048576 ГБ

как так, все в таблице стандартизировано в GBs

2. Построение рабочего стола пример места в электронной таблице: (=A1:C3)

unit    size               size in GB
 GB     1.13      =VLOOKUP(A1,$E:$F,2,FALSE)*B1
 MB     134.3     =VLOOKUP(A1,$E:$F,2,FALSE)*B2
 KB     104.34    =VLOOKUP(A1,$E:$F,2,FALSE)*B3

как так, вы можете перетащить размер в ГБ формула и если есть что-то исправить, вы делаете это в таблице легенд и корректируете его соответственно в Формуле один раз.

вот визуальный: enter image description here

надеюсь, это поможет, и я получу, чтобы охладиться с виртуальным пивом.


enter image description here В B2:

=IF(ISERROR(FIND("M",A1))=FALSE,VALUE(LEFT(A1,FIND(" ",A1)-1))/1000,IF(ISERROR(FIND("K",A1))=FALSE,VALUE(LEFT(A1,FIND(" ",A1)-1))/1000000,VALUE(LEFT(A1,FIND(" ",A1)-1))))

Это довольно долго, но при условии, что ваше значение равно A1:

=VALUE(IFERROR(LEFT(A1,FIND(" ",A1)),A1)) /
  IF(ISERROR(SEARCH("gb",A1)), IF(ISERROR(SEARCH("mb",A1)),
  IF(ISERROR(SEARCH("kb",A1)), 1000000000, 1000000), 1000), 1)

Это обрабатывает случаи ГБ, Мб, КБ, и ничего не указано (в байтах). Это не чувствительно к регистру (gb, gB,GB, Gb), и единственное ограничение-иметь пробел после значения (или ничего в случае байтов)


Мне понравился ответ Amit, но с байтами вместо битов,и поскольку я не видел ответа в байтах, я публикую этот. Также моя локаль использует; вместо,

=VALUE(IFERROR(LEFT(D2;FIND(" ";D2));D2)) /IF(ISERROR(SEARCH("gb";D2)); IF(ISERROR(SEARCH("mb";D2));IF(ISERROR(SEARCH("kb";D2)); 1073741824; 1048576); 1024); 1)