Задача потребує знання функцій ВПР, ЕСЛИ, статистичних, текстових функцій, функцій обробки помилок та роботи з датами, а також вміння роботи з умовним форматуванням та діаграмами.
Розпочнемо із заповнення аркуша Відвідувачі. Спочатку за допомогою функції ВПР визначимо тип номеру, в який заселений кожен відвідувач:
=ВПР(F2;Номери!$A$2:$B$34;2;FALSE)
Після цього для кожної послуги, в тому числі для харчування, слід визначити її вартість з огляду на тип номеру. Якщо в таблиці на аркуші Послуги дана послуга позначена одиницею, вона є безкоштовною, інакше в якості вартості ми використовуємо вартість відповідної послуги з таблиці Послуги. Коротко це можна записати так:
=(1-ВПР($W2;Послуги!$A$6:$K$11;Послуги!B$2+1;FALSE))*Послуги!B$4
Маючи в розпорядженні дані про використання послуг відвідувачем та їх вартість для номеру, в якому цей відвідувач поселився, вартість як харчування, так і послуг рахується неважко:
=ЕСЛИОШИБКА(СУММПРОИЗВЕД(I2:K2;AE2:AG2);0)
=ЕСЛИОШИБКА(СУММПРОИЗВЕД(O2:U2;X2:AD2);0)
Кількість днів проживання обчислимо за допомогою функції РАЗНДАТ:
=РАЗНДАТ(G2;H2;"d")
Після цього обчисливши добуток кількості на суму в день ми отримаємо загальну суму за харчування.
Перейдемо до аркуша Номери. Аби визначити зайнятість номеру достатньо порахувати кількість відвідувачів з цим номером на аркуші Відвідувачі. Якщо ця кількість більша за нуль - номер зайнятий, інакше він вільний.
=ЕСЛИ(СЧЕТЕСЛИ(Відвідувачі!F:F;Номери!A2)>0;1;0)
Для виділення рядків із зайнятими номерами червоною заливкою створимо нове правило умовного форматування з відповідною заливкою для однієї комірки та розмножимо форматування на усі інші. Важливою є напіввідносність посилання, що використовується:
=$D2=1
Перейдемо до створення діаграм. Для кожної з кімнат визначимо їх загальну місткість за допомогою функції ВПР:
=ВПР(B2;Типи_номерів!$B$2:$D$7;2;ЛОЖЬ)
=ВПР(B2;Типи_номерів!$B$2:$D$7;3;ЛОЖЬ)
=P2+Q2
Кількість відвідувачів визначимо як кількість заповнених рядків на аркуші Відвідувачі (без заголовку):
=СЧЕТЗ(Відвідувачі!A:A)-1
Оскільки верхня межа діаграми змінна, зафіксувати її так просто не вийде. Ми пропонуємо відображати на стовпчастій діаграмі не загальну кількість відвідувачів, а їх частку, а відмітки в лівій частині діаграми відображати за допомогою формул введених до комірок. Пропонуємо відпрацювати створення діаграм самостійно за зразком у розв'язанні.
Для відмітки номерів готелю на схемі з аркуша План створимо нове правило умовного форматування з відповідною заливкою за умови, що цей номер відмічений зайнятим на аркуші Номери, при цьому скориставшись функцією ВПР:
=ВПР(B4;Номери!$A$2:$D$34;4;FALSE)=1
Розмножимо форматування на будь-який діапазон, що покриває усі кімнати на схемі та отримаємо бажаний результат.
Виконання таблиці з підсумками на аркуші Вартість відпочинку розпочнемо з обчислення підсумків. Для кожного номеру нам знадобиться тип, кількість відвідувачів, що в ньому проживають, вартість проживання за добу та кількість діб:
=ВПР(A2;Номери!$A$2:$B$34;2;ЛОЖЬ)
=СЧЕТЕСЛИ(Відвідувачі!F:F;A2)
=ВПР(G2;Типи_номерів!$B$2:$F$7;IF(H2>1;5;4);ЛОЖЬ)
=ВПР(A2;Відвідувачі!$F$2:$M$202;8;ЛОЖЬ)
Після цього обчислити вартість проживання легко:
=ЕСЛИОШИБКА(J2*I2;0)
Вартості проживання та послуг визначимо за допомогою функції СУММЕСЛИ, рахуватимемо суму відповідних значень для відповідного номеру кімнати:
=СУММЕСЛИ(Відвідувачі!$F$2:$F$202;'Вартість відпочинку'!A2;Відвідувачі!$V$2:$V$202)
=СУММЕСЛИ(Відвідувачі!$F$2:$F$202;'Вартість відпочинку'!A2;Відвідувачі!$N$2:$N$202)
Після цього підрахуємо загальну суму усіх обрахованих значень:
=СУММ(B2:D2)
Тепер залишається відобразити відповідно до зразка лише зайняті кімнати готелю. Для цього знов перейдемо на аркуш Номери. У окремому стовпці (наприклад, F) відобразимо номер кімнати, якщо ця кімната зайнята, а якщо ні - число 500 (завідомо більше за будь-який номер кімнати). Тоді на аркуші Вартість відпочинку достатньо вивести номери кімнат з цього стовпця за їх зростанням, а число 500 замінити на порожній рядок:
=ЕСЛИ(НАИМЕНЬШИЙ(Номери!$F$2:$F$34;СТРОКА()-1)=500;"";НАИМЕНЬШИЙ(Номери!$F$2:$F$34;СТРОКА()-1))
Тут функція НАИМЕНЬШИЙ відповідає за сортування номерів у порядку зростання: обирається СТРОКА()-1 за порядком зростання номер кімнати (тобто спочатку перший, потім - другий і так далі).