# GetStateCounts

Функция диаграммы GetStateCounts() используется для подсчета общего количества уникальных значений, соответствующих указанным состояниям выборок.

GetStateCounts() позволяет объединить вычисления из следующих функций в одном вызове функции: GetSelectedCount(), GetNotSelectedCount(), GetAlternativeCount(), GetPossibleCount() и GetExcludedCount(). В расчет также можно добавить количество выбранных исключенных значений. Можно указать, увеличивает или уменьшает каждая функция возвращаемый итог.

Синтаксис:

GetStateCounts (field\_name, state\_name [, state\_type1,...state\_typeN]))

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

Аргументы

| Аргумент | Описание |
| --- | --- |
| field\_name | Поле, для которого рассчитывается состояние выборки. Несуществующее имя поля приводит к нулевому результату. |
| state\_name | Название альтернативного состояния. Если аргумент пуст (`''`) или равен null, используется унаследованное альтернативное состояние. Используйте `$`, чтобы явно применить состояние по умолчанию. Именованное (непустое) название состояния, которое не совпадает с существующим состоянием, приводит к нулевому результату. |
| state\_type | Список, содержащий одно или несколько типов состояний для значения поля. Эти типы состояний будут объединены при подсчете количества. Тип состояния задается с помощью ключа. Заключите каждый ключ в одинарные кавычки.<br><br>Если этот аргумент опущен, функция возвращает строку с указанием количества всех доступных состояний для поля в том же порядке, что и в перечислении.<br><br>Список состояний, которые можно использовать, приведен в таблице ниже. |

Для обозначения типов состояний используются специальные ключи. Можно использовать цифровую или текстовую версию ключа. Объединяйте несколько ключей в одном выражении, чтобы дополнительно настроить результат в соответствии с потребностями. Количество состояния можно не прибавлять к общему количеству, а вычитать из него. Для этого используйте текстовый ключ и поставьте знак «минус» (`-`) в качестве префикса перед типом состояния.

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

Ключи для каждого типа состояния поля

| Тип состояния поля | Описание | Числовой ключ | Текстовый ключ |
| --- | --- | --- | --- |
| Выбранные | Включает выбранные значения в расчет. Для ознакомления эквивалентной функции см. раздел [GetSelectedCount](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/ChartFunctions/FieldFunctions/getselectedcount.htm). | 1 | S |
| Дополнительные | Включает в расчет необязательные (не выбранные, но доступные для выбора) значения. Для ознакомления эквивалентной функции см. раздел [GetPossibleCount](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/ChartFunctions/FieldFunctions/getpossiblecount.htm). | 2 | O |
| Невыбранные | Включает невыбранные значения в расчет. Этот тип состояния доступен только в том случае, если поле находится в режиме логического «И».<br><br>Этот тип состояния возвращает те же вычисления, что и функция GetNotSelectedCount(), при условии, что аргументу include\_excluded в этой функции задано значение по умолчанию False. Для получения дополнительной информации о GetNotSelectedCount() см. раздел [GetNotSelectedCount](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/ChartFunctions/FieldFunctions/GetNotSelectedCount.htm). | 3 | D |
| Альтернативные | Включает альтернативные значения в расчет. Для ознакомления эквивалентной функции см. раздел [GetAlternativeCount](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/ChartFunctions/FieldFunctions/getalternativecount.htm). | 4 | A |
| Исключенные | Включает исключенные (невыбранные) значения в расчет. Для ознакомления с эквивалентной функцией см. раздел [GetExcludedCount](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/ChartFunctions/FieldFunctions/getexcludedcount.htm). | 5 | X |
| Выбранные исключенные | Включает выбранные исключенные значения в расчет. | 6 | XS |

## Когда это следует использовать

GetStateCounts() позволяет рассчитать пользовательское состояние выборок. Эта функция позволяет объединить несколько вызовов функций в один, упростив процесс написания выражения.

Например, может потребоваться подсчитать общее количество исключенных, альтернативных и выбранных исключенных значений для поля. Для расчета этой итоговой суммы можно использовать GetStateCounts().

Примеры и результаты

