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

时间:2017-10-25 09:28:20

标签: excel excel-formula

我有一大堆数字要转换为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.

谢谢!

1 个答案:

答案 0 :(得分:3)

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

请注意,您的公式存在以下缺陷:

  1. 这是错的。如果你使用三个数字1,2,3进行测试,那么对应于2的值得到5.5。显然正确的答案应该是5.这个错误是由你用来划分的数字11引起的(MAX(A: A)-MIN(A:A))。把它改成10,一切都会好起来的!

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

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

  4. 难以维护和/或可读。我花了一段时间来了解你的配方是如何运作的。考虑将它分成有意义的碎片,将碎片放入单独的单元格中,最后简单地将碎片连接在一起,形成一些最终 - 更小 - 的公式。

  5. 这是不必要的错综复杂的。根据以下内容,有一个更容易实现相同的公式:

  6. = 10 * B1 / C1,

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