Я построил систему управления бронированием отелей. Я - самоучка в Excel и знаю только то, что я выяснил за последние месяцы, копаясь в Интернете.

Я столкнулся с проблемой. Каждый день года имеет свой собственный список из 24 комнат с информацией, такой как номер комнаты, имя гостя, номер паспорта, оплаченный год, национальность и т.д. Я хочу дать каждой из этих 365 зон свой номер, относящийся к дню год например 1 января = 1

Я надеялся, что смогу затем использовать эту основную электронную таблицу для автоматического заполнения ежедневного списка гостей, используя формулу if = if(cellref = 1 .... и она заполнит мою ежедневную форму всей информацией, которая мне нужна, например, как имена, номера паспортов, оплаченные Y / N и т. д.

В моем воображении я предвижу огромный беспорядок формулы, которая должна учитывать 365 возможностей оригинальной электронной таблицы / рабочего листа.

Как я могу заполнить дневную форму с информацией из годовой таблицы, используя формулу? Есть ли простой способ, или я буду вводить формулы длины эссе в каждый день моей ежедневной формы?

Любая помощь оценена, я собираюсь взломать ее, просто нужно некоторое руководство.

1 ответ1

0

Я собираюсь сделать несколько предположений здесь, но я думаю, что знаю, к чему вы клоните. Предположительно, у вас есть один лист с отформатированным "списком ежедневных гостей" и другой лист, с которого вы извлекаете данные (поскольку 365 листов, вероятно, немного неуправляемы). Не видя ваш формат, я предполагаю, что в вашей основной электронной таблице в столбце A указан день года (1 - 365), а в столбце B - номер комнаты (1 - 24). Кроме того, я предполагаю, что вы отсортировали это по столбцу A, чтобы все комнаты на один и тот же день были смежными (это важно для моего примера, но вы можете обойти это с более сложной логикой).

На листе с ежедневным списком гостей укажите номер дня, для которого вы хотите его запустить, в ячейку (A1 в моем примере).

B1:

=MATCH(A1,Sheet1!A:A)

Если строка 2 содержит метки, тогда мы начнем строку три с ваших данных:

=INDIRECT(ADDRESS(ROW()-3+$B$1,COLUMN()+1,4,1,"Sheet1"))

Вы можете скопировать эту формулу по столбцам и на 24 строки вниз, чтобы получить данные из своего основного списка. =indirect() захватывает ячейку на основе текстовой строки. address() создает строку, ссылающуюся на ячейку, на основе номера строки, номера столбца, параметров форматирования пары и имени листа.

Я определяю номер строки, получая строку ячейки формулы с помощью функции =row() , вычитая три, поскольку я предполагаю, что первые две строки являются метками и т.д., А затем добавляю номер строки первой строки с правильным днем (введено в A1 и находится по формуле =match() ).

Я сместил столбец на 1, так как считаю, что вам не нужно повторять идентификатор даты в этом ежедневном списке гостей.

Две переменные форматирования не изменяют работу этой функции в сочетании с функцией =indirect() . Последняя переменная - это имя листа, введенное в виде строки. Вы можете поместить имя листа в ячейку и ссылаться на него, если вам нужно извлечь из разных листов. В приведенных выше примерах вам придется заменить "Лист1" на любое имя листа, которое вы выбрали для данных.

Я надеюсь, что это достаточно для обучения, чтобы вы могли использовать его здесь. Есть много способов сделать эту работу (например, вам не нужен B1, но я подумал, что он проиллюстрировал пример).

Наконец, я бы рекомендовал использовать даты вместо целых чисел. Это будет действительно понятно, и вы даже сможете делать удобные вещи, такие как use =today() для сегодняшней даты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .