Формулы таблиц диаграмм

О формуле таблицы диаграмм в презентации

Таблица диаграмм (или таблица рабочего листа диаграммы) в презентации является источником данных для диаграммы. Таблица диаграмм содержит данные, которые графически представлены на диаграмме. Когда вы создаете диаграмму в PowerPoint, рабочий лист, связанный с этой диаграммой, также создается автоматически. Рабочий лист диаграммы создается для всех типов диаграмм: линейных диаграмм, столбчатых диаграмм, диаграмм-солариев, круговых диаграмм и т. д. Чтобы увидеть таблицу диаграмм в PowerPoint, вы должны дважды щелкнуть по диаграмме:

todo:image_alt_text

Таблица диаграмм содержит названия элементов диаграммы (Название категории: Категория1, Название серии) и таблицу с числовыми данными, соответствующими этим категориям и сериям. По умолчанию, когда вы создаете новую диаграмму, данные таблицы диаграмм устанавливаются с помощью данных по умолчанию. Затем вы можете изменить данные таблицы в рабочем листе вручную.

Обычно диаграмма представляет сложные данные (например, финансовые аналитики, научные аналитики), имея ячейки, значения которых вычисляются на основе значений в других ячейках или из других динамических данных. Вычисление значения ячейки вручную и его жесткое кодирование в ячейке затрудняет изменение в будущем. Если вы измените значение определенной ячейки, все ячейки, зависящие от нее, также потребуют обновления. Более того, данные таблицы могут зависеть от данных из других таблиц, создавая сложную схему данных презентации с необходимостью обновления в простом и гибком формате.

Формула таблицы диаграмм в презентации — это выражение, автоматически вычисляющее и обновляющее данные таблицы диаграмм. Формула таблицы определяет логику вычисления данных для определенной ячейки или набора ячеек. Формула таблицы представляет собой математическую формулу или логическую формулу, которая использует: ссылки на ячейки, математические функции, логические операторы, арифметические операторы, функции преобразования, строковые константы и т. д. Определение формулы записывается в ячейку, и эта ячейка не содержит простого значения. Формула таблицы вычисляет значение и возвращает его, затем это значение присваивается ячейке. Формулы таблицы диаграмм в презентациях на самом деле такие же, как формулы Excel, и поддерживаются те же функции, операторы и константы по умолчанию для их реализации.

В Aspose.Slides таблица диаграмм представлена с помощью ChartData::get_ChartDataWorkbook() метода типа IChartDataWorkbook. Формула таблицы может быть назначена и изменена с помощью IChartDataCell::set_Formula() метода. Для формул в Aspose.Slides поддерживается следующая функциональность:

  • Логические константы
  • Числовые константы
  • Строковые константы
  • Константы ошибок
  • Арифметические операторы
  • Операторы сравнения
  • Ссылки на ячейки в формате A1
  • Ссылки на ячейки в формате R1C1
  • Предопределенные функции

Обычно таблицы хранят последние вычисленные значения формул. Если после загрузки презентации данные диаграммы не были изменены, метод IChartDataCell.get_Value() вернет эти значения при чтении. Однако, если данные таблицы были изменены, метод ChartDataCell.get_Value() выбросит CellUnsupportedDataException для неподдерживаемых формул. Это происходит потому, что когда формулы успешно разбираются, определяются зависимости ячеек, и устанавливается правильность последних значений. Однако, если формула не может быть разобрана, корректность значения ячейки не может быть гарантирована.

Добавить формулу таблицы диаграмм в презентацию

Сначала добавьте диаграмму на первый слайд новой презентации с помощью IShapeCollection::AddChart(). Рабочий лист диаграммы создается автоматически и может быть доступен с помощью ChartData::get_ChartDataWorkbook() метода:

auto presentation = System::MakeObject<Presentation>();
    
auto chart = presentation->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::ClusteredColumn, 150.0f, 150.0f, 500.0f, 300.0f);
auto workbook = chart->get_ChartData()->get_ChartDataWorkbook();

// ...

Давайте запишем несколько значений в ячейки с помощью IChartDataCell.set_Value() метода типа Object, что означает, что вы можете передать любое значение в метод:

workbook->GetCell(0, u"F2")->set_Value(System::ObjectExt::Box<double>(-2.5));
workbook->GetCell(0, u"G3")->set_Value(System::ObjectExt::Box<double>(6.3));
workbook->GetCell(0, u"H4")->set_Value(System::ObjectExt::Box<int32_t>(3));

Теперь чтобы записать формулу в ячейку, вы можете использовать IChartDataCell::set_Formula() метод:

ПримечаниеIChartDataCell::set_Formula() метод используется для установки ссылок на ячейки в формате A1. 

Чтобы установить ссылку ячейки формата R1C1, вы можете использовать метод IChartDataCell::set_R1C1Formula():

