Вы можете сделать это с помощью формул и нескольких вспомогательных массивов. Скажем, ваши данные в столбцах с A по J, начиная с строки 1. Используйте столбцы с L по P для пяти результатов. Столбцы R-AA - это первый вспомогательный массив, а столбцы AC-AL - второй вспомогательный массив. Вы можете скрыть вспомогательные массивы или переместить их в другое место (просто настройте ссылочные вычисления столбцов).
Начнем с первого вспомогательного массива. В Excel есть все виды функций, которые работают слева направо, но нет функций, работающих справа налево (если только вы не используете израильское издание :-)). Первый вспомогательный массив просто меняет порядок данных. Ячейка R1 будет содержать:
=OFFSET($A1,0,27-COLUMN(), )
Скопируйте это в ячейки с S1 по AA1.
Второй вспомогательный массив определяет местоположения и порядковые номера ненулевых значений. Ячейка AC1 содержит:
=IF(R1=0,"",COLUMN()-28-COUNTIF($R1:R1,0))
Скопируйте это в столбцы AD через AL.
Теперь для значений результата. Введите эту формулу в L1 и скопируйте в M1 через P1:
=INDEX($R1:$AA1, ,MATCH(1,$AC1:$AL1,0))
Измените формулы от M до P, заменив параметр поиска в функции MATCH на 2–5, чтобы формулы от M до P были:
=INDEX($R1:$AA1, ,MATCH(2,$AC1:$AL1,0))
=INDEX($R1:$AA1, ,MATCH(3,$AC1:$AL1,0))
=INDEX($R1:$AA1, ,MATCH(4,$AC1:$AL1,0))
=INDEX($R1:$AA1, ,MATCH(5,$AC1:$AL1,0))
Теперь все формулы могут быть скопированы на лист по мере необходимости.