Формула Excel: нормализовать размер единиц в гигабайты -

Общая формула

=LEFT(A1,LEN(A1)-2)/10^((MATCH(RIGHT(A1,2),("PB","TB","GB","MB","KB"),0)-3)*3)

Резюме

Чтобы нормализовать единицы измерения в гигабайты (или мегабайты, килобайты и т. Д.), Вы можете использовать умную формулу, основанную на функциях ПОИСКПОЗ, ВЛЕВО и ВПРАВО. В показанном примере формула C5 имеет следующий вид:

=LEFT(B5,LEN(B5)-2)/10^((MATCH(RIGHT(B5,2),("PB","TB","GB","MB","KB"),0)-3)*3)

Примечание: для простоты мы используем десятичные значения (с основанием 10), но есть и двоичный стандарт. См. ниже.

Объяснение

Важно: эта формула предполагает, что единицы измерения - это последние 2 символа строки, которая включает как число, так и единицу измерения.

Эта формула работает, потому что цифровые единицы имеют отношение «степень 10».

По сути, эта формула отделяет числовую часть размера от единицы измерения, а затем делит число на соответствующий делитель для нормализации до гигабайт. Делитель рассчитывается как степень 10, поэтому формула сводится к следующему:

=number/10^power

Чтобы получить число, формула извлекает все символы слева вверх, но не включая единицы:

LEFT(B5,LEN(B5)-2)

Чтобы получить "мощность", формула соответствует единице в жестко заданной константе массива:

MATCH(RIGHT(B5,2),("PB","TB","GB","MB","KB"),0)

Возвращает позицию единицы в константе массива. Например, для формулы в C5 единицей измерения является «КБ», поэтому позиция равна 5. Этот результат корректируется путем вычитания 3, а затем умножения результата на 3, что дает 6 в качестве степени, которая используется как показатель степени. чтобы вычислить правильный результат в гигабайтах:

=900/10^6 =900/1000000 =0.0009

Бинарная стандартная формула

Компьютеры используют двоичную систему счисления для хранения и представления данных о размере, но такие префиксы, как «кило», «мега», «гига» и т. Д., Основаны на метрической системе. Это сбивающая с толку тема, но использование десятичных единиц для хранения на компьютере не совсем корректно, и расхождение увеличивается по мере увеличения единиц. Приведенная ниже формула нормализуется до двоичных единиц.

=LEFT(A1,LEN(A1)-2)/2^((MATCH(RIGHT(A1,2),("PB","TB","GB","MB","KB"),0)-3)*10)

С помощью этой формулы вы технически получаете гибибайты (ГиБ), а не гигабайты. Больше информации здесь и здесь.

Хорошие ссылки

Stackoverflow.com ответ Рона Розенфельда

Интересные статьи...