Excel - Найти соответствующие значения в одной формуле - PullRequest
0 голосов
/ 05 июля 2018

Я не уверен, как сформулировать это, отсюда и смутное название ... извините.

Вот мой сценарий.

Данные

Таблица 1

Col A = Домашняя команда

Col B = Выездная команда

Col C = Главная оценка

Col D = Счет гостей

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

Проблема в том, что команда может появиться в колонке, дома или в гостях. Если команда - Col A - мне нужно значение в Col C. Если команда в Col B - мне нужно значение в Col D.

Любые идеи приветствуются. Я в тупике.

Спасибо

Ответы [ 4 ]

0 голосов
/ 05 июля 2018

Другое использование AVERAGEIFS с INDEX / AGGREGATE.

=AVERAGEIFS(INDEX(E:E, AGGREGATE(14, 7, ROW($2:$999)/((C$2:C$999=I5)+(D$2:D$999=I5)), 3)):F$999, INDEX(C:C, AGGREGATE(14, 7, ROW($2:$999)/((C$2:C$999=I5)+(D$2:D$999=I5)), 3)):D$999, I5)

enter image description here

0 голосов
/ 05 июля 2018

Это будет довольно уродливая формула, но она помогает получить то, что вы хотите, среднее из последних трех оценок команды:

  • В этом примере я поместил значение поиска (Team2) в F9 (используется в формулах)
  • Создайте вспомогательный столбец, поместите в него эту формулу и перетащите ее вниз (нам нужно число попаданий в нашей будущей формуле INDEX):

    =IF(OR(A2=$F$9,B2=$F$9),ROW(A2),"")
    

enter image description here

  • Теперь нам нужно создать формулу, которая будет усреднять самые большие 3 числа

    =AVERAGE(INDEX(A1:D7,LARGE(E:E,1),MATCH($F$9,INDIRECT("A"&LARGE(E:E,1)&":B"&LARGE(E:E,1)),0)+2),INDEX(A1:D7,LARGE(E:E,2),MATCH($F$9,INDIRECT("A"&LARGE(E:E,2)&":B"&LARGE(E:E,2)),0)+2),INDEX(A1:D7,LARGE(E:E,3),MATCH($F$9,INDIRECT("A"&LARGE(E:E,3)&":B"&LARGE(E:E,3)),0)+2))
    

В этом случае формула вернет 4.33333

Возможно, есть лучший способ, но этот работает:)

0 голосов
/ 05 июля 2018

Просто для интереса, вот пример того, как сделать это с помощью одной формулы

=AVERAGE(INDEX(C1:D7,N(IF({1},LARGE(IF(A2:B7=F2,ROW(A2:B7)*3+COLUMN(A2:B7)),{1,2,3})/3)),
N(IF({1},MOD(LARGE(IF(A2:B7=F2,ROW(A2:B7)*3+COLUMN(A2:B7)),{1,2,3}),3)))))

Должен быть введен как формула массива, используя Ctrl Shift Введите и предполагает, что данные начинаются в столбце A

enter image description here

Редактировать

Нет необходимости делать деление только для строки, поэтому можно упростить до

=AVERAGE(INDEX(C1:D7,N(IF({1},LARGE(IF(A2:B7=F2,ROW(A2:B7)),{1,2,3}))),
N(IF({1},MOD(LARGE(IF(A2:B7=F2,ROW(A2:B7)*3+COLUMN(A2:B7)),{1,2,3}),3)))))
0 голосов
/ 05 июля 2018

Вы можете использовать COUNTIFS и SUMIFS для вычисления логического среднего.

Формула в H4 ниже:

=(SUMIFS(C:C,A:A,G4)+SUMIFS(D:D,B:B,G4))/(COUNTIFS(B:B,G4)+COUNTIFS(A:A,G4))

homeawayteam

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...