| Примеры | Результаты |
| --- | --- |
| `=GetStateCounts(ProductName, Null(), 'S')` | Возвращает количество выбранных значений для ProductName, в унаследованном альтернативном состоянии. |
| `=GetStateCounts(ProductName, '', 'A', 'XS')` | Возвращает общее количество альтернативных и выбранных исключенных значений для ProductName. Используется унаследованное альтернативное состояние. |
| `=GetStateCounts(ProductName, '', 'S', 'XS')` | Возвращает общее число выбранных пользователем значений для ProductName, в унаследованном состоянии. |
| `=GetStateCounts(ProductName, '', 'X', , 'A', 'XS')` | Возвращает общее число исключенных, выбранных исключенных и альтернативных значений для ProductName. Используется унаследованное альтернативное состояние. |
| При условии, что поле ProductName находится в режиме логического «И».<br><br><br>`=GetStateCounts(ProductName, '', 'D', '-O')` | Возвращает количество невыбранных значений, вычитаемое из количества возможных значений, для ProductName. Используется унаследованное альтернативное состояние. |
| `=GetStateCounts(ProductName, '$', 'O')` | Возвращает количество возможных значений для ProductName, в альтернативном состоянии по умолчанию. |
| `=GetStateCounts(ProductName, 'StateA', 'S')` | Возвращает количество выбранных значений для ProductName, в альтернативном состоянии под именем StateA. |

## Пример 1: расчет общего количества пользовательских выборок (включая выбранные исключенные значения)

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/ChartFunctions/FieldFunctions/getstatecounts.htm)

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

Обзор

Функция GetSelectedCount() возвращает общее количество выбранных значений, не включая общее количество выбранных исключаемых значений. GetExcludedCount() позволяет включить число выбранных исключаемых значений в расчет диаграммы.

Чтобы начать работу, добавьте приведенный ниже скрипт загрузки в свой документ.

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

```
Names:
LOAD * inline [
First name|Last name|Initials|Has cellphone
John|Anderson|JA|Yes
Sue|Brown|SB|Yes
Mark|Carr|MC|No
Peter|Devonshire|PD|No
Jane|Elliot|JE|Yes
Peter|Franc|PF|Yes ] (delimiter is '|');
```

Результаты

Выполните следующие действия.

1. Загрузите данные и создайте два списка на своем листе.

2. Добавьте First name в качестве измерения в первое поле списка. Добавьте Last name в качестве измерения во второе поле списка.

3. Затем создайте прямую таблицу с этой мерой:

   `=GetStateCounts([First Name],'', 'S','XS')`

4. В поле списка First name выберите значения Mark и Peter. В поле списка Last name выберите значение Carr.

5. Обратите внимание, что в прямой таблице показано значение 2. Это означает, что подсчитаны все выбранные значения, включая выбранное исключенное значение Peter.

## Пример 2: объединение количества исключенных, выбранных исключенных и альтернативных значений

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/ChartFunctions/FieldFunctions/getstatecounts.htm)

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

Обзор

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

Чтобы начать работу, добавьте приведенный ниже скрипт загрузки в свой документ.

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

```
Names:
LOAD * inline [
First name|Last name|Initials|Has cellphone
John|Anderson|JA|Yes
Sue|Brown|SB|Yes
Mark|Carr|MC|No
Peter|Devonshire|PD|No
Jane|Elliot|JE|Yes
Peter|Franc|PF|Yes ] (delimiter is '|');
```

Результаты

Выполните следующие действия.

1. Загрузите данные и создайте два списка на своем листе.

2. Добавьте First name в качестве измерения в первое поле списка. Добавьте Last name в качестве измерения во второе поле списка.

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

   `=GetStateCounts([First name], '', 'X', 'A', 'XS')`

4. В поле списка First name выберите значения John и Peter. В поле списка Last name выберите значение Franc.

5. Обратите внимание, что в прямой таблице показано значение 4. Это означает, что, помимо исключаемых значений, в расчет добавлено выбранное исключаемое значение John.

6. Измените прямую таблице и замените выражение на следующее:

   `=GetStateCounts([Last name], '', 'X', 'A', 'XS')`

7. Не меняя существующие выборки, выберите значение Anderson в Last name.

8. Обратите внимание, что в прямой таблице показано значение 4. Это означает, что, помимо исключаемых значений, в расчет добавлено альтернативное значение Devonshire.