Excel formel: Normaliser størrelsesenheder til Gigabyte -

Generisk formel

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

Resumé

For at normalisere enheder til Gigabyte (eller megabyte, kilobyte osv.) Kan du bruge en smart formel baseret på MATCH, LEFT og RIGHT-funktionerne. I det viste eksempel er formlen i C5:

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

Bemærk: for enkelheds skyld bruger vi decimalværdier (base 10), men der er også en binær standard. Se nedenunder.

Forklaring

Vigtigt: denne formel antager, at enheder er de sidste 2 tegn i strengen, der inkluderer både et tal og en måleenhed.

Denne formel fungerer, fordi digitale enheder har et forhold mellem "power of 10".

I kernen adskiller denne formel nummerdelen af ​​størrelsen fra enheden og deler derefter tallet med den passende skillevæg for at normalisere til Gigabyte. Deleren beregnes som en effekt på 10, så formlen reduceres til dette:

=number/10^power

For at få nummeret udtrækker formlen alle tegn fra venstre op til men ikke enhederne inklusive:

LEFT(B5,LEN(B5)-2)

For at få "power" matcher formlen på enheden i en hårdkodet arraykonstant:

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

Hvilket returnerer enhedens position i arraykonstanten. For eksempel, for formlen i C5, er enheden "KB", så positionen er 5. Dette resultat justeres ved at trække 3 og derefter multiplicere resultatet med 3, hvilket giver 6 som magt, der bruges som eksponent at beregne det korrekte resultat i gigabyte:

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

Binær standardformel

Computere bruger det binære nummersystem til at gemme og rapportere datastørrelse, men præfikser som "kilo", "mega", "giga" osv. Er baseret på det metriske system. Det er et forvirrende emne, men det er ikke rigtigt korrekt at bruge enheder i decimalstørrelse til opbevaring på en computer, og uoverensstemmelsen stiger, når enhederne bliver større. Formlen nedenfor normaliseres til binære enheder.

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

Med denne formel får du teknisk set Gibibytes (GiB), ikke Gigabyte. Flere oplysninger her og her.

Gode ​​links

Stackoverflow.com svar af Ron Rosenfeld

Interessante artikler...