максимум средних показателей - PullRequest
0 голосов
/ 23 мая 2018

Привет, ребята. У меня есть таблица, похожая на эту:

Company / Score 1/ Score 2/ Score 3
Apple   / 5  / 4 / 3
Banana  / 3  / 6 / 6
Kiwi    / 0  / 5 / 1

Есть ли способ найти наиболее эффективную компанию из этого списка, используя средние значения их баллов в одной формуле, без использования вспомогательного столбца?Таким образом, для приведенного выше примера я вернусь к компании Banana, потому что она дает мне наибольшее количество баллов при усреднении всех трех столбцов.Также под средним я подразумеваю сумму / число, если> 0, поэтому для KIWI среднее значение равно 3, а не 2.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

При жестком кодировании массива в 3 столбца мы можем использовать формулу массива.

Обратите внимание, что формулы массива необходимо вводить с помощью ctrl + shift + введите

Это также предполагает, что столбцы A, B, C, D. соответственно.

=INDEX(A:A,MATCH(MAX((B:B+C:C+D:D)/MAX((IF(B:B>0,1,0)+IF(C:C>0,1,0)+IF(D:D>0,1,0)),1)),(B:B+C:C+D:D)/MAX((IF(B:B>0,1,0)+IF(C:C>0,1,0)+IF(D:D>0,1,0)),1),0))

Небольшое объяснение:

  1. (B:B+C:C+D:D) = сумма строк в виде массива
  2. MAX((IF(B:B>0,1,0)+IF(C:C>0,1,0)+IF(D:D>0,1,0)),1) = общая сумма, которую мы собираемся суммировать в массиве (3 для Apple, Banana, 2 для киви).Максимум - избавиться от любых ошибок деления на ноль
  3. {1}/{2} = Среднее для каждой строки
  4. Затем мы можем сделать Max({3}), чтобы увидеть самое высокое среднее значение
  5. INDEX(A:A,{4},{3}) найдет соответствующую компанию на основе наибольшего среднего значения, которое мы нашли

Поддерживающие скриншоты:

enter image description here ctrl + смещение + введите enter image description here

0 голосов
/ 23 мая 2018

Предполагая, что ваши оценки неотрицательны и начинаются с B2:

=INDEX(A2:A4,MATCH(MAX(MMULT(B2:D4,--(ROW(INDIRECT("1:"&COLUMNS(B2:D2)))>0))/MMULT(--(B2:D4>0),--(ROW(INDIRECT("1:"&COLUMNS(B2:D2)))>0))),MMULT(B2:D4,--(ROW(INDIRECT("1:"&COLUMNS(B2:D2)))>0))/MMULT(--(B2:D4>0),--(ROW(INDIRECT("1:"&COLUMNS(B2:D2)))>0)),0))

Это расширится до необходимого вам количества строк / столбцов.Имейте в виду, что он вернет первый рекорд в случае ничьей.Кроме того, если есть возможность получить все нули, вы должны заключить массив, переданный в MAX, в IFERROR (эту формулу нужно будет ввести в виде формулы массива (ctrl + shift + enter):

=INDEX(A2:A4,MATCH(MAX(IFERROR(MMULT(B2:D4,--(ROW(INDIRECT("1:"&COLUMNS(B2:D2)))>0))/MMULT(--(B2:D4>0),--(ROW(INDIRECT("1:"&COLUMNS(B2:D2)))>0)),0)),MMULT(B2:D4,--(ROW(INDIRECT("1:"&COLUMNS(B2:D2)))>0))/MMULT(--(B2:D4>0),--(ROW(INDIRECT("1:"&COLUMNS(B2:D2)))>0)),0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...