使用已知上限缩放值

时间:2015-10-16 19:17:54

标签: excel math scale

我在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的百分比,然后很快就意识到这将是围成一圈的。

我是否可以使用某种数学方法或Excel公式来处理这个问题,以便我实际对值进行有意义的更改,以便在修改这些数字时,150100但是37.5可能不是25,而且我不只是取消了我的比例系数?

3 个答案:

答案 0 :(得分:2)

假设您的数据在单元格A1中开始,您可以使用以下公式:

=MIN(100,A1*1.5)

根据需要向下复制。

答案 1 :(得分:0)

您可以执行以下操作:

var canvas = document.querySelector('#mycanvas'),
    ctx = canvas.getContext('2d', {alpha: false});

function run() {
    ctx.clearRect(0, 0, size.width, size.height);

    ctx.drawImage(bg, 0, 0, size.width, size.height);

    draw();
    update();

    requestAnimationFrame(run);
}

假设您的原始数据(也称为AllValues)范围从MIN为15到MAX为83,并且您希望将其缩放到0到100的范围。为此,您需要设置ScaledValue = (v - MIN(AllValues)) / (MAX(AllValues) - MIN(AllValues)) * (SCALE_MAX - SCALE_MIN) + SCALE_MIN 和{ {1}}。在上面的等式中,SCALE_MIN = 0是数据中的任何单个值。

希望有所帮助

答案 2 :(得分:0)

另一种选择是:

ScaledValue = PERCENTRANK.INC(AllValues, v)

与我之前的建议相反,(线性---保留数据点的相对间距),这保留了数据的顺序,但不保留间距。使用PERCENTRANK.INC会使稀疏数据更加紧密地压缩在一起,并且聚集的数据将会散开。

你也可以对这两种方法进行加权组合---给线性方法一个0.5的权重,使相对间距部分保留。