Как получить среднее из более высоких значений М в N клетках?

358
Daniel Hernández

У меня есть таблица со значениями в матрице с несколькими строками. Для каждой строки у меня есть N номеров. Я хочу рассчитать среднее значение M для более высоких значений строки. С М <Н. Есть ли общая функция для этого?

Если такой функции нет, я полагаю, что могу добавить ее с помощью плагинов Python для gnumeric или базового плагина для libreoffice.

0
Постарайтесь понять, чего вы пытаетесь достичь, и, возможно, приведите небольшой пример. peanut_butter 10 лет назад 0
Это не совсем тот же вопрос, потому что в этом мы не знаем ранее, сколько значений будет использовать. В предыдущем вопросе ясно, что число ячеек для выбора равно 3. Так что функция, в которой я нуждаюсь, имеет набор ячеек и число M в качестве параметров. Например мажеред (комплект, м). Daniel Hernández 10 лет назад 0
Возможно связано: [Суммировать до N наивысшего значения из серии?] (Http://superuser.com/q/571915/53590) (отказ от ответственности: мой собственный вопрос :)) a CVn 10 лет назад 0

1 ответ на вопрос

1
Scott

ОК, если числовые данные в ваших строках включены 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-го.

Спасибо Тейлину, чей ответ на подобный вопрос я использовал для вдохновения.