Найти первое вхождение значения в строке и вернуть ячейку рядом с ним

Я хочу найти в строке первое вхождение «Больной» и получить дату справа от него. Любые идеи?

Мы попробовали это, но считаем, что есть более простой способ:

=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))))

Я хочу найти более простой метод, потому что мне нужно сделать это для нескольких таблиц с разными размерами.


person Rebecca Peel Joanne    schedule 10.04.2019    source источник
comment
Будете ли вы искать только 1 строку за раз? Если это так, вам может подойти что-то вроде этого: =INDEX(D2:I2,MATCH("Sick",C2:H2,0))   -  person tigeravatar    schedule 10.04.2019
comment
О, может быть, я должен был упомянуть об этом, больной может повторить:   -  person Rebecca Peel Joanne    schedule 11.04.2019
comment
A B C D E F G H J Строка 2 ok 04.10.2019 больной 04.11.2019 ok 04.12.2019 Дата болезни, поэтому мне нужно найти первое появление слова «больной» в строке и дату рядом с ним. :)   -  person Rebecca Peel Joanne    schedule 11.04.2019
comment
Вы пробовали формулу индекса/соответствия? Он делает именно то, что вы ищете.   -  person tigeravatar    schedule 11.04.2019


Ответы (1)


Когда все в один ряд:

    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 и используйте соответствующее значение для 2-го столбца (содержащего запрошенную дату).

person Dominique    schedule 10.04.2019
comment
@tigeravatar: Вы правы, я соответствующим образом адаптировал свой ответ. - person Dominique; 10.04.2019
comment
Хорошо, это сработало бы блестяще, но «больной» может появляться более одного раза в строке. Строка выглядит так: здоровые данные; дата болезни; здоровая дата; дата болезни; середина здоровой даты..... 45 таких столбцов с состоянием здоровья и датой (всего 90), и я хочу найти первое появление больного и соответствующую дату :) - person Rebecca Peel Joanne; 11.04.2019
comment
@RebeccaPeelJoanne Вы пробовали формулу индекса/соответствия? Он делает именно то, что вы ищете. - person tigeravatar; 11.04.2019