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