Страницы: 1
RSS
Количество одновременно используемых телефонных линий, Необходимо узнать количество одновременно используемых телефонных линий
 
Всем добрый день!
Стоит, на первый взгляд, простая задача: узнать максимальное количество одновременных телефонных разговоров по имеющимся логам.
В логах имеем:
Столбец А - дата и время начала разговора
Столбец Б - дата и время окончания разговора

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

Конечной целью является подсчет достаточного количества телефонных линий в офисе.

Спасибо!
 
KDias, файл пример где
Лень двигатель прогресса, доказано!!!
 
KDias, Ну получите вы максимум, при этом вариант , когда линия занимается а через секунду освобождается другая весьма вероятен, но максимум покажет что это 2 линии.
Что-то подобное в дом столбец =COUNTIFS($B$2:$B$7;"<="&C2;$C$2:$C$7;">="&B2) и максимум из него
Или массивная
=MAX(COUNTIFS($B$2:$B$7;"<="&C2:C7;$C$2:$C$7;">="&B2:B7))
Изменено: БМВ - 10.10.2019 12:11:04
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
когда линия занимается а через секунду освобождается другая
Михаил, значит придется усложнять задачу и вводить параметр, характеризующий допустимое время пересечения разговора, в секундах :)
При этом положительные значения параметра означают промежуток пересечения разговоров по разным линиям; а отрицательные значения - промежуток времени между разговорами.
Мне кажется, если добавить этот параметр (с соответствующими знаками) в Ваши формулы, то можно уйти от проблемы, о которой Вы беспокоитесь...
 
Цитата
БМВ написал:
Ну получите вы максимум, при этом вариант , когда линия занимается а через секунду освобождается другая весьма вероятен, но максимум покажет что это 2 линии.
Такое вполне допустимо. Если бы в эту самую секунду было бы на 1 линию меньше, то звонок бы сорвался.

Цитата
БМВ написал:
=COUNTIFS($B$2:$B$7;" ="&B2)
Именно так я и написал сначала. Но потом понял, что таким образом мы узнаем лишь количество одновременных звонков по отношению к конкретно этиму звонку. Но одновременны ли они все по отношению друг у другу мы не узнаем.
 
KDias,  просто делается это не так, а просто с учетом дискрета, если нужна секунда, то именно посекундно  считается во сколько промежутков вызовов она попадает. Потом берется значение максимальное.
Пример данных будет?
По вопросам из тем форума, личку не читаю.
 
БМВ, да конечно! Вот файл.
Спасибо!
 
Цитата
БМВ написал:
посекундно  считается во сколько промежутков вызовов она попадает.
даже за месяц получим 2,5 миллиона итераций.. формулы так делают?
 
KDias, А зачем вам за месяц? Не ну конечно если один вызов длится более суток. Вам нужно дробить по суткам

Цитата
KDias написал:
Вот файл.
Тогда вот решение  :D
По вопросам из тем форума, личку не читаю.
 
)))))
 
=MAX(COUNTIFS(A2:A1000;"<="&(ROW(A1:INDEX(A:A;24*60*60))-1)/24/60/60-1+TRANSPOSE(INT(MIN(A:A))+ROW(A1:INDEX(A:A;INT(MAX(C:C))-INT(MIN(A:A)))));C2:C1000;">="&(ROW(A1:INDEX(A:A;24*60*60))-1)/24/60/60-1+TRANSPOSE(INT(MIN(A:A))+ROW(A1:INDEX(A:A;INT(MAX(C:C))-INT(MIN(A:A)))))))

Конечно не на шутку задумывается, но считает
По вопросам из тем форума, личку не читаю.
 
БМВ, благодарю!
Применяю формулу на свои 13329 строк предварительно заменив 1000 на 13329 и формаула отказывается считать.
Есть нюансы по количеству строк?
Изменено: KDias - 10.10.2019 14:23:27
 
Это формула массива. CTRL+SHIFT+ENTER
На длительность расчета будет влиять сильно  не количество строк, а диапазон дат. фактически рассчитывается матрица из 84000 строк на каждый день по столбцу
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх