1

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

         2011  2012 2013    2014    2015    2016
Player 1    -   -   10.0    10.0    10.0    10.0
Player 2    -   -   16.0    10.0    10.0    10.0
Player 3    -   -   16.0    10.0    20.0    10.0

Таблица выше заполнила бы другую таблицу, поместив год в последний столбец

  • Игрок 1 - 2012
  • Игрок 2 2013
  • Игрок 3 - 2015

Я искал и нашел пост, который похож: вернуть номер столбца 2-го матча. Однако я с треском проваливаюсь, чтобы превратить это в то, что подходит моему столу.

Большое спасибо за любые указатели, которые вы можете дать.

Майкл.

1 ответ1

1

С вашими данными в A1:G4 я смог использовать следующую формулу:

=INDEX($B$1:$G$1, MATCH(2, 1/(B2:G2 <> G2), 1))

Это формула массива, поэтому вы должны использовать ее с Ctrl + Shift + Enter, а не просто Enter.

Он в основном работает, находя позицию массива последнего вхождения, отличного от значения в 2016 году, и затем возвращая заголовок в той же позиции массива.

Возьмите игрока 3 в качестве примера. Он смотрит в массиве 2011-2016, чтобы увидеть, что отличается от значения 2016 года. Затем он делает логический массив из сравнений. Вы генерируете массив [ИСТИНА, ИСТИНА, ИСТИНА, ЛОЖЬ, ИСТИНА, ЛОЖЬ], а затем делаете каждое значение делителем от 1. В результате получается новый массив [1, 1, 1, # DIV0, 1, # DIV0]. Затем вы смотрите, чтобы найти значение 2 в массиве. Вы не можете найти его, но ваш параметр соответствия равен 1, т.е. возвращает последнее значение, которое меньше или равно значению поиска.

Вот картинка.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .