Страницы: 1
RSS
График занятости человека
 
Товарищи, привет.
Не могу сообразить формулу и решение задачки.
На первом листе есть табличка, где указывается наименование занятости, дата, начало и конец.
На втором листе есть табличка, в которой можно изменить месяц, за который хочется смотреть информацию, установить рабочий день (начало, конец), интервал отслеживания.

Нужно, чтобы в таблице на второй страничке во временные интервалы, по которым есть занятость в первой табличке, выставлялась единица (ну потом настрою условное форматирование). Если, например, установлен интервал 5 минут, а действие по первой таблице началось в 10:02, а закончилось в 10:18, то все интервалы во второй таблице (10:00-10:05, 10:05-10:10, 10:10-10:15, 10:15-10:20) заимели единицу.

Подскажите, плиз решение, желательно только формулами.
 
разбейте 1-ю строку на 2. начало и окончание периода. так вам легче будет сравнивать
 
И вам привет KG,
Цитата
все интервалы во второй таблице...  заимели единицу
думаю, если "заимеют" больше в случае накладок вы не будете против )

=ЕСЛИ(ИЛИ($D3="";E$1="");"";СУММПРОИЗВ(($D3=Таблица1[[Дата]:[Дата]])*((--ЛЕВСИМВ(E$1;5)>=Таблица1[[Время окончания]:[Время окончания]])+(--ПРАВСИМВ(E$1;5)<=Таблица1[[Время начала]:[Время начала]])=0)))
можно завернуть в  - -(...>0)  , тогда будут исключительно единицы
 
Цитата
Vik_tor написал:
разбейте 1-ю строку на 2. начало и окончание периода. так вам легче будет сравнивать

Воздал вторую вкладку, теперь каждая ячейка фактически содержит дату и время во второй таблице
Изменено: KG - 20.09.2023 14:25:06
 
Цитата
Павел \Ʌ/ написал:
=ЕСЛИ(ИЛИ($D3="";E$1="");"";СУММПРОИЗВ(($D3=Таблица1[[Дата]:[Дата]])*((--ЛЕВСИМВ(E$1;5)>=Таблица1[[Время окончания]:[Время окончания]])+(--ПРАВСИМВ(E$1;5)<=Таблица1[[Время начала]:[Время начала]])=0)))

Во-первых, спасибо, что подключились к решению

Всё работает как надо!

У меня вопрос.... пожалуйста, разъясните, как работает ваша формула по шагам, плиз.

P.S. Готовое решение для всех и всем спасибо.
Изменено: KG - 20.09.2023 15:21:25
 
см. вложение
дописывайте новые события (видимо за сентябрь месяц) на лист события, смотрите лист календарь
Изменено: Ігор Гончаренко - 20.09.2023 15:54:15
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
KG, пожалуста
Цитата
пожалуйста, разъясните, как работает ваша формула по шагам
Что делает ЕСЛИ, думаю, объяснять не надо
Объяснять как работают массивы не буду. Основная логика в формуле найти непересекающиеся интервалы (это проще) . Нашли - значит всё остальное то что нам нужно

несколько некорректно применили формулу
см. файл
 
Павел \Ʌ/,  не могу увидеть ошибку (разницу), в чём прикол твоего варианта?

И всё таки, по формуле:

Таблица1[[Дата]:[Дата]] - что за странная запись, зачем такая?
Изменено: KG - 20.09.2023 21:43:46
 
Ребята с известного форума
https://pikabu.ru/story/rabochie_poleznosti_excel_s_moey_rabotyi_poleznost_­1_10668705
 
Цитата
nilske:   Ребята с известного форума...
почитал - улыбнуло ))
Цитата
KG:   не могу увидеть ошибку (разницу), в чём прикол твоего варианта?
1. Мы знакомы?
2. Вот это
Цитата
ЕСЛИ(И($J$3<>"";K$2<>"")
там лишнее
3. Вот этим  --(...>0) надо было заворачивать СУММПРОИЗВ, но и это лишнее поскольку вы скрываете значения условным форматированием
4. Формула не требует массивного ввода
А это
Цитата
[[Дата]:[Дата]]
эквивалент баксов в умной таблице, т.е. чтобы при протягивании ссылки не "поехалли"

вариант реализации вашего графика:
Изменено: Павел \Ʌ/ - 22.09.2023 18:39:47
Страницы: 1
Наверх