Прецеденты и зависимые

Введение

  • Предшествующие ячейки - это ячейки, на которые ссылается формула в другой ячейке. Например, если ячейка 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 позволяет пользователям отслеживать предшественников и зависимых.

  1. На Панели инструментов Вид выберите Аудит формул. Будет отображено диалоговое окно Аудит формул.
  2. Следить за предшественниками:
    1. Выберите ячейку, содержащую формулу, для которой вы хотите найти предшествующие ячейки.
    2. Чтобы отобразить стрелку маршрута к каждой ячейке, которая непосредственно предоставляет данные для активной ячейки, щелкните Отслеживание предшественников на Панели инструментов Проверка формул.
  3. Отследить формулы, которые ссылается на конкретную ячейку (зависимости)
    1. Введите ячейку, для которой вы хотите найти зависимые ячейки.
    2. Чтобы отобразить стрелку маршрута к каждой ячейке, которая зависит от активной ячейки, щелкните Отслеживание зависимости на панели инструментов Проверка формул.

Отслеживание предшественников и зависимых ячеек: Aspose.Cells

Отслеживание предшественников

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

В приведенном ниже примере используется шаблонный файл Excel, Book1.xls. На первом листе электронной таблицы содержатся данные и формулы.

Aspose.Cells предоставляет метод GetPrecedents класса Cell для отслеживания предшествующих ячеек. Он возвращает ReferredAreaCollection. Как видно выше, в Book1.xls, ячейка B7 содержит формулу “=SUM(A1:A3)”. Поэтому ячейки A1:A3 являются предшествующими ячейками для ячейки B7. Приведенный ниже пример демонстрирует функцию отслеживания предшествующих с использованием шаблонного файла Book1.xls.

Отслеживание зависимых

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

Aspose.Cells предоставляет метод GetDependents класса Cell, используемый для отслеживания зависимых ячеек. Например, в файле Book1.xlsx есть формулы: “=A1+20” и “=A1+30” в ячейках B2 и C2 соответственно. Приведенный ниже пример демонстрирует, как отследить зависимости для ячейки A1 с использованием шаблонного файла Book1.xlsx.

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

Вышеприведенные API для отслеживания предшествующих и зависимых ячеек соответствуют самому выражению формулы. Они просто предоставляют удобный способ для пользователя отслеживать взаимосвязи для нескольких формул. Если в книге Excel большое количество формул, и пользовательу необходимо отследить предшествующие и зависимые ячейки для каждой ячейки, они будут работать медленно. Для такой ситуации пользователю следует использовать методы 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.

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