Сложный вложенный массив в Excel - PullRequest
0 голосов
/ 24 ноября 2018

Я пытаюсь выполнить поиск в Excel и хочу сделать это без vba.

Главным образом, чтобы электронную таблицу можно было использовать на Mac или Windows без проблем, а также дляСчет результатов «живой», с обновлениями, происходящими в режиме реального времени.

Пока у меня есть:

IMG1

И с использованием формулы массива

{= MAX (IF (B2: B18 = F1, C2: C18))}

Я могу вернуть лучший результат для команды 1 (93)

Однако, хотяВ команде 1 может быть столько участников, сколько они захотят, регистрируются только назначенные участники.

И поскольку Феликс не является назначенным участником (только четыре, перечисленные в ячейках F2 - F5)

лучший результат для команды 1 должен быть результатом Райана 64.

Так что моя загадка состоит в том, что я хочу вернуть максимальный результат (как моя формула уже делает) при условии, что имя участника указано в списке команд вколонка F.

Мне не повезло, и мне интересно, если этодаже возможно без кодирования VBA.

Большое спасибо

Michael

Ответы [ 3 ]

0 голосов
/ 24 ноября 2018

Вы можете использовать эту введенную в массив функцию:

=MAX(($A$2:$A$18=TRANSPOSE(F2:F5))*($B$2:$B$18=F1)*$C$2:$C$18)

Чтобы ввести / подтвердить формулу массива , удерживайте нажатой клавишу ctrl + смещение при нажатии введите .Если вы сделаете это правильно, Excel поместит фигурные скобки {...} вокруг формулы, отображаемой в строке формул.

enter image description here

Обратите внимание, что я также решил проверитьчто назначенный участник находится в необходимой команде, на случай, если в разных командах два человека с одинаковыми именами.Но в этом нет необходимости.

ПРИМЕЧАНИЕ: AGGREGATE Функциональное решение удалено, поскольку оно не работает должным образом.

0 голосов
/ 25 ноября 2018

Вы также можете использовать

=MAX(IF(ISNUMBER(SEARCH(F2:F5,A2:A18)),IF(B2:B18=F1,C2:C18)))

Ввод с помощью Ctrl + Shift + Enter

0 голосов
/ 24 ноября 2018

enter image description here

 =MAX(IF(Scores[Team]=E1,Scores[Score])*(Scores[Competetitor]=TRANSPOSE(Team1[Team 1])))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...