Страницы: 1
RSS
Учет занятости номеров в гостинице, как сделать проще??
 
Добрый день,  
 
Помогите решить задачу, для реализации учета занятости номеров в гостинице, более простым способом, чем уже придумал.  
 
Описание задачи:  
Первая таблица содержит уникальных клиентов, дату заезда, дату уезда и номер в котором он поселился. Во второй таблице в виде шахматной ведомости (слева номера, сверху даты), должны отображаться фамилии гостей занимающих определенный номер в определенный день.    
 
Свой вариант прилагаю (получилось очень громоздко с формулами), пока работает для 19 уникальных заездов, боюсь 200-300 заездов эксель не потянет.(когда просмотрите формулу, с помощью которой я это реализовал, поймете о чем я)  
 
Спасибо заранее за участие и помощь!!!  
 
 
С уважением ко всем участникам форума,  
 
Павел.
 
В ячейку B5 формулу  
"=ЕСЛИОШИБКА(ИНДЕКС(Лист1!$B$4:$B$8;СУММПРОИЗВ((Лист1!$D$4:$D$8<=B$4)*(Лист1!$E$4:$E$8>=B$4)*(Лист1!$C$4:$C$8=$A5)*СТРОКА(Лист1!$A$4:$A$8))-3);"")"  
и протяните  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
не все так просто  
в номере в течение месяца может еще кто-то жить, даже тот же клиент но с перерывом  
 
64646
 
И что?  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
Огромное спасибо берсерку!!! Пусть у вас все в жизни получается!!!
 
Появилась новая проблема.  
 
В отеле в один и тот же день может пребывать 2 человека, когда 1 чел выезжает в 12.00 и когда второй въезжает во второй половине дня.    
При возникновении такой ситуации, когда происходит накладка эксель в одну ячейку пытается вписать 2 значения, меня устраивает в большинстве случаев эксель оставляет пустую ячейку, как это видно на вкладке "График" ячейка Q44, в принципе понятно что клиент 78 уезжает в этот день, а клиент 87 приезжает, что и является правдой.  
Но в случае с ячейкой H42, присваевается совершенно левое значение...?? Что происходит? Объясните пожалуйста. Как этого избежать, может кто-нибудь порекомендует!!  
 
Спасибо большое за помощь!!! Нужно очень срочно!  
 
С уважением,  
Павел.
 
Файл прилагаю  
 
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>  
 
<EM>http://www.planetaexcel.ru/forum.php?thread_id=8735</EM>
 
"В отеле в один и тот же день и в одном и том же номере может быть 2 разных клиента"
 
Первый вариант формулы не умеет работать с днями, когда в один день в номере 2 человека. То, что она показывала правильно в колонке Х, простое везение, что записей в диапазоне Kohl!$G$7:$G$506 всего 164. функция СУММПРОИЗВ складывала индексы гостей, живущих в номере в один день и искала этот индекс на листе "Kohl". Напр. ячейка Х5: 19.10.2012 там жили 121 и 142 (их индексы 127 и 148). 127 + 148 - 6 = 269. 269ая строка пустая в диапазоне Kohl!$G$7:$G$506, поэтому формула и возвращал пустую строку.  
А с ячейкой Н42 все аналогично: гости 9 и 10. 15 + 16 - 6 = 25. а 25ая строка в диапазоне Kohl!$G$7:$G$506 равна "25". Вуаля.  
 
Вам теперь нужна более сложная формула  
"=ЕСЛИ(СЧЁТЕСЛИМН(Kohl!$G$7:$G$506;"<="&F$2;Kohl!$I$7:$I$506;">="&F$2;Kohl!$E$7:$E$506;$A3)>1;"";ЕСЛИОШИБКА(ИНДЕКС(Kohl!$D$7:$D$506;СУММПРОИЗВ((Kohl!$G$7:$G$506<=F$2)*(Kohl!$I$7:$I$506>=F$2)*(Kohl!$E$7:$E$506=$A3)*СТРОКА(Kohl!$C$7:$C$506))-6);"-"))"  
Если же надо, чтобы в такие дни в ячейке отражались оба гостя, то формулу придется усложнять и добавлять UDF СЦЕПИТЬЕСЛИ (поищите ее на форуме).  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
Отлично, спасибо большое, что помогаете и в частности за доступный развернутый ответ, постараюсь разобраться!!
 
Предупреждение обоим.  
Следите за размером вложения.
 
Упс. Я и не обратил внимание на размер файла ТС. Извините.  
hayke, попробуйте  
"=ЕСЛИ(СЧЁТЕСЛИМН(Kohl!$G$7:$G$506;"<="&X$2;Kohl!$I$7:$I$506;">="&X$2;Kohl!$E$7:$E$506;$A5)>1;СЦЕПИТЬ(W5;",";Y5);ЕСЛИОШИБКА(ИНДЕКС(Kohl!$D$7:$D$506;СУММПРОИЗВ((Kohl!$G$7:$G$506<=X$2)*(Kohl!$I$7:$I$506>=X$2)*(Kohl!$E$7:$E$506=$A5)*СТРОКА(Kohl!$C$7:$C$506))-6);"-"))"  
Думаю Вам подойдет.  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
Приветствую еще раз, очень удовлетворен вариантом формулы, который ставит пустое поле. Оранжевый свет просто говорит о том, что либо ситуация с двумя людьми, которую я описывал ранее либо администратор случайно сделал накладку. Все эти моменты просто проверяются вручную, быстро это можно сделать по фильтру номера который нужно проверить.  
Поэтому огромный поклон берсерку!  
 
В случае с сцепить возникает следующая неурядица  
В приложеном файле изображаю 2 момента:  
1. Случай с 104 номером, люди приезжают и уезжают друг за другом, проводят одни сутки в номере, такие случаи уже были.  
2. Вариант 2 отобразил с 203 номером. Когда администратор ошибся и забронировал на 1 день 3 клиента.  
 
В принципе как выше описал, на данном этапе все устраивает!!  
Спасибо еще раз.
 
Что то такой момент я не учел :-) конечно - последняя формула в данных случаях не работает. Оставим как есть :-)  
по поводу 2го варианта. Такие ошибки необходимо пресекать на стадии внесенеия данных. Не знаю, как у Вас организован этот момент, но если данные вносятся в Excel, то можно выводить сообщение об ошибке.  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
Да, я так и предупредил. на то и график строится, чтобы его анализировать прежде, чем вносить новые данные.    
Еще раз благодарю за помощь!
Страницы: 1
Читают тему
Наверх