用已知的上限值缩放值
我在Excel中有一列值,我需要按比例因子修改。 原始列示例:
| Value | |:-----:| | 75 | | 25 | | 25 | | 50 | | 0 | | 0 | | 100 |
比例因子:1.5
| Value | |:-----:| | 112.5 | | 37.5 | | 37.5 | | 75 | | 0 | | 0 | | 150 |
问题是我需要他们在0
– 100
的范围内。 我的第一个想法是把他们作为100的百分比,但后来很快意识到,这将是循环。
是否有某种math方法或Excel公式我可以用来处理这个,所以我实际上做了有意义的更改值,这样,当这些数字被修改时, 150
是100
但37.5
可能不是25
,我不只是取消我的比例因子?
假设你的数据从A1单元格开始,你可以使用这个公式:
=MIN(100,A1*1.5)
根据需要向下复制。
你可以做这样的事情:
ScaledValue = (v - MIN(AllValues)) / (MAX(AllValues) - MIN(AllValues)) * (SCALE_MAX - SCALE_MIN) + SCALE_MIN
假设你的原始数据(又名AllValues)的范围是从15到MIN,最大值是83,你想把它缩放到0到100的范围。为此,你可以设置SCALE_MIN = 0
和SCALE_MAX = 100
。 在上面的等式中, v
是数据中的任何单个值。
希望有所帮助
另一个select是:
ScaledValue = PERCENTRANK.INC(AllValues, v)
与我先前的build议(线性—保留数据点的相对间距)相反,这保留了数据的顺序,但不保留间距。 使用PERCENTRANK.INC
会产生这样的效果:稀疏数据将被压缩在一起,并且聚集的数据将被分散。
你也可以做两种方法的加权组合 – 给线性方法0.5的权重,以便相对间距部分保留。