Хорошо, если ваши числовые данные находятся в строках на Sheet1 , введите значение М в Sheet2!M1 и введите
=AVERAGE(LARGE(Sheet1!1:1, ROW(INDIRECT("1:"&M$1))))
в Sheet2!A1 .  (Если ваши данные находятся, например, только в столбцах с G по Z , измените Sheet1!1:1 до листа 1 Sheet1!G1:Z1 .)  Нажмите Ctrl+Shift+Enter, чтобы создать формулу массива.  Перетащите столько строк, сколько вам нужно, и все готово.
Объяснение:
- &- это оператор конкатенации строк в Excel (и, как я слышал, Libre Office Calc очень похож на Excel), так что если- Sheet2!M1, скажем, 17, затем- "1:"&M$1становится строковым значением- "1:17".
- INDIRECT("1:17")- это область, включающая строки с- 1по- 17, и
- ROW()этого - массив- {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}.
 Это хитрость для создания значения массива, которое определяется данными времени выполнения.
- LARGE(Sheet1!1:1, {1…17})- это массив- { LARGE(Sheet1!1:1,1), LARGE(Sheet1!1:1,2), LARGE(Sheet1!1:1,3), …}, который является крупнейшим участником- Sheet1!1:1, второй по величине,… и так далее, вплоть до 17-го.
Спасибо Тейлину, чей ответ на подобный вопрос я использовал для вдохновения.