如何将一系列数字转换为0到10的范围

我有一大串我想转换为0到10的数字。

我使用下面的公式将最大值转换为10,最小值转换为0,

=IF(A1="-","0",MIN(MAX((A1-MIN(A:A))/((MAX(A:A)-MIN(A:A))/11),0),10)) 

但是,我面临一些问题转换的最大值应为0和最小值应为10的系列。例如,如果列A有值,

1 4 6 7 8

那么8应该有一个值0,1应该有一个值10。

谢谢!

只需使用公式= 10-B1,其中B1是包含您提及的公式的单元格。

请注意,虽然你的公式有以下缺陷:

  1. 这是错误的。 如果你用三个数字1,2,3进行testing,你会得到5.5,对应于2的值。显然,正确答案应该是5.这个错误是由你用来分割数字11(MAX(A: A)-MIN(A:A))。 将其更改为10,一切都将工作!

  2. 它返回#DIV / 0! 如果A列中只有一个数字

  3. 它是低效率的,因为它在每个包含这个公式的单元格中调用耗时的函数MAX(A:A)和MIN(A:A)。 由于这两个函数不依赖于包含公式的单元格,因此可以考虑在其他单元格中只使用它们一次,然后修改公式,使其包含指向这些外部单元的链接,而不是函数本身。

  4. 这几乎不可维护和/或可读。 我花了一段时间才明白你的配方是如何工作的。 考虑将其分成有意义的部分,将这些部分放入不同的单元格中,最后简单地将这些部分连接在一起,形成一些最终的公式。

  5. 这是不必要的复杂。 实现同样的事情有一个更容易的公式,基于以下几点:

= 10 * B1 / C1,

其中B1包含“距最小距离”,即A1-MIN(A:A),C1包含数字范围的总长度,即MAX(A:A)-MIN(A:A)