Альтернатива функции Excel ДВССЫЛ, которая ссылается на другой лист

В моей рабочей книге у меня есть несколько (15+) листов, каждый из которых содержит 8+ ячеек, использующих функцию ДВССЫЛ. Все использование этой функции просто для ссылки на другой лист в книге. Этот лист Data содержит несколько строк, каждая из которых представляет собой набор данных.

Пример,

один лист требует 'Данные'!B2, 'Данные'!C2, 'Данные'!F2, 'Данные'!H2 , 'Data'!J2 и т. д. (всего их около 8). Итак, что я делаю, так это то, что у меня есть ячейки с «Данные» и «2», и я использую ДВССЫЛ для создания этих формул. Таким образом, я мог бы легко изменить строку (с 2 на 5), а также изменить источник листа (есть еще один лист, похожий на данные, с которым я хочу работать). Я не хочу вручную менять формулы на каждом листе, это слишком утомительно.

Итак, как вы можете видеть, около 15+ листов с 8+ НЕПРЯМЫМИ формулами на каждом делают расчеты очень-очень медленными.

Есть ли альтернатива, которую я мог бы использовать быстрее?

[Примечание: я знаю об этом вопросе, но 1. ответ не имеет для меня полного смысла, и 2. таблица поиска недостаточно динамична (т. е. имена листов часто меняются, а количество листов «Данные» много)

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


person Oneiros    schedule 24.11.2018    source источник
comment
15*8 косвенных формул не кажутся нарушителем условий сделки. Насколько медленный медленный и что еще происходит в размере/в вычислительном отношении в рабочей книге?   -  person QHarr    schedule 24.11.2018
comment
@QHarr медленный, как 10-12 минут всякий раз, когда он вычисляет, что может быть не так уж много в общей схеме вещей, но с той работой, которую я делаю, все вычисления, превышающие 3 минуты, неэффективны. это рабочая книга размером 2,5 МБ ... никаких ссылок на какую-либо другую рабочую книгу ... плюс, я работаю на i3 с 2 ядрами, поэтому у меня нет лишних процессоров.   -  person Oneiros    schedule 24.11.2018
comment
Я определенно согласен, что это очень медленно. Размер тоже не смущает. Я просто озадачен производительностью для того, что кажется небольшим количеством формул. Они вложенные?   -  person QHarr    schedule 24.11.2018
comment
Если необходимо также иметь переменную имени листа, то нет никакого способа обойти INDIRECT или VBA. В противном случае =INDEX(Data!$1:$1048576,2,3) получит Data!C2, где и строка, и столбец могут быть переменными.   -  person Axel Richter    schedule 24.11.2018
comment
Я согласен с @QHarr в том, что наличие нескольких INDIRECT формул на вашем листе, вероятно, не является (полностью) основной причиной того, что ваша формула требует нескольких минут для пересчета. Единственный раз, когда я нашел INDIRECT неизбежным, это если само имя листа является динамическим, но это не похоже на то, что здесь происходит. Похоже, вы всегда ссылаетесь на лист Data, поэтому INDIRECT можно было бы избежать, используя INDEX, скорее всего. Похоже, если вы хотите решить эту проблему, вам придется отредактировать вопрос, чтобы предоставить нам более подробную информацию о вашей электронной таблице.   -  person ImaginaryHuman072889    schedule 24.11.2018
comment
@ImaginaryHuman072889 - это можно добавить в качестве ответа на stackoverflow.com/questions/47459948/, чтобы этот можно было закрыть как дубликат.   -  person AJD    schedule 24.11.2018
comment
@AxelRichter - это можно добавить в качестве ответа на stackoverflow.com/questions/47459948/, чтобы этот мог быть закрыт как дубликат. Жаль, что нельзя обратиться к двум комментаторам в одном комментарии!   -  person AJD    schedule 24.11.2018
comment
@ImaginaryHuman072889 Ваше решение INDEX похоже на то, что предлагает Аксель Рихтер в своем комментарии?   -  person Oneiros    schedule 25.11.2018
comment
@Oneiros Да, это может решить этот вопрос (точно так, как сформулирован вопрос), но опять же, это может не быть корнем вашей проблемы с длительным временем пересчета электронной таблицы. Вот почему я предложил предоставить более подробную информацию о вашей электронной таблице.   -  person ImaginaryHuman072889    schedule 25.11.2018
comment
В качестве расширения комментария Акселя stackoverflow.com/a/47189998/3038828 обсуждается тот же метод индекса при попытке получить массив без волатильности. Мне помогло, может другим поможет.   -  person JeopardyTempest    schedule 08.03.2021