Прецеденты и зависимые
Введение
- Предшествующие ячейки - это ячейки, на которые ссылается формула в другой ячейке. Например, если ячейка 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 обеспечивает класс Cell и его метод GetDependents для отслеживания зависимых ячеек. Например, в Book1.xlsx есть формулы: “=A1+20” и “=A1+30” в ячейках B2 и C2 соответственно. Следующий пример показывает, как отслеживать зависимых для ячейки A1 с помощью файла-шаблона Book1.xlsx.
Отслеживание предшествующих и зависимых ячеек в соответствии с цепочкой вычислений
Вышеуказанные API для отслеживания преследующих и зависимых работают с учетом самой формулы. Они удобны для быстрого поиска взаимозависимостей для нескольких формул. Если в рабочей книге много формул, и нужно отслеживать преследующих и зависимых для каждой ячейки, производительность снизится. В таком случае рекомендуется использовать методы 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.
Приведенный ниже пример демонстрирует, как отследить предшествующие и зависимые в соответствии с цепочкой вычислений для ячеек: