具有已知上限的缩放值
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 公式来处理此问题,以便我真正对值进行有意义的更改,以便在修改这些数字时,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
假设您的原始数据 (a.k.a.AllValues) 的范围从 MIN 15 到 MAX 83,并且您想将其缩放到 0 到 100 的范围。为此,您可以设置SCALE_MIN = 0
和 SCALE_MAX = 100
。在上面的等式中,v
是数据中的任何单个值。
希望对您有所帮助
另一种选择是:
ScaledValue = PERCENTRANK.INC(AllValues, v)
与我之前的建议相反,(线性---保留数据点的相对间距),这保留了数据的顺序而不是间距。使用 PERCENTRANK.INC
会产生这样的效果:稀疏数据将被压缩得更紧密,而成束数据将散开。
您也可以对这两种方法进行加权组合 --- 给线性方法一个权重,比如说 0.5,这样相对间距就部分 保留了。
我在 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
假设您的原始数据 (a.k.a.AllValues) 的范围从 MIN 15 到 MAX 83,并且您想将其缩放到 0 到 100 的范围。为此,您可以设置SCALE_MIN = 0
和 SCALE_MAX = 100
。在上面的等式中,v
是数据中的任何单个值。
希望对您有所帮助
另一种选择是:
ScaledValue = PERCENTRANK.INC(AllValues, v)
与我之前的建议相反,(线性---保留数据点的相对间距),这保留了数据的顺序而不是间距。使用 PERCENTRANK.INC
会产生这样的效果:稀疏数据将被压缩得更紧密,而成束数据将散开。
您也可以对这两种方法进行加权组合 --- 给线性方法一个权重,比如说 0.5,这样相对间距就部分 保留了。