Прецеденты и зависимые
Введение
- Предшествующие ячейки - это ячейки, на которые ссылается формула в другой ячейке. Например, если ячейка D10 содержит формулу =B5, то ячейка B5 является предшествующей по отношению к ячейке D10.
- Зависимые ячейки содержат формулы, которые ссылается на другие ячейки. Например, если ячейка D10 содержит формулу =B5, то ячейка D10 зависит от ячейки B5.
Чтобы сделать таблицу удобной для чтения, вы можете явно показать, какие ячейки в таблице используются в формулах. Точно так же, вы можете извлечь зависимые ячейки других ячеек.
Aspose.Cells позволяет отслеживать ячейки и выяснять, какие из них связаны между собой.
Отслеживание предшествующих и зависимых ячеек: Microsoft Excel
Формулы могут изменяться в зависимости от изменений, внесенных клиентом. Например, если ячейка C1 зависит от того, что в C3 и C4 содержится формула, и C1 изменяется (что приводит к перезаписи формулы), то C3 и C4 или другие ячейки должны измениться, чтобы сбалансировать таблицу согласно правилам бизнеса.
Точно так же, предположим, что C1 содержит формулу “=(B122)/(M2N32)”. Я хочу найти ячейки, от которых зависит C1, то есть предшественники B1, M2 и N32.
Вам может потребоваться определить зависимость конкретной ячейки от других ячеек. Если деловые правила закодированы в формулах, мы хотели бы узнать зависимость и выполнить некоторые правила на ее основе. Точно так же, если значение конкретной ячейки изменено, какие ячейки в листе электронной таблицы затронуты этим изменением?
Microsoft Excel позволяет пользователям отслеживать предшественников и зависимых.
- На Панели инструментов Вид выберите Аудит формул. Будет отображено диалоговое окно Аудит формул.
- Следить за предшественниками:
- Выберите ячейку, содержащую формулу, для которой вы хотите найти предшествующие ячейки.
- Чтобы отобразить стрелку маршрута к каждой ячейке, которая непосредственно предоставляет данные для активной ячейки, щелкните Отслеживание предшественников на Панели инструментов Проверка формул.
- Отследить формулы, которые ссылается на конкретную ячейку (зависимости)
- Введите ячейку, для которой вы хотите найти зависимые ячейки.
- Чтобы отобразить стрелку маршрута к каждой ячейке, которая зависит от активной ячейки, щелкните Отслеживание зависимости на панели инструментов Проверка формул.
Отслеживание предшественников и зависимых ячеек: Aspose.Cells
Отслеживание предшественников
Aspose.Cells позволяет легко получить предшествующие ячейки. Он может не только извлекать ячейки, которые предоставляют данные для простых предшественников формул, но и находить ячейки, которые предоставляют данные для сложных предшественников формул с именованными диапазонами.
В приведенном ниже примере используется шаблонный файл Excel, Book1.xls. На первом листе электронной таблицы содержатся данные и формулы.
Aspose.Cells предоставляет Cell метод GetPrecedents и ReferredAreaCollection. Как видно выше, в Book1.xls ячейка B7 содержит формулу “=SUM(A1:A3)”. Таким образом, ячейки A1:A3 являются предшествующими для ячейки B7. В следующем примере продемонстрирована функция трассировки предшественников с использованием шаблонного файла Book1.xls.
Отслеживание зависимых
Aspose.Cells позволяет получать зависимые ячейки в электронных таблицах. Aspose.Cells может извлекать не только ячейки, предоставляющие данные относительно простой формулы, но и находить ячейки, предоставляющие данные для зависимых от названных диапазонов сложных формул.
Aspose.Cells предоставляет метод GetDependents для трассировки зависимостей ячейки. Например, в Book1.xlsx есть формулы: “=A1+20” и “=A1+30” в ячейках B2 и C2 соответственно. В следующем примере показано, как отслеживать зависимости для ячейки A1 с использованием шаблонного файла Book1.xlsx.
Отслеживание предшествующих и зависимых ячеек в соответствии с цепочкой вычислений
Вышеуказанные методы трассировки предшественников и зависимых ячеек соответствуют самому выражению формулы. Они просто предоставляют удобный способ для пользователя отслеживать взаимосвязи для нескольких формул. Если в рабочей книге большое количество формул, и пользователю необходимо отслеживать предшественников и зависимых ячеек для каждой ячейки, они будут плохо выполняться. В такой ситуации пользователь должен рассмотреть использование методов GetPrecedentsInCalculation и GetDependentsInCalculation. Эти два метода отслеживают зависимости в соответствии с цепочкой вычислений. Для их использования сначала необходимо включить цепочку вычислений с помощью Workbook.Settings.FormulaSettings.EnableCalculationChain. Затем требуется выполнить полное вычисление для рабочей книги с помощью Workbook.CalculateFormula(). После этого можно отслеживать предшественников или зависимые ячейки для всех нужных ячеек.
Для некоторых формул результатом предшествующих могут быть разные для GetPrecedents и GetPrecedentsInCalculation, а результатом зависимых могут быть разные для GetDependents и GetDependentsInCalculation. Например, если формула ячейки A1 - “=IF(TRUE,B2,C3)”, то GetPrecedents предоставит B2 и C3 как предшествующие ячейки для A1. Следовательно, B2 и C3 обе зависимы от A1 при проверке GetDependents. Однако для вычисления этой формулы очевидно, что только B2 может повлиять на результат. Поэтому GetPrecedentsInCalculation для A1 не предоставит C3, и GetDependentsInCalculation для C3 не предоставит A1. Иногда пользователь может иметь только требование отслеживания тех взаимосвязей, которые фактически влияют на результат вычислений формул на основе текущих данных книги, тогда им также необходимо использовать GetDependentsInCalculation/GetPrecedentsInCalculation вместо GetDependents/GetPrecedents.
Приведенный ниже пример демонстрирует, как отследить предшествующие и зависимые в соответствии с цепочкой вычислений для ячеек: