Excel vzorec: Normalizovat jednotky velikosti na gigabajty -

Obecný vzorec

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

souhrn

K normalizaci jednotek na gigabajty (nebo megabajty, kilobajty atd.) Můžete použít chytrý vzorec založený na funkcích MATCH, LEFT a RIGHT. V zobrazeném příkladu je vzorec v C5:

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

Poznámka: pro zjednodušení používáme desítkové (základní 10) hodnoty, ale existuje také binární standard. Viz. níže.

Vysvětlení

Důležité: tento vzorec předpokládá, že jednotky jsou poslední 2 znaky řetězce, který zahrnuje jak číslo, tak měrnou jednotku.

Tento vzorec funguje, protože digitální jednotky mají vztah „síla 10“.

Tento vzorec v jádru odděluje číselnou část velikosti od jednotky a poté vydělí číslo příslušným dělitelem, aby se normalizoval na gigabajty. Dělitel se počítá jako mocnina 10, takže vzorec se redukuje na toto:

=number/10^power

Chcete-li získat číslo, vzorec extrahuje všechny znaky zleva až po jednotky bez:

LEFT(B5,LEN(B5)-2)

Chcete-li získat „sílu“, vzorec odpovídá jednotce v pevně konstantní maticové konstantě:

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

Což vrací pozici jednotky v konstantě pole. Například pro vzorec v C5 je jednotka „KB“, takže pozice je 5. Tento výsledek se upraví odečtením 3 a vynásobením výsledku 3, čímž se získá 6 jako síla, která se použije jako exponent vypočítat správný výsledek v gigabajtech:

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

Binární standardní vzorec

Počítače používají k ukládání a hlášení velikosti dat systém binárních čísel, ale předpony jako „kilo“, „mega“, „giga“ atd. Jsou založeny na metrickém systému. Je to matoucí téma, ale použití jednotek v desítkové velikosti pro ukládání v počítači není ve skutečnosti správné a rozdíly se zvětšují, jak se jednotky zvětšují. Vzorec níže se normalizuje na binární jednotky.

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

S tímto vzorcem technicky získáváte gigabajty (GiB), nikoli gigabajty. Více informací zde a zde.

Dobré odkazy

Odpověď Stackoverflow.com od Rona Rosenfelda

Zajímavé články...