Затем, если вы попробуете прочитать значения из ячеек B2 и C2, они будут вычислены:

auto value1 = cell1->get_Value(); // 7.8
auto value2 = cell2->get_Value(); // 2.1

Логические константы

Вы можете использовать логические константы, такие как FALSE и TRUE в формулах ячеек:

Числовые константы

Числа могут использоваться в общих или научных обозначениях для создания формулы таблицы диаграмм:

Строковые константы

Строковая (или литературная) константа — это конкретное значение, которое используется таким, каким оно есть, и не изменяется. Строковые константы могут быть: даты, тексты, числа и т. д.:

Константы ошибок

Иногда невозможно вычислить результат по формуле. В этом случае код ошибки отображается в ячейке вместо ее значения. Каждый тип ошибки имеет конкретный код:

  • #DIV/0! - формула пытается делить на ноль.
  • #GETTING_DATA - может отображаться на ячейке, пока ее значение все еще вычисляется.
  • #N/A - информация отсутствует или недоступна. Некоторые причины могут быть: используемые в формуле ячейки пусты, дополнительный пробел, опечатка и т. д.
  • #NAME? - определенная ячейка или другие объекты формулы не могут быть найдены по имени. 
  • #NULL! - может появиться, когда есть ошибка в формуле, например:  (,) или символ пробела, используемый вместо двоеточия (:).
  • #NUM! - числовое значение в формуле может быть недопустимым, слишком длинным или слишком маленьким и т. д.
  • #REF! - недопустимая ссылка на ячейку.
  • #VALUE! - неожиданный тип значения. Например, строковое значение присвоено числовой ячейке.

Арифметические операторы

Вы можете использовать все арифметические операторы в формулах рабочего листа диаграмм:

Оператор  Значение  Пример
+ (плюс)  Сложение или унарный плюс 2 + 3
- (минус)  Вычитание или отрицание  2 - 3
-3
* (умножение) Умножение  2 * 3
/ (деление) Деление  2 / 3
% (процент) Процент  30%
^ (степень) Возведение в степень 2 ^ 3

Примечание: Чтобы изменить порядок вычисления, заключите в скобки ту часть формулы, которая должна быть вычислена первой.

Операторы сравнения

Вы можете сравнивать значения ячеек с операторами сравнения. При сравнении двух значений с помощью этих операторов результат — логическое значение, либо TRUE, либо FALSE:

Оператор  Значение  Значение 
= (знак равенства)  Равно  A2 = 3
<> (знак неравенства)  Не равно A2 <> 3
> (знак больше)  Больше чем A2 > 3
>= (знак больше или равно) Больше или равно A2 >= 3
< (знак меньше) Меньше чем A2 < 3
<= (знак меньше или равно) Меньше или равно A2 <= 3

Ссылки на ячейки в формате A1

Ссылки на ячейки в формате A1 используются для рабочих листов, где столбец имеет буквенный идентификатор (например, “A"), а строка имеет числовой идентификатор (например, “1"). Ссылки на ячейки в формате A1 могут использоваться следующим образом:

Ссылка на ячейку Пример
Абсолютная  Относительная  Смешанная
Ячейка  $A$2  A2

A$2

$A2

Строка  $2:$2  2:2  -
Столбец  $A:$A  A:A  -
Диапазон  $A$2:$C$4  A2:C4

$A$2:C4

A$2:$C4

Вот пример, как использовать ссылку на ячейку в формате A1 в формуле:

Ссылки на ячейки в формате R1C1

Ссылки на ячейки в формате R1C1 используются для рабочих листов, где и строка, и столбец имеют числовой идентификатор. Ссылки на ячейки в формате R1C1 могут использоваться следующим образом:

Ссылка на ячейку Пример
Абсолютная  Относительная  Смешанная
Ячейка  R2C3 R[2]C[3] R2C[3]
R[2]C3
Строка  R2 R[2] -
Столбец  C3 C[3] -
Диапазон  R2C3:R5C7 R[2]C[3]:R[5]C[7]  R2C3:R[5]C[7]
R[2]C3:R5C[7]

Вот пример, как использовать ссылку на ячейку в формате A1 в формуле:

Предопределенные функции

Существуют предопределенные функции, которые можно использовать в формулах для упрощения их реализации. Эти функции инкапсулируют самые распространенные операции, такие как: 

  • ABS
  • AVERAGE
  • CEILING
  • CHOOSE
  • CONCAT
  • CONCATENATE
  • DATE (1900 год)
  • DAYS
  • FIND
  • FINDB
  • IF
  • INDEX (форма ссылки)
  • LOOKUP (векторная форма)
  • MATCH (векторная форма)
  • MAX
  • SUM
  • VLOOKUP