Excel képlet: A méretegységek normalizálása gigabájtra -

Általános képlet

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

Összegzés

Az egységek gigabájtra (vagy megabájtra, kilobájtra stb.) Normalizálásához használhat okos képletet, amely a MATCH, LEFT és RIGHT függvényeken alapul. A bemutatott példában a C5 képlete a következő:

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

Megjegyzés: az egyszerűség kedvéért decimális (10-es) értékeket használunk, de van egy bináris szabvány is. Lásd lejjebb.

Magyarázat

Fontos: ez a képlet feltételezi, hogy az egységek a karakterlánc utolsó 2 karaktere, amely számot és mértékegységet egyaránt tartalmaz.

Ez a képlet azért működik, mert a digitális egységek "10-es teljesítmény" kapcsolattal rendelkeznek.

Lényegében ez a képlet elválasztja a méret számrészét az egységtől, majd elosztja a számot a megfelelő osztóval, hogy normalizálódjon gigabájtra. Az osztót 10-es hatványként számoljuk, így a képlet erre redukálódik:

=number/10^power

A szám megszerzéséhez a képlet kivonja az összes karaktert balról az egységek kivételével:

LEFT(B5,LEN(B5)-2)

A "teljesítmény" megszerzéséhez a képlet keményen kódolt tömbállandóban illeszkedik az egységre:

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

Ami visszaadja az egység helyzetét a tömb konstansban. Például a C5 képletnél az egység "KB", tehát a pozíció 5. Ezt az eredményt úgy korrigáljuk, hogy kivonjuk a 3 értéket, majd megszorozzuk az eredményt 3-mal, aminek eredményeként hatványt kapunk, amelyet kitevőként a helyes eredmény gigabájtban történő kiszámításához:

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

Bináris standard képlet

A számítógépek a bináris számrendszert használják az adatok méretének tárolására és jelentésére, de az olyan előtagok, mint a "kilo", "mega", "giga" stb., A metrikus rendszeren alapulnak. Zavaros téma, de a tizedes méretű egységek számítógépen történő tárolása nem igazán helyes, és az eltérés növekszik az egységek növekedésével. Az alábbi képlet bináris egységekre normalizálódik.

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

Ezzel a képlettel technikailag Gibibyte-okat (GiB) kap, nem pedig Gigabyte-okat. További információ itt és itt.

Jó linkek

A Stackoverflow.com válasza: Ron Rosenfeld

érdekes cikkek...