# TextCount — функция диаграммы

TextCount() используется для агрегирования нечисловых значений поля в каждом измерении диаграммы.

Синтаксис:

TextCount({[SetExpression] [DISTINCT] [TOTAL [&lt;fld {,fld}&gt;]]} expr)

Возвращаемые типы данных: целое

Аргументы

| Аргумент | Описание |
| --- | --- |
| expr | Выражение или поле, содержащее данные для измерения. |
| SetExpression | По умолчанию функция агрегирования агрегирует множество возможных записей, определенных выборкой. Альтернативный набор записей может быть определен выражением анализа множества. |
| DISTINCT | Если слово DISTINCT указывается до аргументов функции, все дубликаты, возникшие в результате оценки аргументов функции, будут проигнорированы. |
| TOTAL | Если слово TOTAL стоит перед аргументами функции, вычисление выполняется по всем возможным значениям, указанным в текущих выборках, а не только в тех, которые относятся к значению текущего измерения, т. е. измерения диаграммы игнорируются.<br><br>При использовании выражения TOTAL [&lt;fld {.fld}&gt;], где префикс TOTAL предшествует списку из одного или нескольких имен полей, выступающих в качестве подмножества переменных измерения диаграммы, создается подмножество всех возможных значений.<br><br>[Определение объема агрегирования](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Пример: выражения диаграммы

| Пример | Результат |
| --- | --- |
| `TextCount(Product)` | Возвращает количество названий продуктов, которые содержат текстовые значения. |
| `TextCount(OrderNumber)` | Возвращает количество строк в поле `OrderNumber`, которые содержат текстовые значения.<br><br>Примечание к информации«0» считается значением, а не пустой ячейкой. Тем не менее, если мера агрегирует значение для измерения до 0, это измерение не будет включено в диаграммы. Пустые ячейки оцениваются как нетекстовые и не учитываются функцией `TextCount`. |
| `TextCount (DISTINCT Product)/Count(Product)` | Подсчитывает количество всех уникальных текстовых значений `Product` и делит его на общее количество значений в элементе `Product`. |

## Пример. Основы использования функции TextCount

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/CounterAggregationFunctions/textcount.htm)

#### Выражение диаграммы

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Следующие поля в таблице данных:

  * `Customer`

  * `Product`

  * `OrderNumber`

Скрипт загрузки

```
Set NULLINTERPRET = ' ';
Example:
LOAD * inline [
Customer|Product|OrderNumber
Astrida|AA|1
Astrida|AA|7
Astrida|BB|4
Betacab|CC|6
Betacab|AA|5
Betacab|BB|
Canutility|AA|
Canutility|CC|
Divadip|CC|2
Divadip|DD|3
](delimiter is '|');
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу со следующими мерами:

* `=TextCount(Product)`, чтобы вернуть количество названий продуктов, которые являются текстовыми значениями.

* `=TextCount(OrderNumber)`, чтобы подсчитать количество номеров заказов, которые являются текстовыми значениями.

* `=TextCount(DISTINCT Product)/Count(Product)`, чтобы подсчитать общее количество уникальных текстовых значений `Product` и разделить его на общее количество значений в `Product`.

Results table

| TextCount(Product) | TextCount(OrderNumber) | TextCount(DISTINCT Product)/Count(Product) |
| --- | --- | --- |
| 10 | 3 | 0.4 |

Первая мера возвращает `10`, потому что все десять записей в `Product` являются текстом.

Вторая мера возвращает `3`, потому что пустые ячейки рассматриваются как текст и подсчитываются. Обычно этот тип меры используется, чтобы убедиться, что в числовых полях нет текстовых или нулевых значений.

Третья мера возвращает `0.4`. Этот результат подсчитывается путем деления общего количества уникальных текстовых значений в `Product` (`4`) на общее количество значений в `Product` (`10`).

## Пример. Сценарий использования функции TextCount

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/CounterAggregationFunctions/textcount.htm)

#### Выражение диаграммы

Обзор

Набор данных содержит данные ответов на опрос, содержащие как жалобы, так и общие отзывы по продуктам. Требуется проверить только те ответы, которые содержат текстовые значения.

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Следующие поля в таблице данных:

  * `CustomerID`

  * `ProductPurchased`

  * `Complaint`

  * `Feedback`

Скрипт загрузки

```
Set NullInterpret = '';
Example:
Load * Inline [
CustomerID, ProductPurchased, Complaint, Feedback
1, Laptop, Slow performance, "The laptop is slow, poor battery, slow graphics"
2, Mobile, Heating issue, "Mobile heats up, average camera"
3, Laptop, Battery problem, "Battery not working, slow to charge"
4, Tablet, Screen issue, "Screen is broken, unresponsive touch"
5, Mobile, No issues, "Excellent performance"
6, Mobile, 123, "123"
7, Laptop, ,
8, Tablet, Warranty expired,
9, Mobile, , "Contact customer service"
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `ProductPurchased`

Создайте следующие меры:

* `=TextCount(ProductPurchased)`, чтобы вычислить количество названий продуктов с нечисловыми значениями.

* `=TextCount(Complaint)`, чтобы вычислить количество жалоб с нечисловыми значениями.

* `=TextCount(Feedback)`, чтобы вычислить количество отзывов с нечисловыми значениями.

Results table

| ProductPurchased | TextCount(ProductPurchased) | TextCount(Complaint) | TextCount(Feedback) |
| --- | --- | --- | --- |
| Laptop | 3 | 2 | 2 |
| Mobile | 4 | 2 | 3 |
| Tablet | 2 | 2 | 1 |

Результаты показывают, что для продукта `Laptop` существует `3` записи, из которых `2` содержат жалобы и `2` ― отзывы. Аналогичным образом, для продукта `Mobile` есть `4` записи, включая `2` жалобы и `3` отзыва. Числовые значения или пустые значения не учитываются, поскольку предполагается, что поля `ProductPurchased`, `Complaint` и `Feedback` содержат текстовые значения.