匹配第一个令人满意的不等式与1个标准&获得列标题

时间:2014-04-30 18:15:06

标签: excel excel-formula

enter image description here

我需要的是

  1. B列值(红色)应由Excel计算,不含VBA
  2. A列(Conf. Level)具有每行的条件值
  3. 在每行中,B列的相关单元格必须打印第一个相同行单元格的列标题>> =相关标准值
  4. 例如:

      

    B2打印0,因为C2是第一个值> = = A2

         

    B3打印2,因为E3是第一个值> = = A3

    我已经使用Excel,索引,匹配标记阅读了此网站中的问答,并尝试了一些但我无法实现超过#N / A.我还阅读了Index()Match()函数的Microsoft Excel帮助页面。

    实际情况下我有很多行(不仅仅是3个数据行)。

2 个答案:

答案 0 :(得分:2)

我认为你看INDEXMATCH是正确的。看看以下是否符合您的意图:

enter image description here

公式查找没有指定类型的“匹配” - 也就是说,它会找到小于您要查找的值的最后一个值(假设值已排序)。您添加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!