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

Есть несколько столбцов, которые пользователь вводит дату или выбирает из выпадающего списка (Data Validation List). Существует один набор формул для расчета, если ячейка соответствует критериям

Пример: = IF(C3 = «указано», 1,0)

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

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

Пример 2: P2 в этом примере - это дата, которая обновляется из другой электронной таблицы в рабочей книге. = IF(А (A1 = P2, B1 = 1), 1,0) и я использую формулы, подобные этим = IF(А (A1 = Сумма (P2+1), B1 = 1), 1,0)

Значение этой формулы обновляется в главной электронной таблице рабочей книги. Таким образом, у меня есть пример2, повторенный 7 раз, по одному на каждый день недели ... для каждого из 7 столбцов строки, для сотен строк, и это повторяется на 12-15 вкладках.

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

Я надеюсь, что это понятно, это сложная установка, и я надеюсь найти ответ на этот вопрос. Я использую Excel 2003

1 ответ1

0

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

Например,

A1 = "WorkbookA.xlsx" 'Эти значения можно сделать динамическими, если они будут' результатом выбора из выпадающего меню. Выполнимо, но, возможно, A2 = "Sheet1" 'слишком сложно на практике.

A3 = = IF(INDIRECT("[" & A1 & "]!"& А2 &" F14")= TRUE, 1,)

Если вы хотите, чтобы один и тот же набор формул фактически генерировал набор результатов, причем одна строка получена из одного листа, а другая строка - из другого листа, то единственная возможность, отличная от VBA, которую я вижу, - это использование двусторонней таблицы данных. (обычно используется для анализа «что, если»), где входными данными могут быть разные имена листов или даты или что-то еще, а вычисленные суммы снова будут использовать функцию INDIRECT. Подвох в том, что вам может понадобиться отдельная таблица данных для каждой формулы вывода. Может также потребоваться длительное время расчета.

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