我需要的是
B
列值(红色)应由Excel计算,不含VBA A
列(Conf. Level
)具有每行的条件值B
列的相关单元格必须打印第一个相同行单元格的列标题>> =相关标准值例如:
B2打印0,因为C2是第一个值> = = A2
B3打印2,因为E3是第一个值> = = A3
我已经使用Excel,索引,匹配标记阅读了此网站中的问答,并尝试了一些但我无法实现超过#N / A.我还阅读了Index()
和Match()
函数的Microsoft Excel帮助页面。
实际情况下我有很多行(不仅仅是3个数据行)。
答案 0 :(得分:2)
我认为你看INDEX
和MATCH
是正确的。看看以下是否符合您的意图:
公式查找没有指定类型的“匹配” - 也就是说,它会找到小于您要查找的值的最后一个值(假设值已排序)。您添加1
以获取您想要的值(第一个值不小于==大于或等于的值)。然后,它使用INDEX
在行C1:F1
中查找相应的值(我使用字母),并在单元格B2
中返回该值。如果这不是你想要的,请澄清......这是我从问题中理解的。
显然,如果您需要多次重复此公式,请按如下方式将其写入B2:
=INDEX($C$1:$F$1, MATCH(A2, C2:F2)+1)
并双击右下角的小“拖动手柄”,使其复制到B列中的所有行(同时正确保留绝对/相对寻址)
编辑 @Simoco指出,如果第一个值大于标准,我的公式将失败(因为这意味着“没有小于”的值)。您可以使用
进行调整=IFERROR(INDEX($C$1:$F$1, MATCH(A2, C2:F2)+1),$C$1)
这是一个非常酷的函数,它说“如果事情发生错误,请改用其他值”。这确实假设至少有一个值符合标准;如果有可能没有任何值符合标准,您可能需要更聪明:
=IFERROR(INDEX($C$1:$F$1, MATCH(A2, C2:F2)+1),IF(MAX(C2:F2)>A2,$C$1, "No match"))
显然,最后一条错误信息可能是您想要的任何信息。
答案 1 :(得分:2)
在B2
中尝试这个:
=SMALL(IF(C2:F2>A2,$C$1:$F$1),1)
这是数组公式,因此键入公式然后按 CTRL + SHIFT + ENTER 。曲线括号将自动出现在公式的开头和结尾。然后拖下公式。
如果没有大于A2
的值,SMALL
会返回#NUM!