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

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

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

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

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

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

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/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. Создайте два фильтра.

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

4. Затем создайте ключевой показатель эффективности на основе этой меры:

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

5. В фильтре First name выберите значения Mark и Peter. В фильтре Last name выберите значение Carr.

6. Обратите внимание, что ключевой показатель эффективности показывает значение 2. Это означает, что все выбранные значения, включая выбранное исключенное значение Peter, включены в это количество.

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/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. Создайте два фильтра.

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

4. Затем создайте ключевой показатель эффективности на основе этой меры:

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

5. В фильтре First name выберите значения John и Peter. В фильтре Last name выберите значение Franc.

6. Обратите внимание, что ключевой показатель эффективности имеет значение 4. Это показывает, что выбранное исключенное значение John включено в подсчет, в дополнение к количеству исключенных значений.

7. Отредактируйте ключевой показатель эффективности и замените существующую меру на следующую:

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

8. Оставив существующие выборки, выберите значение Anderson в фильтре Last name.

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