Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 具有已知上限的缩放值_Excel_Math_Scale - Fatal编程技术网

Excel 具有已知上限的缩放值

Excel 具有已知上限的缩放值,excel,math,scale,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的范围内。我的第一个想法

我在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公式可以用来处理这个问题,这样我就可以对值进行有意义的更改,这样当这些数字被修改时,
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
假设您的原始数据(也称为AllValue)的最小值为15到最大值为83,您希望将其缩放到0到100的范围。为此,您需要设置
SCALE\u MIN=0
SCALE\u MAX=100
。在上述等式中,
v
是数据中的任何单个值

希望能有所帮助另一个选择是:

ScaledValue = PERCENTRANK.INC(AllValues, v)
与我之前的建议不同,(线性——保留数据点的相对间距),这保留了数据的顺序,但不保留间距。使用
PERCENTRANK.INC
将产生这样的效果:稀疏数据将被压缩得更紧密,而聚集的数据将分散开来


你也可以将这两种方法进行加权组合——给线性方法一个权重,比如说0.5,这样相对间距就可以部分保留。

将数字分布在0-100之间是非常容易的。您只需要确保100是最大值吗。看看
min(100,cell*1.5)
@shawnt00这可能就是我想要的,但我真的觉得应该有一种方法来调整数字,使最大的数字是100,但现在90可能更像97。你明白我的意思了吗?是的,你可以很容易地将最大值转换为100,然后将最小值转换为0,以及其余部分之间的比例差。@shawnt00但如果这些值已经设置在最大值0和100之间,那么比例差(这正是我要寻找的)不是完全相同的值?这似乎是循环的。是的,在那种情况下它们是一样的。