Страницы: 1
RSS
Подсчёт количества строк, разница между значениями колонок которых удовлетворяет условию
 
Есть таблица в которой строки - это активности (работы), колонки - название работы, плановая дата начала, окончания, фактическая дата начала, окончания.
Нужно подсчитать количество строк для которых работа просрочена, т.е. колонка план. дата начала < чем факт. дата начала и аналогично с датой окончания.
СЧЁТЕСЛИМН, как я понял не умеет сравнивать разность колонок, например следующая запись будет не верной (выделено)
=СЧЁТЕСЛИМН(Данные!B:B;[@Шифр];Данные!D:D;"<>";Данные!L:L-Данные!F:F;"<1")

Возможно ли как то реализовать формулу подсчёта без использования VBA и создания промежуточных столбцов в исходной таблице, для подсчёта разности между сравниваемыми столбцами?
 
можно
нужен пример с данными и рассказ о том, что нужно посчитать
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
=sumproduct(--(план. дата начала < чем факт. дата начала))
только не надо весь столбец указывать, а то крепко задуматься заставите приложение.
По вопросам из тем форума, личку не читаю.
 
БМВ,
план начала 26.09.2022, на работу запланировано 5 дней
фактически начали 27.09.2022, закончили 28.09.2022
Цитата
Иван Ган написал:
Нужно подсчитать количество строк для которых работа просрочена,
описанная выше задача просрочена?
а что посчитает формула:
Цитата
=sumproduct(--(план. дата начала < чем факт. дата начала))
мои предпочтения прежние: дождаться описания задачи, а потом решать
Изменено: Ігор Гончаренко - 28.09.2022 09:18:09
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, ну я ж не задачу решаю, а метод подсказываю. Надо было так
=sumproduct(--(план. дата начала < чем факт. дата начала)* (аналогично с датой окончания.))  :D
По вопросам из тем форума, личку не читаю.
 
Подготовил пример с данными. Подсчёт ведется с помощью промежуточных столбцов Н-Н, О-О, Просрочено.
Если Факт больше чем плановая дата, то работа считается просроченной (Н-Н, О-О - факт минус план).
Если начало или окончание просрочено,  то строка считается просроченной, если просрочено и начало и окончание, то просрочка считается один раз.

Возможно ли сделать такой подсчет без создания промежуточных столбцов Н-Н, О-О, Просрочка?
Изменено: Иван Ган - 28.09.2022 09:52:22
 
согласен, часто достаточно подсказки, но иногда все без толку пока формулу не напишешь в файл в нужную ячейку. т.е. бывает по разному,
но есть одна четкая закономерность:
чем меньше конкретики у автора в описании задачи, тем больше в его теме вот таких постов (ни о чем)

см. вложение (ПросроченоВсего)
Изменено: БМВ - 28.09.2022 10:37:54
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
написал:
описанная выше задача просрочена?
Да, такая строка тоже должна быть в статистике просрочки.

Ігор Гончаренко, Ваша формула считает только те строки, для которых заполнена ФактДата (без учёта пустых).

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

В любом случае БМВ, Ігор Гончаренко, спасибо за подсказки.
 
Цитата
Иван Ган написал:
Ігор Гончаренко , Ваша формула считает только те строки, для которых заполнена ФактДата (без учёта пустых)
да, пустые не учитываются. когда не написано что делать с пустыми - считаю так, как решил нужным (случайно увидел, что там вообще есть), мое решение не обязательно должно совпадать с вашим, особенно если вы о нем только мечтаете, но ничего тут не написали
Изменено: Ігор Гончаренко - 28.09.2022 13:20:46
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, спасибо, что написали своё решение и формулу, БМВ, за то, что показали направление.

Очень хорошая статья по этой теме
https://www.planetaexcel.ru/techniques/2/2609/

Задачу свою решил следующей формулой+массив (сложил количество просрочек по началу и окончанию и вычел количество строк с одновременным срывом начала и окончания):
Код
=СУММПРОИЗВ(--((A2=Таблица1[Шифр])*(ЕСЛИ(ЕПУСТО(Таблица1[ФактНачало]);СЕГОДНЯ();Таблица1[ФактНачало])>Таблица1[Начало])))+СУММПРОИЗВ(--((A2=Таблица1[Шифр])*(ЕСЛИ(ЕПУСТО(Таблица1[ФактОкончание]);СЕГОДНЯ();Таблица1[ФактОкончание])>Таблица1[Окончание])))-СУММПРОИЗВ(1*(A2=Таблица1[Шифр])*(ЕСЛИ(ЕПУСТО(Таблица1[ФактНачало]);СЕГОДНЯ();Таблица1[ФактНачало])>Таблица1[Начало])*(ЕСЛИ(ЕПУСТО(Таблица1[ФактОкончание]);СЕГОДНЯ();Таблица1[ФактОкончание])>Таблица1[Окончание]))
Изменено: Иван Ган - 28.09.2022 13:48:23
Страницы: 1
Наверх