Страницы: 1
RSS
Таблица заселения гостей хостела
 
Добрый день!

Начну, пожалуй, с предистории.
Примерно пол года назад я открыл в своем городе хостел. Задачей для себя мы поставили предоставить возможность гостям города комфортный отдых по доступной цене. Мы не ночлежка, не комната на час. Довольно часто отказываем клиентам в заселении. Основные наши гости это студенты, болельщики, реже иностранцы.

Для наглядности занятости спальных мест мы создали простую таблицу-календарь в Эксель, где указаны даты в течении года и номера. На отдельном листе заполняются данные заселяющихся людей - номер, время, место, ФИО, данные, адрес и т.п.

В настоящее время администраторы хостела в ручную заполняют страницу с данными клиента и в последующем заносят данные в календаре даты бронирования и занятости.
В связи с этим вопрос. Отдаленно я представляю как возможно реализовать подобный функционал, но из за нехватки опыта работы в Эксель, для меня это весьма затруднительно.

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

В приложении наша таблица на начало года. Я заполнил в ручную информацию о двух гостях и отразил ее в календаре.
Пожалуйста, помогите наладить и автоматизировать работу  :)
 
Вопрос, без ответа на который решить задачу трудновато. Как определить, в какой из номеров должен быть запихнут гость?
Т.е.,почему гость №2 д.б. поселен в 6-местный, а гость №1 - в 8-местный номер? В таблице регистрации никаких данных на этот счёт нет, хотя кровать 3Н есть и там, и там.
F1 творит чудеса
 
Максим Зеленский,  здесь я должен объяснить порядок заселения гостей.

Варианта на самом деле два, но они сводятся к одному - телефонному разговору.
Первый сценарий исходит из заявки потенциальным гостем на сайте бронирующих систем - букинг, экспедиа, хостелворлд и т.п. Либо человек через гугладвордс/яндекс.директ попадает на наш сайт и заказывает там звонок.

В процессе разговора мы уточняем даты заселения, желаемый номер, имя гостя. Сообщаем о правилах, о том что не заселим без паспорта и т.д. Номер присваивается порядковый из таблицы.

Информация (фамилия, прописка) уточняется во время фактического заселения. То есть гость может сказать: "мне восьмиместный номер, верхняя полка". И уже будет не важно, на первой, второй, или четвертой кровати. Будут конкретные пожелания, администратор так и укажет на листе регистрации, 8В, 5Н или у нижняя у окна. Все зависит от ситуации, но в любом случае в листе бронирования будет указан конкретный номер койки, который может быть сопоставлен с номерами на первом листе - календарем бронирования. Администратор сам выберет место для гостя или, по возможности, по желанию гостя.

Для простоты ориентирования и вообще отображения заселения, информацию по койкам можно изменить по порядковым числам. Сейчас у нас в каждом номере идет нумерация мест с 1. То есть 8 местный номер 8 мест, 6-местный общий еще 6 и т.д. Можно сделать так, что после 8 местного в 6-ти местного пойдут 9, 10 номера и т.д. Возможно это облегчит задачу в данной формуле.

То есть основная задача формулы проверять дату заселения (точнее период проижвания), факт заполнения имени и желаемое место. Если этих данных нет, тогда ничего не происходит. Это базовые данные, без которых нельзя забронировать.
Если данные заполнены, то формула проверяет на соответствие даты в листе-календаре, маркирует их цветом в поле определенного номера (койка и номер) и в ячейках указывает порядковый номер гостя.
Изменено: empero - 09.08.2014 00:10:45
 
Цитата
empero пишет:
маркирует их цветом в поле определенного номера (койка и номер)
Вот об этом и был вопрос-то. Тут путаница немного возникла - я имею ввиду номер как помещение, а не номер койки (с ним всё понятно). Я понимаю, что администратор там определяет всё по договоренности. Я не могу понять, как формула должна определить, в какой из двух номеров, имеющих койку 3Н, она должна поставить гостя. Если койка имеет номер 7В, 7Н - это понятно, в 6-местный уже не запихнуть, выберем 8-местный. Но с маленькими номерами как? Я так понимаю, что администратор выбирает номер (койка сейчас не важна) исходя из собеседования с клиентом и наличия мест. Но в таблице регистрации номер не определен. По какому критерию формула должна ставить? В первый свободный номер? В самый большой номер? В самый маленький номер? В номер по списку сверху вниз?
F1 творит чудеса
 
Максим Зеленский, в принципе не проблема задать каждой койке порядковый номер без привязки к комнате, в том формате, в котором заполняет администратор (3Н, 6В и т.д.)
 
ну как-то так. таблицу регистрации сделал "умной" + добавил пару проверок на правильность данных
F1 творит чудеса
 
Максим Зеленский, спасибо вам огромное!
 
Добрый день!

По аналогии с приведённым примером сделала таблицу. Но, увы, в формуле выдаёт ошибку... Понять, в чём именно ошибка, не могу, т.к. с такими функциями (массивами) не сталкивалась. На листе "Размещение" в ячейке С3 вбита формула, но без "=". Буду очень признательна за помощь!
 
у вас нет таблицы Регистрация.
зайдите на вкладку формулы-диспетчер имен- редактировать и измените имя Таблица3 на Регистрация.
 
Dima S, спасибо Вам огромное!
 
ой, а ещё такой вопрос... в листе "Регистрация" указаны дата заезда и дата выезда. Там всё устраивает. А в листе "Размещение" дата выезда отмечается как забронированная. Но у нас выезд в 12 часов дня, а заезд в 14 часов. Т.е. в тот же день может появиться новый гость. Но номер стоит того, который должен выехать, хотя нужно, чтобы номер был новый, того, кто въезжает. Это можно как-то исправить?
 
Разобралась. С горем пополам  :oops: Если кому пригодится: в массиве (Регистрация[[Дата выезда]:[Дата выезда]]>=C$2) убрать знак равенства (в обоих случаях).
Т.е. формула ТЕКСТ(ЕСЛИ(СУММПРОИЗВ((...)*(...)*(Регистрация[[Дата выезда]:[Дата выезда]]>C$2))>1;"ОШ!";СУММПРОИЗВ((...)*(...)*((Регистрация[[Дата выезда]:[Дата выезда]]>C$2);Регистрация[[Гость]:[Гость]]));"0;;")
Страницы: 1
Наверх