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
。 有任何想法吗?
您可以使用INDEX
和MATCH
的标准组合来解决此问题。 该公式将是(每个截图下面):
=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.6
会Significant
。 不过,您可能希望该范围返回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)}
但是这对我不起作用 – 我认为只要INDEX
和MATCH
方法比较容易,除非你绝对需要一个数组公式。