Страницы: 1
RSS
Сумма из N последних по порядку строк, удовлетвряющих несколким условиям, с дополнительным выбором ячейки.
 
Здравствуйте, подскажите как реализовать такую вот вещь.

Имеется файл с матчами, в примере, две команды  в лиге "ENG L1". У  команд были до этого игры(не между собой, а с другими командами той же  лиги), может 2, а может и все 20. Меня интересует ПЯТЬ(как пример)  последних игр КАЖДОЙ команды.

То есть, рабочая формула ячейки должна уметь найти 5 последных игр  гостевых/домашних(в сумме пять)  "Sheffield United" производя поиск в  двух разных столбцах; в пределе одной лиги; начиная, но не включая, со  строки формулы; и по нахождению 5 последних игр остановиться.

Для примера прилагаю файл, который заполнен мной. G1H - кол-во игр  домашней команды дома; G1A - кол-во игр домашней команды в гостях; G2H и  G2A - по аналогии.
Для пары "Sheffield United - Coventry City" забил значения, но это все  ручками. А как сделать формулами или макросами? Разбить то домашняя игра  или гостевая я могу по формуле (=IF(COUNTIF(C4 : D13,C4)>COUNTIF(C4 :  D13,D4),C4,D4) - координаты ячеек никак не относятся к приложенной  таблице), но это если все стоит друг за другом и под другом, и задан  диапозон.
 
zybik, добрый день, я честно говоря не понял что нужно сделать...да и слишком много не нужных данных...
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
zybik написал:
начиная, но не включая, со  строки формулы; и по нахождению 5 последних игр остановиться.
вот это поясните
Цитата
zybik написал:
(=IF(COUNTIF(C4 : D13,C4)>COUNTIF(C4 :  D13,D4),C4,D4)
- это от куда?
Название темы тоже не понятное. Делайте работу над ошибками.
Изменено: БМВ - 01.06.2018 09:40:53
По вопросам из тем форума, личку не читаю.
 
Не тратьте время на такие расчёты. Буки не дураки.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, Навкрено вы правы так как определить последние не сложно
, что-то типа
=IF(ROW()>=IFERROR(LARGE(IF((B9:B$697=$B9)*(($E9:$E$697=$E9)+($G9:$G$697=$E9));ROW($A9:$A$697));5);1);1;"")
А вот дальнейшие шаги не понятны и туманны.
По вопросам из тем форума, личку не читаю.
 
Цитата
a.i.mershik написал:
я честно говоря не понял что нужно сделать...да и слишком много не нужных данных..
Согласен, запутал все до немогу. Переделал файл немного.
Цитата
БМВ написал:
- это от куда?Название темы тоже не понятное. Делайте работу над ошибками.
Это если матчи стоят подряд вот так вот:
 


Работа над ошибками. На примере матча "Sheffield United - Coventry City" в лиге ENG L1.

Нужно узнать сколько всего голов забыла домашняя команда. Домашняя команда - Sheffield United. Но не просто сумму посчитать, а посчитать забитые мячи последних 5 игр. В идеале получается, формула или макрос начинают поиск снизу вверх (длинная красная стрелка), и находит матчи в порядке их нумерации. Как только нашла последний матч, начинает (или в процессе) считать кол-во голов забытих этой командой (выделены красным), по итогу насчитывает в данном случае 7.
Понятно, что нужна возможность просто ее протянуть для всего столбца, чтоб под каждый конкретный матч оно считала значения. Если же игр меньше 5 (или числа N - заданное нами кол-во последних матчей для поиска), то выводить "данных недостаточно".

 
=IFERROR(SUM((ROW($A$2:$A696)>=LARGE(IF(($B$2:$B696=$B697)*(($E$2:$E696=$E697)+($G$2:$G696=$E697));ROW($A$2:$A696));5))*($B$2:$B696=$B697)*(($E$2:$E696=$E697)*$K$2:$K696+($G$2:$G696=$E697)*$L$2:$L696));"Данных недостаточно")
или
=IFERROR(SUM(MOD(LARGE(IF(($B$2:$B696=$B697)*(($E$2:$E696=$E697)+($G$2:$G696=$E697));ROW($A$2:$A696)+(($E$2:$E696=$E697)*$K$2:$K696+($G$2:$G696=$E697)*$L$2:$L696)*1%);{1;2;3;4;5});1)/1%);"Данных недостаточно")
Обе массивные
Изменено: БМВ - 01.06.2018 15:03:29
По вопросам из тем форума, личку не читаю.
 
Скрытый текст
Вижу одну константу тут - это 5. То есть, это и есть N - последних матчей? Изменяю на 3 в самом начале, и протягиваю, но там где есть сыгранных 3 матча, ничего не меняется, данных нет пишет.
 
Цитата
БМВ написал:
Обе массивные
!!!

хотя во второй ошибка
ВЫШЕ ИСПРАВИЛ ОШИБКУ
=IFERROR(SUM((ROW($A$2:$A696)>=LARGE(IF(($B$2:$B696=$B697)*(($E$2:$E696=$E697)+($G$2:$G696=$E697));ROW($A$2:$A696));$W$1))*($B$2:$B696=$B697)*(($E$2:$E696=$E697)*$K$2:$K696+($G$2:$G696=$E697)*$L$2:$L696));"Данных недостаточно")

=IFERROR(SUM(MOD(LARGE(IF(($B$2:$B696=$B697)*(($E$2:$E696=$E697)+($G$2:$G696=$E697));ROW($A$2:$A696)+(($E$2:$E696=$E697)*$K$2:$K696+($G$2:$G696=$E697)*$L$2:$L696)*1%);ROW($A$1:INDEX($A:$A;$W$1)));1)/1%);"Данных недостаточно")


W3 - вводить 3,4,5....
Изменено: БМВ - 01.06.2018 21:44:35
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх