# Формулы листа диаграммы

> Уравнения и формулы электронных таблиц PowerPoint

Source: https://docs.aspose.com/slides/ru/nodejs-java/chart-worksheet-formulas/
Updated: 2025-12-08


## **О Формуле Таблицы Диаграммы в Презентации**
**Таблица диаграммы** (или лист диаграммы) в презентации является источником данных для диаграммы. Таблица диаграммы содержит данные, которые отображаются на диаграмме графически. При создании диаграммы в PowerPoint автоматически создаётся и лист, связанный с этой диаграммой. Лист создаётся для всех типов диаграмм: линейных, столбчатых, радиальных, круговых и т.д. Чтобы увидеть таблицу диаграммы в PowerPoint, дважды щёлкните по диаграмме:

![todo:image_alt_text](chart-worksheet-formulas_1.png)


Таблица диаграммы содержит имена элементов диаграммы (Category Name: *Category1*, Serie Name) и таблицу с числовыми данными, соответствующими этим категориям и сериям. По умолчанию, при создании новой диаграммы данные таблицы заполняются значениями по умолчанию. Затем вы можете изменить данные вручную в листе.

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

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

В [**Aspose.Slides**](https://products.aspose.com/slides/nodejs-java/) таблица диаграммы представлена методом
[**Chart.getChartData.getChartDataWorkbook**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartData#getChartDataWorkbook--) типа
[**ChartDataWorkbook**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartDataWorkbook).
Формулу можно задать и изменить с помощью
[**ChartDataCell.setFormula**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartDataCell#setFormula-java.lang.String-) метода.
Поддерживается следующая функциональность формул в Aspose.Slides:

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


Обычно листы хранят последние вычисленные значения формул. Если после загрузки презентации данные диаграммы не изменялись, метод
[**ChartDataCell.getValue**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartDataCell#getValue--) возвращает эти значения при чтении. Но если данные листа были изменены, при чтении свойства **ChartDataCell.Value** будет выброшено исключение
[**CellUnsupportedDataException**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CellUnsupportedDataException) для неподдерживаемых формул. Это происходит потому, что при успешном разборе формул определяются зависимости ячеек и проверяется корректность последних значений. Если формулу нельзя разобрать, корректность значения ячейки гарантировать нельзя.

## **Добавление Формулы Таблицы Диаграммы в Презентацию**
Сначала добавьте диаграмму на первый слайд новой презентации с помощью
[ShapeCollection.getShapes.addChart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addChart-int-float-float-float-float-).
Лист диаграммы создаётся автоматически и к нему можно обратиться методом
[**Chart.getChartData.getChartDataWorkbook**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartData#getChartDataWorkbook--):
```javascript
var pres = new aspose.slides.Presentation();
try {
    var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 150, 150, 500, 300);
    var workbook = chart.getChartData().getChartDataWorkbook();
    // ...
} finally {
    if (pres != null) {
        pres.dispose();
    }
}
```


Запишем некоторые значения в ячейки с помощью свойства
[**ChartDataCell.setValue**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartDataCell#setValue-java.lang.Object-) типа **Object**, что означает возможность установить любое значение:
```javascript
workbook.getCell(0, "F2").setValue(-2.5);
workbook.getCell(0, "G3").setValue(6.3);
workbook.getCell(0, "H4").setValue(3);
```


Чтобы записать формулу в ячейку, используйте метод
[**ChartDataCell.setFormula**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartDataCell#setFormula-java.lang.String-):

*Примечание*: метод [**ChartDataCell.setFormula**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartDataCell#setFormula-java.lang.String-) используется для задания ссылок в стиле A1.

Чтобы задать ссылку в виде [R1C1Formula](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartDataCell#getR1C1Formula--), используйте метод
[**ChartDataCell.setR1C1Formula**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartDataCell#setR1C1Formula-java.lang.String-):

Тогда, если вы попытаетесь прочитать значения из ячеек B2 и C2, они будут вычислены:
```javascript
var value1 = cell1.getValue();// 7.8
var value2 = cell2.getValue();// 2.1
```


## **Логические Константы**
Вы можете использовать логические константы, такие как *FALSE* и *TRUE*, в формулах ячеек:
```javascript
workbook.getCell(0, "A2").setValue(false);
var cell = workbook.getCell(0, "B2");
cell.setFormula("A2 = TRUE");
var value = cell.getValue();// значение содержит логический "false"
```


## **Числовые Константы**
Числа можно использовать в обычных или научных записях для создания формул таблицы диаграммы:
```javascript
workbook.getCell(0, "A2").setFormula("1 + 0.5");
workbook.getCell(0, "B2").setFormula(".3 * 1E-2");
```


## **Строковые Константы**
Строковая (или буквальная) константа — это конкретное значение, которое используется как есть и не меняется. Строковые константы могут представлять даты, тексты, числа и т.п.:
```javascript
workbook.getCell(0, "A2").setFormula("\"abc\"");
workbook.getCell(0, "B2").setFormula("\"2/3/2020 12:00\"");
```


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

- #DIV/0! — формула пытается делить на ноль.
- #GETTING_DATA — может отображаться в ячейке, пока её значение всё ещё вычисляется.
- #N/A — информация отсутствует или недоступна. Причины могут быть: пустые ячейки, лишний пробел, опечатка и т.п.
- #NAME? — не удалось найти ячейку или другой объект формулы по имени.
- #NULL! — может появиться при ошибке в формуле, например, (,) или пробел вместо двоеточия (:).
- #NUM! — числовое значение в формуле недопустимо, слишком велико или слишком мало и т.п.
- #REF! — неверная ссылка на ячейку.
- #VALUE! — неожиданный тип значения. Например, строковое значение в числовой ячейке.
```javascript
var cell = workbook.getCell(0, "A2");
cell.setFormula("2 / 0");
var value = cell.getValue();// значение содержит строку "#DIV/0!"
```


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

|**Оператор**|**Значение**|**Пример**|
| :- | :- | :- |
|+ (плюс)|Сложение или унарный плюс|2 + 3|
|- (минус)|Вычитание или отрицание|2 - 3<br>-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|<p>A$2</p><p>$A2</p>|
|Строка|$2:$2|2:2|-|
|Столбец|$A:$A|A:A|-|
|Диапазон|$A$2:$C$4|A2:C4|<p>$A$2:C4</p><p>A$2:$C4</p>|


Пример использования ссылки в стиле A1 в формуле:
```javascript
workbook.getCell(0, "A2").setFormula("C3 + SUM(F2:H5)");
```


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

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


Пример использования ссылки в стиле R1C1 в формуле:
```javascript
workbook.getCell(0, "A2").setR1C1Formula("R2C4 + SUM(R5C6:R7C9)");
```


## **Предопределённые Функции**
Существует набор предопределённых функций, которые можно использовать в формулах для упрощения их реализации. Эти функции инкапсулируют наиболее часто используемые операции, такие как:

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

## **FAQ**

**Поддерживаются ли внешние файлы Excel в качестве источника данных для диаграммы с формулами?**

Да. Aspose.Slides поддерживает внешние книги как [источник данных диаграммы](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdatasourcetype/), что позволяет использовать формулы из XLSX-файла вне презентации.

**Могут ли формулы диаграммы ссылаться на листы внутри той же книги по имени листа?**

Да. Формулы следуют стандартной модели ссылок Excel, поэтому вы можете ссылаться на другие листы внутри той же книги или внешней книги. Для внешних ссылок указывайте путь и имя книги, используя синтаксис Excel.
