Fórmula do Excel: normalizar unidades de tamanho para Gigabytes -

Fórmula genérica

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

Resumo

Para normalizar unidades em Gigabytes (ou megabytes, kilobytes, etc.), você pode usar uma fórmula inteligente com base nas funções MATCH, LEFT e RIGHT. No exemplo mostrado, a fórmula em C5 é:

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

Observação: para simplificar, estamos usando valores decimais (base 10), mas também existe um padrão binário. Ver abaixo.

Explicação

Importante: esta fórmula assume que as unidades são os últimos 2 caracteres da string que inclui um número e uma unidade de medida.

Essa fórmula funciona porque as unidades digitais têm uma relação de "potência de 10".

No núcleo, essa fórmula separa a parte do número do tamanho da unidade e, em seguida, divide o número pelo divisor apropriado para normalizar em Gigabytes. O divisor é calculado como uma potência de 10, portanto, a fórmula se reduz a isto:

=number/10^power

Para obter o número, a fórmula extrai todos os caracteres da esquerda até, mas não inclui as unidades:

LEFT(B5,LEN(B5)-2)

Para obter "potência", a fórmula corresponde na unidade em uma constante de matriz embutida em código:

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

O que retorna a posição da unidade na constante da matriz. Por exemplo, para a fórmula em C5, a unidade é "KB", então a posição é 5. Esse resultado é ajustado subtraindo 3 e multiplicando o resultado por 3, o que produz 6 como a potência, que é usada como o expoente para calcular o resultado correto em gigabytes:

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

Fórmula binária padrão

Os computadores usam o sistema numérico binário para armazenar e relatar o tamanho dos dados, mas os prefixos como "quilo", "mega", "giga", etc. são baseados no sistema métrico. É um tópico confuso, mas usar unidades de tamanho decimal para armazenamento em um computador não é realmente correto, e a discrepância aumenta conforme as unidades ficam maiores. A fórmula abaixo normalizará em unidades binárias.

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

Com esta fórmula, você está tecnicamente obtendo Gibibytes (GiB), não Gigabytes. Mais informações aqui e aqui.

Bons links

Resposta do Stackoverflow.com por Ron Rosenfeld

Artigos interessantes...