Important: this formula assumes that units are the last 2 characters of the string that includes both a number and a unit of measure.
This formula works because digital units have a "power of 10" relationship.
At the core, this formula separates the number part of the size from the unit, then divides the number by the appropriate divisor to normalize to Gigabytes. The divisor is calculated as a power of 10, so the formula reduces to this:
To get the number, the formula extracts all characters from the left up to but not including the units:
To get "power", the formula matches on the unit in a hard-coded array constant:
Which returns the position of the unit in the array constant. For example, for the formula in C5, the unit is "KB", so the position is 5. This result is adjusted by subtracting 3, then multiplying the result by 3, which yields 6 as the power, which is used as the exponent to calculate the correct result in gigabytes:
=900/10^6 =900/1000000 =0.0009
Binary standard formula
Computers use the binary number system to store and report data size, but the prefixes like "kilo", "mega", "giga", etc. are based on the metric system. It's a confusing topic, but using a decimal size units for storage on a computer isn't really correct, and the discrepancy increases as units get larger. The formula below will normalize to binary units.
With this formula, you are technically getting Gibibytes (GiB), not Gigabytes. More information here and here.