ОК, если числовые данные в ваших строках включены Sheet1, введите значение М в Sheet2!M1и введите
=AVERAGE(LARGE(Sheet1!1:1, ROW(INDIRECT("1:"&M$1)))) в Sheet2!A1. (Если ваши данные только, например, колонны Gчерез Z, изменение Sheet1!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()этого массива.
Это хитрость для создания значения массива, которое определяется данными времени выполнения.LARGE(Sheet1!1:1, )это массив{ LARGE(Sheet1!1:1,1), LARGE(Sheet1!1:1,2), LARGE(Sheet1!1:1,3), …}, который является самым большим членомSheet1!1:1, вторым по величине,… и так далее, вплоть до 17-го.
Спасибо Тейлину, чей ответ на подобный вопрос я использовал для вдохновения.