Ось два варіанти:
- У підсумковому аркуші використовуйте
INDIRECT
функція у поєднанні з таблицею шляху, робочої книги, аркуша і назвою суми для кожного відділу. Функція INDIRECT повертає посилання, задане рядком: Наприклад, якщо клітинка A1 містить рядок "Sheet1! D19", то = INDIRECT (A1) дасть значення в комірці D19 Sheet1.
Отже, що вам потрібно, це набір клітин у зведеному аркуші, який містить посилання на клітинку або клітини в кожній робочій книзі відділу, які підсумовують штатний розпис для відділу. Таблиця для побудови цих посилань і супровідних формул може виглядати так.
Формули для загального штатного розкладу кожного департаменту, показані в колонці F на малюнку, оцінюються як дійсні посилання на клітинку у відомчих робочих книгах. Я вирішив побудувати формули з посилань у таблиці для того, щоб мати гнучкість - тільки записи таблиці повинні бути змінені, якщо, наприклад, список робочих книг, які повинні бути включені зміни, а не самі формули.
Ці формули оновлюватимуться лише тоді, коли робочі книги, на які вони посилаються, є відкритими; якщо робоча книга відділу закрита, загальна формула штатного розкладу для цього відділу у зведеному аркуші поверне #REF! помилка, коли вона перераховується. Іншими словами, ви не можете витягувати дані із закритої книги.
- Використовуйте функцію VBA або підпрограму, яка може витягувати дані з закритої книги.
Існує ряд різних підходів до цього, в тому числі цієї функції , з веб-сайту Джона Вальбенбаха, який працює тільки при використанні в процедурі VBA і цей який безпосередньо можна використовувати на робочому аркуші. Я перевірив обидва і вони працюють, як стверджували.