Link Search Menu Expand Document

Different formulas

Формулы в XTT

Прямое редактирование формул из кода запрещено, тк данный подход чреват ошибками и не очень информативен.
К тому же внутренне представление формул в Excel xlsx (абсолютные) и Excel xml (относительные) не позволяет использовать единообразный подход, если бы заполнение формул происходило со стороны ABAP.

Вместо этого, есть несколько (надеюсь простых) правил при редактировании формул в самом MS Excel.

Копирование данных

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

Чтобы формулы “не поехали” при копировании можно использовать несколько способов:

Относительные ссылки в XLSX

Самым родным и надежным способом для Excel является - “плясать” от текущей ячейки где прописываем формулу, те использовать =OFFSET() (в русской локализации =СМЕЩ()) в купе с =INDIRECT() / ДВССЫЛ() для создания относительных формул.

те, чтобы получить сумму предыдущих трех ячеек (1,2,3), надо сместиться на -3 ячейки по столбцам и расширить диапазон на 3 ячейки

image

Смещение можно указать и напрямую в INDIRECT(“RC[-3]”,0), в таких формулах также может пригодится:

  • =ROW() / СТРОКА() и
  • *=COLUMN()СТОЛБЕЦ()*

которые без передачи аргументов возвращают текущую строку и столбец

Знак $ для строки

Указывать смещения от текущей ячейки, не очень удобно, поэтому для упрощения было введена правило:

Если указать номер текущей строки со знаком $, он будет заменен во время выполнения

image

В итоговом отчете будет так

image

PS: Для ;direction=column (те вывода таблицы по столбцам) данное правило соответственно будет работать для формул в таком виде $E

Shared formulas

Ранее в AOK & XTT происходили “таинственные” исчезновения формул
Происходил данный баг когда относительная ссылка встречалась несколько раз подряд

В текущей версии преобразование из абсолютной ссылки в относительную и обратно, надеюсь, происходит без проблем image


Именованные диапазоны ячеек

Если сослать на именованный диапазон, который будет изменен во время выполнения

  • Произойдет однократное растягивание всего диапазона

image

  • Если же название диапазона заканчивается на ‘_’ данный будет размножен и итоговый список будет заменен в самой формуле

image

Сумма дочерних элементов

Для суммы дочерних вовсе не обязательно использовать предыдущий способ с именованными ячейками или создавать иерархии

Если нужно просуммировать поле таблицы можно воспользоваться стандартными средствами Excel

image

Формулы массива

Формулы массива также поддерживаются

image

Word & PDF

Но что если нужно просуммировать значения поля не только в Excel, но и в Word или Pdf? В этом случае можно воспользоваться функциями агрегации ;func= SUM | AVG | COUNT | FIRST

Формулы с условным форматированием

Для формул в условных форматированиях, желательно указывать область действия в виде целых столбцов

image