У меня большая электронная таблица: более 700 строк, каждая из которых имеет ссылки на предыдущую строку. Я использую контрольные функции: ROW()
, COLUMN()
и INDIRECT()
, ADDRESS()
. (Да, я рассмотрел фиксирующие значения каждые 50-100 строк, чтобы уменьшить расчетный трейл.)False Ошибка 522: круговая ссылка
До недавнего времени я использовал OpenOffice.org, и он отлично работал. LibreOffice, однако, когда файл открыт, кажется, сдался после некоторых строк, и дальнейшие вычисления становятся ошибкой 522. Иногда изменение заставляет его пересчитывать все, и ошибки исчезают и не появляются снова, когда я отменю изменение. Я также узнал о Ctrl-Shift-F9 (необходимо перерасчитать), что также приводит к исчезновению ошибок.
Несмотря на то, что файл был сохранен и повторно сохранен LibreOffice несколько раз, он все еще сообщает false Ошибка 522, когда я открываю файл, так что это не похоже на проблему совместимости.
Проблема заключается в том, что очень длинный разветвленный след расчета заставляет программное обеспечение думать, что он никогда не достигнет начальных значений, и поэтому он должен быть круговым? (Что могла бы решить моя идея фиксации ценностей.) Или может быть что-то еще, что я, возможно, пропустил?
UPDATE
Я не вижу, как INDEX() не поможет. Я хочу обратиться к ячейке непосредственно выше или ячейке из строки непосредственно выше. Ячейка d46 может указывать на d45 или b45 или $ a45, и это будет работать при копировании строки, но не при вставке или удалении строки. Если вы вставляете строку чуть выше, то ссылки, указывающие 1 строку выше, начнут указывать 2 строки выше , поэтому каждый раз мне придется редактировать формулы. Строка (каждая строка) содержит несколько ссылок на строку чуть выше, поэтому я думал, что самый простой способ будет НЕПРЯМЫМ (АДРЕС (ROW() - 1, COLUMN())) для того же столбца или INDIRECT (ADDRESS (ROW() -1,1)) для столбца A ... Любые лучшие решения?
INDIRECT - [изменчивая функция] (http://chandoo.org/wp/2014/03/03/handle-volatile-functions-like-they-are-dynamite/) и может быть источником проблемы , Моим первым шагом было бы попытаться переписать функцию, чтобы не использовать INDIRECT; рассмотрите INDEX как возможную замену. – Lyrl