用已知的上限值缩放值

我在Excel中有一列值,我需要按比例因子修改。 原始列示例:

| Value | |:-----:| | 75 | | 25 | | 25 | | 50 | | 0 | | 0 | | 100 | 

比例因子:1.5

 | Value | |:-----:| | 112.5 | | 37.5 | | 37.5 | | 75 | | 0 | | 0 | | 150 | 

问题是我需要他们在0100的范围内。 我的第一个想法是把他们作为100的百分比,但后来很快意识到,这将是循环。

是否有某种math方法或Excel公式我可以用来处理这个,所以我实际上做了有意义的更改值,这样,当这些数字被修改时, 15010037.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 = 0SCALE_MAX = 100 。 在上面的等式中, v是数据中的任何单个值。

希望有所帮助

另一个select是:

 ScaledValue = PERCENTRANK.INC(AllValues, v) 

与我先前的build议(线性—保留数据点的相对间距)相反,这保留了数据的顺序,但不保留间距。 使用PERCENTRANK.INC会产生这样的效果:稀疏数据将被压缩在一起,并且聚集的数据将被分散。

你也可以做两种方法的加权组合 – 给线性方法0.5的权重,以便相对间距部分保留。