Как обнаружить циклическую ссылку в excel

Циклические ссылки в excel

25.10.2013 Григорий Цапко Полезные советы

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

Между тем, именно циклические ссылки в excel способны облегчить нам решение некоторых практических экономических задач и финансовом моделировании.

Эта заметка как раз и будет призвана дать ответ на вопрос: а всегда ли циклические ссылки – это плохо? И как с ними правильно работать, чтобы максимально использовать их вычислительный потенциал.

Для начала разберемся, что такое циклические ссылки в excel 2010.

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

Например, ячейка С4 = Е 7, Е7 = С11, С11 = С4. В итоге, С4 ссылается на С4.

Наглядно это выглядит так:

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

Предупреждение о циклической ссылке

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

При нажатии на кнопку ОК, сообщение будет закрыто, а в ячейке содержащей циклическую ссылку в большинстве случаев появиться 0.

Предупреждение, как правило, появляется при первоначальном создании циклической ссылки, или открытии книги содержащей циклические ссылки. Если предупреждение принято, то при дальнейшем возникновении циклических ссылок оно может не появляться.

Как найти циклическую ссылку

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

В первом случае мы знаем об их наличии, так как сами их предварительно создали, и знаем, зачем они нам нужны.

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

Найти циклическую ссылку можно несколькими способами. Например, чисто визуально формулы и ячейки участвующие в образовании циклических ссылок в excel отмечаются синими стрелками, как показано на первом рисунке.

Если циклическая ссылка одна на листе, то в строке состояния будет выведено сообщение о наличии циклических ссылок с адресом ячейки.

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

Если или на активном листе их более одной, то будет выведено сообщение с указанием ячейки, где циклическая ссылка появляется в первый раз, после ее удаления – ячейка, содержащая следующую циклическую ссылку и т.д.

Найти циклическую ссылку можно также при помощи инструмента поиска ошибок.

На вкладке Формулы в группе Зависимости формул выберите элемент Поиск ошибок и в раскрывающемся списке пункт Циклические ссылки.

Вы увидите адрес ячейки с первой встречающейся циклической ссылкой. После ее корректировки или удаления – со второй и т.д.

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

Использование циклических ссылок

Рассмотрим пример использования циклических ссылок в финансовом моделировании. Он поможет нам понять общий механизм итеративных вычислений и дать толчок для дальнейшего творчества.

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

После введения всех формул, у нас появляется циклическая ссылка:

Однако, ситуация не безнадежная. Нам достаточно изменить некоторые параметры Excel и расчет будет осуществлен корректно.

Еще одна ситуация когда могут быть востребованы циклические ссылки – это метод взаимных или обратных распределений косвенных затрат между непроизводственными подразделениями.

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

На тему методов распределения затрат в ближайшее время появиться отдельная статья.

Пока же нас интересует сама возможность таких вычислений.

Итеративные вычисления

Для того чтобы корректный расчет был возможен, мы должны включить итеративные вычисления в параметрах Excel.

Итеративные вычисления – это вычисления повторяемые множество раз, пока не будет достигнут результат соответствующий заданным условиям (условию точности или условию количества осуществленных итераций).

Включить итеративные вычисления можно через вкладку Файл → раздел Параметры → пункт Формулы. Устанавливаем флажок «Включить итеративные вычисления».

Как правило, установленных по умолчанию предельного числа итераций и относительной погрешности достаточно для наших вычислительных целей.

Следует иметь ввиду, что слишком большое количество вычислений может существенно загружать систему и снижать производительность.

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

Решение сходится, что означает получение надежного конечного результата.

Решение расходится, т. е. при каждой последующей итерации разность между текущим и предыдущим результатами увеличивается.

Решение колеблется между двумя значениями, например, после первой итерации получается значение 1, после второй — значение 10, после третьей — снова 1 и т. д.

Источник: excel-training.ru

Поиск циклической ссылки в Excel

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

Читайте также:  Ссылку в текст в excel

Выявление циклических связей

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

Способ 1: кнопка на ленте

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

