Как получить среднее из более высоких значений М в N клетках?
У меня есть таблица со значениями в матрице с несколькими строками. Для каждого ряда у меня есть N номеров. Я хочу рассчитать среднее значение M для более высоких значений строки. С М<Н. Есть ли общая функция для этого?
Если такой функции нет, я полагаю, что могу добавить ее с помощью плагинов Python для gnumeric или базового плагина для libreoffice.
1 ответ
ОК, если ваши данные числовые данные в строках на 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()
из этого массива{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-го.
Спасибо Тейлину, чей ответ на подобный вопрос я использовал для вдохновения.