具有已知上限的缩放值

Scaling values with a known upper limit

我在 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 公式来处理此问题,以便我真正对值进行有意义的更改,以便在修改这些数字时,15010037.5 可能不是 25 而且我不只是抵消我的比例因子?

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

=MIN(100,A1*1.5)

根据需要向下复制。

你可以这样做:

ScaledValue = (v - MIN(AllValues)) / (MAX(AllValues) - MIN(AllValues)) * (SCALE_MAX - SCALE_MIN) + SCALE_MIN

假设您的原始数据 (a.k.a.AllValues) 的范围从 MIN 15 到 MAX 83,并且您想将其缩放到 0 到 100 的范围。为此,您可以设置SCALE_MIN = 0SCALE_MAX = 100。在上面的等式中,v 是数据中的任何单个值。

希望对您有所帮助

另一种选择是:

ScaledValue = PERCENTRANK.INC(AllValues, v)

与我之前的建议相反,(线性---保留数据点的相对间距),这保留了数据的顺序而不是间距。使用 PERCENTRANK.INC 会产生这样的效果:稀疏数据将被压缩得更紧密,而成束数据将散开。

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