В сегодняшней статье мы поговорим о некоторых возможностях анализа данных при помощи функций SumIf() и CountIf() в дашбордах. Эти функции предоставляют возможность суммировать значения полей данных или подсчитать количество значений по условию. В этой статье мы рассмотрим применение функций в элементе Таблица, но они также могут использоваться и в других элементах дашборда, где осуществляется анализ данных. И прежде, чем перейдем к детальному рассмотрению, немного вспомним, как обрабатываются значения полей данных в дашбордах.

Анализ данных в дашбордах

Когда в элемент, в данном случае в Таблицу, добавляется колонка данных, то к значениям может применяться функция. По умолчанию, для числовых значений применяется функция суммирования, для нечисловых – функция подсчета количества значений. Речь здесь идет о полях типа Показатель (Measure). К полям типа Измерение (Dimension) функции по умолчанию не применяются. Более того, значения поля Показатель группируются по значениям поля типа Измерение. Другими словами, если список категорий – это поле Измерение, а список продуктов – Показатель, то продукты будут сгруппированы по категориям. И уже к полю со списком продуктов будет применяться одна из функций Sum, Count, Min, Max, Avg или другая. Так вот, функции SumIf() и CountIf() предоставляют возможность группировать только те значения, которые соответствуют условию.Важно!

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

Анализ по условию

Условие, по которому значение будет учитываться, передается в функции SumIf() и CountIf() вторым аргументом. Если условие выполняется, значение будет суммироваться, или эта строка данных будет учитываться в общем количестве строк. Если же условие неверное, то значение игнорируется. Приведем несколько примеров анализа по условию.

  • Допустим, в элементе Таблица одно поле данных с наименованием продуктов, по которому подсчитывается количество продуктов. Другими словами, к значениям применяется функция Count().

    В этом случае можно отфильтровать данные при помощи функции CountIf(), передав условие вторым аргументом: CountIf(Products.ProductName, Products.CategoryID == 1).

    Тогда в результате вычисления количества, будут учитываться только те продукты, которые относятся к категории с ID равным 1.

  • В элементе Таблица содержится список континентов и численность их населения. Причем значения в колонке населения обработано при помощи функции Sum(). Допустим, при суммировании населения Европы не следует учитывать население United Kingdom.

    Тогда, для колонки населения применим функцию SumIf(), передав условие, вторым аргументом - SumIf(Statistics.Population, Statistics.Country != "United Kingdom").

    В результате, значения из колонки населения, у которых Country не равно United Kingdom, будут просуммированы.


Ниже представлен пример дашборда с использованием функций SumIf() и CountIf(). В этом примере условием является значение переменной - континент, т.е. обрабатываются значения только для выбранного континента. В элементе Таблица для сравнения продублированы колонки с функциями суммирования и суммирования по условию. Различие можно увидеть в итогах таблицы.


Таким вот способом можно фильтровать данные в элементах дашборда. Следует отметить, что фильтрация с помощью функций распространяется только на определенное поле данных. В то же время, фильтр элемента или фильтр в преобразовании данных элемента распространяются на все поля этого элемента.
Используя этот сайт, вы соглашаетесь на использование файлов Cookie для аналитики и персонализированного контента. Файлы Cookie хранят полезную информацию на вашем компьютере, чтобы помочь нам повысить эффективность и удобство использования. Для получения дополнительной информации, пожалуйста, прочтите Конфиденциальность и Использование Cookie.