Давайте создадим один файл Excel, содержащий один лист с именем "Sheet1" со списком с именем "Table1". (Извините, я не уверен насчет формулировок, то есть списков и таблиц, в не немецких версиях Excel.) Заполните его некоторыми значениями, чтобы оно выглядело так:
Name
ValA
ValB
ValC
ValD
"Имя" - это заголовок столбца. Обратите внимание, что это должна быть таблица списка, а не просто диапазон ячеек.
Теперь давайте проверим, можем ли мы получить количество непустых ячеек в списке. Введите эту формулу в любую пустую ячейку в этой книге:
=COUNTA(Table1[Name])
Это всегда будет равно 4, если вы не возитесь с астетическим состоянием моей таблицы Table1.
Сохраните эту книгу как X.xlsx. Не закрывай пока.
Теперь в дополнительном окне Excel создайте новую книгу и введите ту же формулу. Конечно, чтобы рассчитать количество строк в таблице на другом листе книги, мы должны квалифицировать таблицу по файлу книги следующим образом:
=COUNTA('PathToMyExcelFiles\X.xlsx'!Table1[Name])
где "PathToMyExcelFiles" является локальным путем xlsx. Подобные ссылки легко создаются с помощью Excel, указывая на диапазон ячеек при вводе формулы.
Это прекрасно оценивает до 4. Отлично.
Теперь закройте окно X.xlsx, чтобы X.xlsx больше не открывался :), и принудительно произведите повторный вызов (или, альтернативно, закройте все окна xlsx и создайте новое с формулой, показанной без предварительного открытия X.xlsx). Квалифицированная версия формулы теперь оценивается в 1.
Зачем?
Если рабочая книга, на которую мы ссылаемся, не загружена, COUNTA вернет 1, иначе верное 4.
Предыстория: я ищу способы хранения списков в таблицах в централизованной электронной таблице и использую эти списки из других электронных таблиц в списках достоверности.
Я использую Excel 2010, и да, я абсолютно хочу использовать списки таблиц Excel для хранения списков.