Избежание циклической ссылки
В Excel'е возник вопрос - имеется ряд связанных столбцов и значений, и в одном из них необходимо установить/подобрать такие значения, чтобы значения в другом имели определенный размер.
С учетом, что все на все завязано, возникает циклическая ссылка. В принципе, годится аппарат "подбор параметра", но, поскольку столбец огромен (бесконечный временной ряд по дням), и числа в нем могут "плавать" (где-то есть, а где-то нет), использовать эту тему нереально.
Представляется, что оптимальным вариантом было бы нахождение такого инструмента, который трансформировал бы формулы в значения, но стандартные функции тут не помогают.
Либо каким-либо образом "зашить" макрос в формулу, чтобы можно было ее легко "растягивать" вниз.
В идеале - надо, чтобы осуществлялся подбор всех значений одного столбца, который влияет (и одновременно зависит) от другого.
Надеюсь на вашу помошь.
В меню Сервис выбрать команду Параметры, затем закладку Вычисления и установить флажок напротив итерации, а в поле предельное число итераций необходимо ввести предельное число итераций, как правило это "1"
2. Также в MS Excel существует ещё одна интересная возможность, поиск решения :
Меню Сервис команда Поиск решения *
3. Также ещё можно посмотреть меню Сервис команда Подбор параметра
Примечание :
* - Если данная команда не отображается, то необходимо установить надстройку Поиск решения. Для этого, выберите в меню Сервис команду Надстройки, далее установите "флажок" напротив текста Поиск решения из списка Список надстроек и нажмите кнопку ОК.
Добрый день.
В Excel'е возник вопрос - имеется ряд связанных столбцов и значений...
Если я правильно понимаю Вашу задачу, то вопрос у Вас не столько об исключении циклических ссылок, сколько о том, как "привязать" макрос к каждой ячейке столбца для того, чтобы "отлавливать" изменения значений в них.
Если всё это так, то советую использовать событие Change для нужного рабочего листа.
Поиск решения пробовал - не годится, ибо ряд бесконечен, и нет желания прописывать каждый раз тысячу условий...
Да, задача стоит не в чистом избежании ссылки, а действительно, в "зашивании" какого-либо макроса (например, работающего с механизмом "подбор параметра") в ячейку.
Поиск решения пробовал - не годится, ибо ряд бесконечен, и нет желания прописывать каждый раз тысячу условий...
Вот пример кода:
If Target.Column = 1 Then
MsgBox "Изменено значение в столбце A, в строке " & Target.Row & "."
End If
End Sub
Его надо поместить в модуль кода того листа, за изменениями в котором Вы будете следить.
Вообще спектр применения итераций достаточно широк, другое дело будут они Вам полезны или нет ...
Спасибо за совет - работа с итерациями крайне помогает, и может быть очень полезна в моем случае. Но возникает следующая проблема - надо постоянно пересчитывать лист, и количество доступных итераций когда-либо заканчивается, и он постоянно начинает выводить разные значения для одной и той же ячейки (разные ступени итераций).
Вопрос - можно ли каким-либо образом выбрать максимальное значение, которое может быть установлено для данной ячейки в результате перебора возможных итераций?
Но если Вы уверены, что причина именно в этом и хотите минимизировать количество вычислений, то можно сделать следующее, в меню Сервис выберите команду Параметры и перейдите на закладку Вычисления.
Установите переключатель напротив вручную и снимите флажок пересчёт перед сохранением. Теперь пересчёт будет осуществляться только при нажатии клавиш F9 / SHIFT + F9 или программно.