【问题标题】:normalize data to scale from 1 to 10标准化数据以从 1 缩放到 10
【发布时间】:2011-06-22 17:54:16
【问题描述】:

我有以下数据集:

A   B   N
1   3   10
2   3   5
3   3   1
3   6   5
10  10  1
20  41  5
20  120 9

我正在寻找一个 excel 函数,它将 A 和 B 标准化为 N,范围从 1 到 10。

在上面的例子中是

1 of 3 is best so N = 10
2 of 3 is in the middle N = 5
3 of 3 is worst N=1
20 of 120 is in second decade N=9

A >= 1 && A

B是自然数

1

【问题讨论】:

  • 请解释您所说的“将 A 和 B 归一化为 N 从 1 到 10”是什么意思。
  • 如果您想得到答案,恐怕您将不得不以更系统的方式解释您正在尝试做什么。
  • 从A和B我要计算N。上面是一些例子。
  • 对于一维情况,您只需找到最小值和最大值,然后进行一些除法。但是你有这个“最好”和“最差”的事情,你能把它充实起来吗?
  • 试图猜测您的意思,您似乎正在尝试根据同一列中的 A 和 B 的值来​​计算数据集中已经存在的值 N,这样 N 在 a范围从 1 到 10,其中 A 的范围从 1 到 B。但是,在前三行中,N 随着 A 的增加而减小,而对于最后一行,您说 N=2,因为 120 中的 20 在第二“十年”(我想你的意思是规模的十分之一?)。但是按照前三行的例子,那么N应该是9左右,而不是2?

标签: excel normalization


【解决方案1】:

假设你的数字在列 A 和 B 中。写在 c1:

=MAX(CEILING((B1-A1)/(B1-1)*10,1),1)

并拖到C列底部

【讨论】:

  • 非常好,除了这会产生 N = 10, 5, 1, 6, 1, 6, 9 的答案,这与 OP 中的样本值不太匹配。然而,它符合意图。另一个问题是#DIV/0! A = B = 1 的退化边缘情况下的错误
【解决方案2】:

您应该使用趋势函数.....我不知道您在求解方程方面的能力如何,但这是可行的

在excel中使用趋势函数.....

趋势(Y组值,x组值,新x组值,true)

现在在 Y 组值中指定比例 1 和 10

对于 x 组值指定 B 和 0

然后为新的 x 组值指定要标准化的值

A B
20 120

B =120

因为它适用于 y=mx + c

(x1,y1) = (120,0) 和 (x2,y2) = (0,10)

您输入的任何新 x 都将在此基础上进行标准化

所以如果我在新 x 中输入 20,那么我的答案将是 8.333 而不是 9(这是错误的)

【讨论】:

    【解决方案3】:

    10*(Cell-MIN(Range))/(MAX(Range))-MIN(Range))。这个问题真的很简单。他的数据不在 1-10 的范围内……他希望最大值等于 10,最小值等于 1,其他值在它们之间进行归一化。

    “单元格”是您放入公式的实际单元格。范围是要归一化的数据。

    【讨论】:

      【解决方案4】:

      如果数据“越低越好”,试试这个 D1 列并向下拖动

      1+(A1-MIN(A$1:A$7))*(0-10)/(MAX(A$1:A$7)-MIN(A$1:A$7)))
      

      【讨论】:

        猜你喜欢
        • 2015-12-11
        • 2021-05-30
        • 2019-01-21
        • 2017-03-14
        • 2018-04-03
        • 2023-01-17
        • 2015-01-13
        • 2018-04-20
        • 2019-08-09
        相关资源
        最近更新 更多