两个尺度之间的反相关

时间:2018-01-12 12:44:43

标签: excel math excel-formula

我有一系列从1开始的数字,它会增加1到一个上限,可能在100到200之间。

我正在尝试创建一个函数,将这些数字转换为0.5到20的范围,其中一个总是= 20,最大值总是等于0.5 ,其余的数字在2。

假设数字1到最大数字在A栏中,我已设法将旧比例转换为新比例:

=(((A1-1)*(20 - 0.5))/(MAX(A:A) - 1))+0.5

可以表示为(((OldVal - OldMin) * (NewMax - NewMin)) / (OldMax - OldMin)) + NewMin

这正确地转换了比例幅度

200 20
199 19.90201005
198 19.8040201
197 19.70603015
196 19.6080402
195 19.51005025
194 19.4120603
    etc...
8   1.185929648
7   1.087939698
6   0.989949749
5   0.891959799
4   0.793969849
3   0.695979899
2   0.59798995
1   0.5

我现在需要做的是反转比例,使最大值(100到200)= 0.5,最小值(1)= 20。

我怎么能这样做,记住最大值是动态的,可以在100到200之间?是否有另一种方法可以解决创建逆相关的原始问题?

理想情况下,如果有一些聪明的数学技巧(你猜对了,我不是数学男孩!)我希望能够在序列中找出任何数字而不先计算整个序列,例如{{1虽然这不是必需的。

非常感谢。

2 个答案:

答案 0 :(得分:2)

假设线性插值,您可以使用y = mx + b,其中x是您的输入(在这种情况下,1到100到200之间的某个未知值),y是您的输出(在这种情况下,20到0.5),斜率(m)和截距(b)动态确定为x的上限变化。

我将100到200之间的未知值定义为z

我们有两个方程和两个未知数。 (请记住z已知,只是它是动态的)。这是方程组:

20 = m*1 + b
0.5 = m*z + b

一些线性代数:

19.5 = m*(1-z)
m = 19.5/(1-z)

20*z = m*z + b*z (the equation '20 = m*1 + b` multiplied by 'z')
0.5 = m*z + b
20*z - 0.5 = b*(z-1)
b = (20*z - 0.5)/(z-1)

因此,将两者联系起来的等式是:

y = 19.5*x/(1-z) + (20*z - 0.5)/(z-1)

再次,z是100到200之间的数字。

答案 1 :(得分:2)

您可以通过在C列输入以下公式来反转/反转B列中数据的顺序:

=INDEX(B:B,COUNTA(B:B)+1-ROW())