Welcome to Tableau Forums! I'm sorry you have not received any response on this sooner.
To build a demonstration, I created a sample data set with random numbers.
Creating a calculated field to determine units by a factor of 1000, 1,000,000, etc., based on the size of the max value in a view is relatively simple. I calculated [maxvalue] as window_max(sum([Value])). Then [Units] is:
if [maxvalue] > 10^9 then 'gbps'
ELSEIF [maxvalue] > 10^6 then 'mbps'
elseif [maxvalue] > 10^3 then 'kbps'
(For simplicity of the example, I assumed powers of 10. If you define these units in powers of 2, you can adjust the Units calculation accordingly.)
Then, I created a calculation to convert the [Value] to [Value in Units]:
when 'gbps' then sum([Value])/(10^9)
when 'mbps' then sum([Value])/(10^6)
when 'kbps' then sum([Value])/(10^3)
Then, just drag the [Units] to columns to label it, and [Value in Units] to columns so all in the view uses the identified units. Remove the axis label.
As you exclude the large values, you will see the units change from 'gbps' to 'mbps' then 'kbps'.
I hope this helps you and others who may want an automatically adjusting scale.
Auto-adjusting scale.twbx 6.7 KB