Найдите первое и последнее значения в столбце, затем возьмите значения рядом с ним - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть два столбца: столбец A - это список чисел , а столбец B - время .Мне нужно найти первое значение, которое не является 7 (обычно 0) в столбце А, а затем взять время рядом с ним.

Я пытался использовать ниже, но я продолжаю получать N / A:

= INDEX (H: H, MATCH ("0", G: G, 0) +0,0,0)

Я также хотел бы найти последнее значение, которое не равно 7 (может быть 1, 2, 3, 5 или 0), а затем взять время справа, но я не уверен, как это сделать, возможно, поиск снизу вверх?Будет ли VBA проще?

В приведенном ниже примере выделены правильные ответы (извините за форматирование).

7 |0: 00: 30
7 |0: 01: 00
7 |0: 01: 30
0 |0: 02: 00
0 |0: 02: 30
0 |0: 03: 00
0 |0: 03: 30
0 |0: 04: 00
2 |0: 04: 30
2 |0: 05: 00
1 |0: 05: 30
2 |0: 06: 00
2 |0: 06: 30
7 |0: 07: 00
7 |0: 07: 30
7 |0:08:00

Спасибо!

1 Ответ

0 голосов
/ 13 сентября 2018

Ваше первое - это простое условие "найти первое соответствие строки".

=INDEX(B:B, AGGREGATE(15, 7, ROW(A:A)/(A$1:A$16<>7), 1))

Второе должно учитывать первое местоположение.

=INDEX(B:B, AGGREGATE(15, 7, ROW(INDEX(A:A, AGGREGATE(15, 7, ROW(A:A)/(A$1:A$16<>7), 1)+1):A$16)/(INDEX(A:A, AGGREGATE(15, 7, ROW(A:A)/(A$1:A$16<>7), 1)+1):A$16=7), 1)-1)

Для ваших примеров данных это также работает, но я бы провел больше тестов для других образцов данных, прежде чем полагаться на них.Особенно, если есть «числа, которых нет» под второй партией 7-х.

=INDEX(B:B, MATCH(6, A:A))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...