VBA数组公式得出两个值之间的分数

我有以下单元格的分数范围和说明:

Statement Critical Significant Average Minor Non-critical Grades 0.8 0.6 0.4 0.2 0 

我有一个数据集,其中成绩将从0到1,并希望为每个观察创build一个stringvariables,将根据成绩打印上述声明。

所以,对于一个随机单元格X1我的公式是:

 ={IF(X1>=A2:A6;B2:B6)} 

但是,如果值为0.3,则此数组公式返回False 。 有任何想法吗?

您可以使用INDEXMATCH的标准组合来解决此问题。 该公式将是(每个截图下面):

=INDEX($F$2:$J$2,MATCH(B8,$F$3:$J$3,-1))

哪里

  • $F$2:$J$2 – “陈述”的列表,如关键,重要
  • B8 – 有问题的等级
  • $F$3:$J$3 – 等级范围
  • -1 – 作为MATCH函数的参数是“大于”

截图:

在这里输入图像说明

在这个例子中,请注意0.4 < score <= 0.6Significant 。 不过,您可能希望该范围返回Average在这种情况下,整个MATCH函数需要一个偏移量,例如:

=INDEX($F$2:$J$2,MATCH(B8,$F$3:$J$3,-1)+1)

但注意一个0的分数,这将给#REF! 错误,除非你创build一个新的“陈述”,例如“小于关键”,得分为-1。

另外,请注意你的数组公式:

={IF(X1>=A2:A6;B2:B6)}

是不是很正确 – 通常你input一个公式,然后使用Ctrl + Shift + Enter来创build一个数组公式,在你的情况是这样的:

{=IF(X1>=A2:A6;B2:B6)}

但是这对我不起作用 – 我认为只要INDEXMATCH方法比较容易,除非你绝对需要一个数组公式。