определить год начала самого длинного действительного ряда - PullRequest
0 голосов
/ 28 апреля 2019

Мне нужно вернуть год начала самой длинной действительной серии данных. У меня есть следующие данные:

     1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007
ID_A 0    0    1    2    3    0    1    2    3    4    5    0    1

Определить год окончания самой длинной ненулевой серии несложно, используя INDEX (= 2005). У меня проблема в том, чтобы вернуть начальный год самой длинной ненулевой серии, а именно 2001 год. Как мне этого добиться? Спасибо.

Ответы [ 2 ]

1 голос
/ 28 апреля 2019

Я собираюсь предположить, что формула, которую вы используете и описываете как простую, выглядит примерно так:

=INDEX(B1:N1,,MATCH(MAX(B2:N2),B2:N2,0))

enter image description here

Эта формулане проверяет правильность последовательности значений во второй строке, поэтому я предполагаю, что все серии действительны при предложении формулы для начального года:

=INDEX(B1:N1,,MATCH(MAX(B2:N2),B2:N2,0)-MAX(B2:N2)+1)

Приведенное выше в основном получает столбецномер предыдущего года, использованного ранее, и вычитает последнее значение в серии, чтобы получить начальный год.

enter image description here

Если срок действия рядачтобы проверить, то первая формула не будет работать (а вторая тоже).Я не думаю, что это было бы достаточно просто, так что одной формулы было бы достаточно, но это определенно должно быть возможно с помощью вспомогательной строки, которая идентифицирует действительный ряд (простое вычитание между значением ряда и следующим значением).

0 голосов
/ 29 апреля 2019

Джерри избил меня до удара . Я частично написал ответ и затем должен был уйти на некоторое время; Я чувствую, что это все еще что-то добавляет (а именно, более длинное объяснение), но поскольку моя формула такая же, как у него, и потому что он, по моему мнению, является полным и правильным, я делаю это сообщество вики.


Итак, мы можем найти длину самого длинного ненулевого ряда (5) с помощью функции MAX:

=MAX(B2:N2)

Затем мы можем использовать это внутри функции MATCH, чтобы найти конец этого ряда в строке ID_A (здесь 11, как мы считаем от 1 в столбце 1995 года):

<b>=MATCH(</b> MAX(B2:N2) <b>,B2:N2,0)</b>

Чтобы найти конечный год, используйте все это в INDEX, чтобы вернуть, в данном случае, 11-й год:

<b>=INDEX(B1:N1,,</b> MATCH(MAX(B2:N2),B2:N2,0) <b>)</b>

Чтобы найти начальный год, используйте «ИНДЕКС» таким же образом, но считайте в обратном порядке 5 - нет, 5 минус 1 - места:

=INDEX(B1:N1,1,MATCH(MAX(B2:N2),B2:N2,0) <b>-MAX(B2:N2)+1</b> )

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