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)
и скопировать вниз:
вот еще один способ:
- предполагает, что значение в 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
как так, вы можете перетащить размер в ГБ формула и если есть что-то исправить, вы делаете это в таблице легенд и корректируете его соответственно в Формуле один раз.
вот визуальный:
надеюсь, это поможет, и я получу, чтобы охладиться с виртуальным пивом.
В 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)