Путем изучения результата устанавливаем зависимость и устраняем причину цикличности, если она вызвана ошибкой.

  • После выполнения необходимых действий снова переходим по кнопке проверки ошибок циклических ссылок. На этот раз соответствующий пункт меню должен быть вообще не активен.
  • Способ 2: стрелка трассировки

    Существует и другой способ определения подобных нежелательных зависимостей.

      В диалоговом окне, сообщающем о наличии циклических ссылок, жмем на кнопку «OK».

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

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

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Источник: lumpics.ru

    Циклические ссылки в Excel: поиск и исправление

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

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

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

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

    Нахождение циклических ссылок

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

    Следовательно, ломать голову над тем, если ли в книге циклическая ссылка (ссылки) или нет, не нужно, так как это понятно в момент его открытия. Остается только определить, где именно она находится.

    Метод 1. Визуальный поиск циклической ссылки

    Данный способ самый простой, однако, удобен лишь при работе с небольшими таблицами.

    1. Для начала нам нужно закрыть всплывшее диалоговое окно, предупреждающее нас о том, что в книге присутствует циклическая ссылка.
    2. После этого в таблице отобразится так называемая стрелка трассировки, наглядно демонстрирующая связь между ячейками, которая вызывает ошибку.
    3. Переходим в ту ячейку, куда указывает стрелка и исправляем формулу, чтобы избавиться от цикличности. В нашем случае лишним элементом является ячейка F13, поэтому убираем ее и формулы.
    4. Все готово. Теперь в нашей таблице нет циклических ссылок.

    Метод 2. Использование инструментов на Ленте

    Иногда бывает так, что стрелки, помогающие определить циклическую связь между ячейкам не отображаются в книге. В этом случае поступаем следующим образом:

    1. Начнем с того, что закроем информационное окно о наличии циклической ссылки.
    2. Теперь переключаемся во вкладку “Формулы”. Обращаем внимание на раздел “Зависимости формул”. Здесь нас интересует кнопка “Проверка ошибок” (в некоторых случаях, когда размеры окна сжаты по горизонтали, отображается только значок кнопки в виде восклицательного знака). Щелкаем по небольшому треугольнику, направленному вниз, справа от кнопки. Откроется перечень команд, среди которых выбираем пункт “Циклические ссылки”, после чего откроется список всех ячеек, содержащих эти самые ссылки.
    3. Если мы щелкнем на адрес ячейки, программа сразу же выделит ее, независимо от того, в какой ячейке мы находились до того, как решили воспользоваться данной функцией.
    4. Нам остается только разобраться с формулой и исправить допущенные в ней ошибки. В нашем случае в диапазон суммируемых ячеек была включена и ячейка, куда записана сама формула, что конечно же, неверно.
    5. Корректируем координаты диапазона в формуле, чтобы избавиться от цикличности.
    6. Чтобы удостовериться в том, что теперь все в порядке, снова раскрываем перечень команд рядом с кнопкой “Проверка ошибок”. На этот раз пункт “Циклические ссылки” неактивен, что свидетельствует о том, что ошибки устранены.

    Заключение

    Итак, как вы могли убедиться, в нахождении и удалении циклических ссылок в Excel нет никаких сложностей. При работе с небольшими таблицами достаточно визуального осмотра на наличие стрелок трассировки, указывающих на ссылки, которые мы ищем. Если документ достаточно объемный, либо не хочется терять время на поиск “проблемных” мест таблицы вручную, нас выручит инструмент под названием “Поиск ошибок”.

    Источник: microexcel.ru

    Как удалить или разрешить циклическую ссылку

    Вы ввели формулу, но она не работает. Вместо этого вы получаете это сообщение об ошибке “Циклическая ссылка”. Миллионы людей имеют такую же проблему, и это происходит из-за того, что формула пытается подсчитаться самой себе, и у вас есть функция, которая называется итеративным вычислением. Вот как это выглядит:

    Читайте также:  Как в excel прибавить к дате месяцы

    Формула =D1+D2+D3 не работает, поскольку она расположена в ячейке D3 и ссылается на саму себя. Чтобы устранить эту проблему, можно переместить формулу в другую ячейку. Нажмите клавиши CTRL + X , чтобы вырезать формулу, выберите другую ячейку и нажмите клавиши CTRL + V , чтобы вставить ее.

    Другая распространенная ошибка связана с использованием функций, которые включают ссылки на самих себя, например ячейка F3 может содержать формулу =СУММ(A3:F3). Пример:

    Вы также можете попробовать один из описанных ниже способов.

    Если вы только что ввели формулу, начните с этой ячейки и проверьте, не ссылается ли вы на саму ячейку. Например, ячейка A3 может содержать формулу =(A1+A2)/A3. Формулы, например = a1 + 1 (в ячейке a1), также вызывают ошибки циклических ссылок.

    Проверьте наличие непрямых ссылок. Они возникают, когда формула, расположенная в ячейке А1, использует другую формулу в ячейке B1, которая снова ссылается на ячейку А1. Если это сбивает с толку вас, представьте, что происходит с Excel.

    Если найти ошибку не удается, на вкладке Формулы щелкните стрелку рядом с кнопкой Проверка ошибок, выберите пункт Циклические ссылки и щелкните первую ячейку в подменю.

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

    Продолжайте находить и исправлять циклические ссылки в книге, повторяя действия 1–3, пока из строки состояния не исчезнет сообщение “Циклические ссылки”.

    В строке состояния в левом нижнем углу отображается сообщение Циклические ссылки и адрес ячейки с одной из них.

    При наличии циклических ссылок на других листах, кроме активного, в строке состояния выводится сообщение “Циклические ссылки” без адресов ячеек.

    Вы можете перемещаться между ячейками в циклической ссылке, дважды щелкая стрелку трассировки. Стрелка указывает ячейку, которая влияет на значение выбранной в данный момент ячейки. Чтобы отобразить стрелку трассировки, выберите пункт формулы, а затем — влияющие ячейки или зависимыеячейки.

    Предупреждение о циклической ссылке

    Когда Excel впервые находит циклическую ссылку, отображается предупреждающее сообщение. Нажмите кнопку ОК или закройте окно сообщения.

    Когда вы закроете сообщение, в ячейке будет отображено либо нулевое, либо последнее вычисленное значение. И теперь, наверное, говорят: “повесить последнее вычисленное значение?” Да. В некоторых случаях можно успешно выполнить формулу, прежде чем выполнять вычисление. Например, формула, использующая функцию если , может работать, пока пользователь не введет аргумент (часть данных, которая должна выполняться правильно), которая приводит к тому, что формула будет вычислять саму себя. В этом случае Excel сохраняет значение из последнего успешного вычисления.

    Если есть подозрение, что циклическая ссылка содержится в ячейке, которая не возвращает значение 0, попробуйте такое решение:

    Щелкните формулу в строке формулы и нажмите клавишу ВВОД.

    Внимание! Во многих случаях при создании дополнительных формул с циклическими ссылками предупреждающее сообщение в приложении Excel больше не отображается. Ниже перечислены некоторые, но не все, ситуации, в которых предупреждение появится.

    Пользователь создает первый экземпляр циклической ссылки в любой открытой книге.

    Пользователь удаляет все циклические ссылки во всех открытых книгах, после чего создает новую циклическую ссылку.

    Пользователь закрывает все книги, создает новую и вводит в нее формулу с циклической ссылкой.

    Пользователь открывает книгу, содержащую циклическую ссылку.

    При отсутствии других открытых книг пользователь открывает книгу и создает в ней циклическую ссылку.

    Итеративные вычисления

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

    Если вы не знакомы с итеративными вычислениями, вероятно, вы не захотите оставлять активных циклических ссылок. Если же они вам нужны, необходимо решить, сколько раз может повторяться вычисление формулы. Если включить итеративные вычисления, не изменив предельное число итераций и относительную погрешность, приложение Excel прекратит вычисление после 100 итераций либо после того, как изменение всех значений в циклической ссылке с каждой итерацией составит меньше 0,001 (в зависимости от того, какое из этих условий будет выполнено раньше). Тем не менее, вы можете сами задать предельное число итераций и относительную погрешность.

    Если вы работаете в Excel 2010 или более поздней версии, последовательно выберите элементы Файл > Параметры > Формулы. Если вы работаете в Excel для Mac, откройте меню Excel, выберите пункт Настройки и щелкните элемент Вычисление.

    Если вы используете Excel 2007, нажмите кнопку Microsoft Office , щелкните Параметры Excelи выберите категорию формулы .

    В разделе Параметры вычислений установите флажок Включить итеративные вычисления. На компьютере Mac щелкните Использовать итеративное вычисление.

    В поле Предельное число итераций введите количество итераций для выполнения при обработке формул. Чем больше предельное число итераций, тем больше времени потребуется для пересчета листа.

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

    Итеративное вычисление может иметь три исход:

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

    Решение расходится, т. е. при каждой последующей итерации разность между текущим и предыдущим результатами увеличивается.

    Решение переключается между двумя значениями. Например, после первой итерации результат равен 1, после следующей итерации результат — 10, после следующей итерации результат равен 1 и т. д.

    Дополнительные сведения

    Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

    Читайте также:  Долго открывается excel файл

    Дополнительные сведения

    Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

    Источник: support.office.com

    Циклическая ссылка в Excel

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

      Например, формула в ячейке A3 на рисунке ниже ссылается на ячейку A3 (т.е. на саму себя), чего быть не может.

    Примечание: Если вы создадите такую циклическую ссылку, Excel вернёт “0”.

      Ещё один пример. Формула в ячейке С2 на следующем рисунке ссылается на ячейку C1.


    Формула в ячейке C3 ссылается на ячейку С2.


    Формула в ячейке C4 ссылается на ячейку С3.


    Пока все нормально. Теперь измените значение в ячейке C1 на следующую формулу:

    Пояснение:

    • Ячейка С1 ссылается на ячейку C4.
    • С4 ссылается на ячейку C3.
    • С3 ссылается на ячейку C2.
    • С2 ссылается на ячейку C1.
    • Другими словами, формула в ячейке C1 косвенно ссылается на саму себя, чего быть не должно.

    Примечание: Если вы создадите такую циклическую ссылку, Excel вернёт “0”.

    1. Чтобы найти циклические ссылки в документе, на вкладке Formulas (Формулы) кликните по стрелке вниз рядом с иконкой Error Checking (Проверка наличия ошибок) и нажмите Circular References (Циклические ссылки).

    Источник: office-guru.ru

    Как обнаружить циклическую ссылку в excel

    На этом шаге мы рассмотрим циклические ссылки.

    Иногда при вводе формул на экране может появиться сообщение, подобное показанному на рисунке 1.

    Рис. 1. Excel сообщает о том, что в формуле содержится циклическая ссылка

    Это говорит о том, что в формуле, которую Вы только что ввели, используется циклическая ссылка. Циклическая ссылка означает прямое или косвенное обращение формулы к самой себе. Например, если ввести в ячейку A3 формулу = A1 + A2 + A3 , то возникает циклическая ссылка, так как в формуле, которая находится в ячейке A3 , используется также ссылка на ячейку A3 . Вычисления по этой формуле могут продолжаться бесконечно долго, поскольку значение в ячейке A3 будет постоянно изменяться. Другими словами, результат никогда небудет получен.

    Если после ввода формулы Вы получили сообщение о циклической ссылке, то у Вас есть две возможности.

    • Щелкнуть на кнопке ОК , чтобы попытаться обнаружить циклическую ссылку.
    • Щелкнуть на кнопке Отмена , чтобы ввести формулу в том виде, в каком она есть.

    Как правило, циклические ссылки являются ошибочными, поэтому нужно щелкнуть на кнопке ОК . В результате Excel отобразит панель инструментов Циклические ссылки (рис. 2).

    Рис. 2. Панель инструментов Циклические ссылки

    На этой панели щелкните на первой ячейке в раскрывающемся списке, а затем исследуйте находящуюся в этой ячейке формулу. Если Вы не можете определить, является ли эта ячейка причиной появления циклической ссылки, то щелкните на следующей ячейке в списке. Продолжайте просматривать формулы до тех пор, пока в строке состояния не исчезнет запись Цикл .

    Если Вы решите игнорировать сообщение о циклической ссылке (щелкнув на кнопке Отмена ), то Excel позволит Вам ввести данную формулу и отобразит в строке состояния сообщение, напоминающее о существовании циклической ссылки. В данном случае это сообщение будет выглядеть так: Цикл: АЗ . Если же Вы активизируете другую рабочую книгу, то сообщение будет состоять только из одного слова Цикл (без указания адреса ячейки).

    Если активизирована опция Итерации , то Excel ничего не сообщит о циклической ссылке. Установить эту опцию можно во вкладке Вычисления диалогового окна Параметры (рис. 3).

    Рис. 3. Вкладка Вычисления диалогового окна Параметры

    При активизации описываемой опции Excel выполняет циклические вычисления столько раз (делает столько итераций), сколько задано в поле Предельное число итераций , или до тех пор, пока изменение значения не станет меньше, чем 0,001 (либо величины, заданной в поле Относительная погрешность ). Бывают ситуации, когда циклические ссылки используются преднамеренно. В подобных случаях параметр Итерации должен быть выбран.

    Простой пример такой ситуации показан на рисунке 4.

    Рис. 4. Пример преднамеренной циклической ссылки

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

    В ячейке с именем Пожертвования содержится следующая формула: = 5% * Чистый_доход

    В ячейке с именем Чистый_доход находится следующая формула: = Прибыль – Расходы – Пожертвования

    Эти формулы создают разрешимую циклическую ссылку. Excel продолжает вычисления до тех пор, пока результаты формул перестанут изменяться. Чтобы увидеть, как это происходит, введите некоторые значения в ячейки Прибыль и Расходы . Если опция Итерации не активизирована, то Excel выведет на экран сообщение о циклической ссылке, и правильный результат не будет получен. Если же опция Итерации активизирована, то Excel будет продолжать вычисления до тех пор, пока значение Пожертвования не будет составлять 5% от величины Чистый_доход .

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

    На следующем шаге мы рассмотрим несколько примеров с использованием абсолютных, относительных и смешанных ссылок в формулах.

    Источник: it.kgsu.ru