ГлавнаяКак сделать в Excel → Циклические ссылки

Циклические ссылки в Excel: как найти и убрать

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

Коротко

Циклическая ссылка — это формула, которая прямо или через цепочку соседей ссылается на собственную ячейку. Excel не может её посчитать: чтобы узнать результат, нужен результат. Поэтому он показывает предупреждение, ставит в ячейку 0 и пишет адрес виновника в строке состояния — внизу слева, рядом со словом «Готово».

Самый частый случай выглядит так. В столбце B данные со второй по одиннадцатую строку, а итог по ошибке поставлен в B11 — внутрь диапазона: =СУММ(B2:B11). Формула складывает в том числе саму себя. Второй по частоте — ссылка на весь столбец: =СУММ(B:B), написанная в ячейке этого же столбца.

Найти зациклившуюся ячейку надёжнее всего через Формулы → Проверка ошибок → Циклические ссылки: там список адресов, по каждому можно перейти. Пункт становится доступным, только если циклы в книге есть, — это заодно и способ проверить, что их не осталось.

Важная тонкость, из-за которой люди не могут найти ссылку часами: адрес в строке состояния показывается только для активного листа. Если цикл на другом листе, внизу висит просто надпись «Циклические ссылки» без адреса. Пройдите по листам — на нужном адрес появится. Меню «Проверка ошибок» показывает циклы того листа, который открыт, поэтому обойти листы придётся в любом случае.

И обратная сторона: цикл — не всегда ошибка. Есть задачи, где величина честно зависит сама от себя, и для них в Excel есть итеративные вычисления: Файл → Параметры → Формулы → галочка «Включить итеративные вычисления». Excel начнёт считать формулу по кругу, пока результат не перестанет меняться. Об этом — в разделе ниже, вместе с ценой такого решения.

То же самое формулой в Excel

=СУММ(B2:B11) — итог ставится под данными: диапазон заканчивается на строке выше самой формулы
=СУММ(B2:ИНДЕКС(B:B;СТРОКА()-1)) — сумма от B2 до строки над формулой: диапазон не заденет себя, куда ячейку ни перенеси
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;B2:B11) — то же, но не считает вложенные итоги и строки, скрытые фильтром
=A2/(1-C2) — цена с комиссией, которая берётся от итоговой суммы: решается алгеброй, а не циклом
=ЕСЛИ(B2<>"";ЕСЛИ(C2="";ТДАТА();C2);"") — метка времени первой записи — законный цикл, нужны итеративные вычисления

Пошагово

  1. Посмотрите вниз, в строку состояния. Слева написано «Циклические ссылки» и адрес — например, B11. Кликните по адресу, Excel перейдёт в эту ячейку.
  2. Если адреса нет, а слово есть, цикл на другом листе. Пройдите по листам книги: на нужном адрес появится.
  3. Откройте список: Формулы → стрелка рядом с «Проверка ошибок»«Циклические ссылки». В подменю перечислены адреса; когда циклов не остаётся, пункт становится недоступным — это и есть признак, что вы закончили.
  4. Посмотрите на формулу в найденной ячейке. В девяти случаях из десяти в диапазон попал адрес самой ячейки: =СУММ(B2:B11) в B11. Сдвиньте границу диапазона на строку выше или перенесите итог из таблицы вниз, оставив пустую строку.
  5. Если формула сложная, включите Формулы → «Влияющие ячейки»: Excel нарисует стрелки к тем ячейкам, от которых зависит эта. Стрелка, ведущая обратно в саму ячейку, и есть цикл. Убрать стрелки — «Убрать стрелки» на той же вкладке.
  6. Когда цикл нужен по делу: Файл → Параметры → Формулы → «Включить итеративные вычисления». Рядом два поля: предельное число итераций (по умолчанию 100) и относительная погрешность (0,001) — расчёт останавливается, как только выполнено одно из условий. В Google Таблицах то же самое: Файл → Настройки → Вычисления → Итеративный расчёт.

Где обычно ломается

Частые вопросы

Как в Excel убрать циклическую ссылку?
Найдите адрес в строке состояния внизу слева или через Формулы → Проверка ошибок → Циклические ссылки, перейдите в эту ячейку и посмотрите на диапазон в формуле. Почти всегда в него попал адрес самой ячейки: =СУММ(B2:B11), написанная в B11. Сдвиньте границу диапазона на строку выше или перенесите итог под таблицу. Пункт меню перестанет быть доступным, когда циклов не останется.
Что такое циклическая ссылка в Excel?
Формула, которая прямо или через цепочку других формул ссылается на собственную ячейку. Посчитать её нельзя: чтобы получить результат, нужен уже готовый результат. Excel показывает предупреждение, ставит в ячейку 0 и пишет её адрес в строке состояния. Исключение — включённые итеративные вычисления: тогда он считает формулу по кругу до сходимости.
Как узнать, где циклическая ссылка?
Первое место — строка состояния внизу слева: там написан адрес. Второе — Формулы → стрелка у кнопки «Проверка ошибок» → «Циклические ссылки», где перечислены все адреса на текущем листе. Если внизу написано «Циклические ссылки», но без адреса, цикл на другом листе — пройдите по листам книги, на нужном адрес появится.
Как найти циклические формулы в Excel?
Кроме меню «Проверка ошибок» помогает разбор зависимостей: встаньте в подозрительную ячейку и нажмите Формулы → «Влияющие ячейки». Excel нарисует стрелки ко всем ячейкам, от которых она зависит; стрелка, возвращающаяся в неё саму, и есть цикл. Убрать стрелки можно кнопкой «Убрать стрелки» на той же вкладке.
Что такое итеративные вычисления?
Режим, в котором Excel считает формулу с циклической ссылкой по кругу: подставляет предыдущий результат, получает новый и повторяет, пока изменение не станет меньше заданной погрешности или пока не кончатся итерации. Включается в Файл → Параметры → Формулы, по умолчанию 100 итераций и погрешность 0,001. Нужен там, где величина честно зависит сама от себя, — например, для метки времени первой записи.
Как отключить циклические ссылки в Excel?
Отключить можно не сами ссылки, а режим их вычисления: Файл → Параметры → Формулы → снять галочку «Включить итеративные вычисления». После этого Excel снова начнёт предупреждать о циклах и ставить 0 — то есть ошибки станут видны. Сами циклические формулы это не исправит, их придётся найти и переписать.

Связанные страницы

Как сделать в Excel
Почему Excel не считает формулу
Как сделать в Excel
Промежуточные итоги
Как сделать в Excel
Шпаргалка по формулам
Скопировано