在一行中找到第一个出现的值,然后返回其旁边的单元格

时间:2019-04-10 14:24:50

标签: excel excel-formula

我想连续查找“病态”的首次出现,并在右侧找到日期。有什么想法吗?

我们已经尝试过,但是相信有一种更简单的方法:

=SI.ERROR(INDICE(D2,COINCIDIR("Sick",C2,0)),SI.ERROR(INDICE(F2,COINCIDIR("Sick",E2,0)),INDICE(H2,COINCIDIR("Sick",G2,0))))

英语:

=IFERROR(INDEX(D2,MATCH("Sick",C2,0)),IFERROR(INDEX(F2,MATCH("Sick",E2,0)),INDEX(H2,MATCH("Sick",G2,0))))

我想找到一种更简单的方法,因为我必须对多个具有不同维度的表执行此操作

1 个答案:

答案 0 :(得分:2)

当所有内容都在一行中时:

    A     B             C       D             E     F             G
Row 2    ok    10/04/2019    sick    11/04/2019    ok    12/04/2019

那么以下公式可以解决您的问题:

=INDEX(B2:G2;1;MATCH("sick";B2:G2)+1)

这意味着:在B2:G2中,验证是否可以找到“病态”,如果是,请取其旁边的列(因此+1会因为MATCH()返回列号)

当所有内容都在一列中时:

这正是VLookup()函数的重点:看下面的例子:

1      A             B            C
2                title          Date
3                   ok    10/04/2019
4                 sick    11/04/2019
5                   ok    12/04/2019

使用以下公式:

=VLOOKUP("sick";B1:C4;2)

这将产生值11/04/2019(当然,在正确的单元格格式之后)。

含义:在表B1:C4中查找值“病态”,并在第二列(包含请求的日期)中使用相应的值。