Поделиться через


Использование визуальных вычислений (предварительная версия)

Примечание.

Визуальные вычисления в настоящее время находятся в предварительной версии.

Визуальное вычисление — это вычисление DAX, определенное и выполняемое непосредственно на визуальном элементе. Визуальные вычисления упрощают создание вычислений, которые ранее сложно создавать, что приводит к упрощению DAX, упрощению обслуживания и повышению производительности.

Вот пример визуального вычисления, определяющего нарастающую сумму для суммы продаж. Обратите внимание, что требуется DAX:

Running sum = RUNNINGSUM([Sales Amount])

Снимок экрана: DAX для визуальных вычислений.

Вычисление может ссылаться на любые типы данных в визуальном элементе, включая столбцы, метрики или другие визуальные вычисления. Эта возможность удаляет сложность семантической модели и упрощает процесс написания DAX. Визуальные вычисления можно использовать для выполнения общих бизнес-вычислений, таких как суммы выполнения или скользящие средние значения.

Визуальные вычисления отличаются от других вариантов вычислений в DAX:

  • Визуальные вычисления не хранятся в модели, а вместо этого хранятся в визуальном элементе. Это означает, что визуальные вычисления могут ссылаться только на то, что находится на визуальном элементе. Все, что в модели должно быть добавлено в визуальный элемент, прежде чем визуальное вычисление может ссылаться на него, освобождая визуальные вычисления от заботы о сложности контекста фильтра и модели.

  • Визуальные вычисления объединяют простоту контекста вычисляемых столбцов с гибкостью вычисления по запросу, свойственной мерам.

  • По сравнению с мерами визуальные вычисления работают на агрегированных данных вместо уровня детализации, что часто приводит к повышению производительности. Если вычисление может быть достигнуто с помощью новой меры или визуального вычисления, последний часто приводит к повышению производительности.

  • Поскольку визуальные вычисления являются частью визуального элемента, они могут ссылаться на визуальную структуру, что приводит к большей гибкости.

Более подробное сравнение способов добавления вычислений в Power BI см. в разделе "Использование параметров вычислений в Power BI Desktop".

После включения визуальных вычислений можно:

  • Добавление визуальных вычислений в отчеты
  • Скрытие определенных полей
  • Быстрое создание визуальных вычислений с помощью шаблонов
  • Создание гибких визуальных вычислений путем ссылки на оси визуального элемента

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

Включение визуальных вычислений

До сентября 2024 года, чтобы использовать визуальные расчеты, необходимо включить их в параметры и настройки>предварительные функции>. Выберите визуальные вычисления и нажмите кнопку "ОК". Визуальные вычисления включены после перезапуска Power BI Desktop.

Начиная с сентября 2024 г. этот шаг больше не требуется, так как визуальные вычисления включены по умолчанию. Хотя они по-прежнему доступны в предварительной версии, можно использовать приведенные выше параметры, чтобы отключить визуальные вычисления при желании.

Добавление визуального вычисления

Чтобы добавить визуальное вычисление, выберите визуальный элемент и нажмите кнопку "Создать визуальное вычисление " на ленте:

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

Откроется окно визуальных вычислений в режиме редактирования . Экран режима редактирования состоит из трех основных разделов, как показано сверху вниз на следующем рисунке:

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

Снимок экрана: области редактирования визуальных вычислений.

Чтобы добавить визуальное вычисление, введите выражение в строке формул. Например, в визуальном элементе, который содержит сумму продаж и общую стоимость продукта по финансовому году, можно добавить визуальный расчет, который вычисляет прибыль за каждый год, введя следующее:

Profit = [Sales Amount] – [Total Product Cost]

Снимок экрана: ввод визуального вычисления.

По умолчанию большинство визуальных вычислений в визуальном элементе вычисляются по строкам, как вычисляемый столбец. В предыдущем примере для каждой строки визуальной матрицы вычитается текущая сумма продаж и общая стоимость продукта , а результат возвращается в столбце "Прибыль ". Хотя это возможно, нет необходимости добавлять такую функцию агрегирования, как SUM, как в случае меры. На самом деле, лучше не добавлять такие агрегаты, если они не нужны, чтобы можно было проще различать меры и визуальные выражения вычислений.

При добавлении визуальных вычислений они отображаются в списке полей визуального элемента:

Снимок экрана: визуальные вычисления, отображаемые в списке полей визуального элемента.

Кроме того, визуальное вычисление отображается на визуальном элементе:

Снимок экрана: визуальные вычисления, отображаемые на визуальном элементе.

В визуальных вычислениях можно использовать множество существующих функций DAX. Функции, относящиеся к визуальным вычислениям, также доступны. Поскольку визуальные вычисления работают в пределах визуальной матрицы, функции, основанные на отношениях модели, таких как USERELATIONSHIP, RELATED или RELATEDTABLE , нельзя использовать.

Скрытие полей из визуального элемента

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

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

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

Использование шаблонов

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

Снимок экрана: использование шаблонов для визуальных вычислений.

Вы также можете создать шаблонное визуальное вычисление на ленте, щелкнув в нижней части кнопки "Создать визуальное вычисление ".

Доступны следующие шаблоны:

  • Выполнение суммы. Вычисляет сумму значений, добавляя текущее значение к предыдущим значениям. Использует функцию RUNNINGSUM .
  • Скользящее среднее. Вычисляет среднее значение набора значений в заданном окне, разделив сумму значений по размеру окна. Использует функцию MOVINGAVERAGE .
  • Процент родительского элемента. Вычисляет процент значения относительно родительского значения. Использует функцию COLLAPSE .
  • Процент большого общего числа. Вычисляет процент значения относительно всех значений COLLAPSEALL с помощью функции.
  • Среднее число детей. Вычисляет среднее значение набора дочерних значений. Использует функцию EXPAND .
  • По сравнению с предыдущим. Сравнивает значение с предыдущим значением, используя функцию PREVIOUS .
  • Против следующего. Сравнивает значение с последующим значением с помощью NEXT функции.
  • Против первого. Сравнивает значение с первым значением, используя функцию FIRST.
  • По сравнению с последним. Сравнивает значение с последним значением, используя функцию LAST.
  • Найти значение в контексте. Найдите значение или оцените выражение в визуальной матрице в текущем контексте с помощью LOOKUP функции.
  • Поиск значения с итоговыми значениями. Найдите значение или оцените выражение в визуальной матрице с итогами с помощью LOOKUPWITHTOTALS функции.

При выборе шаблона вставляется шаблон в строку формул. Эти шаблоны можно использовать в качестве отправных точек. Вы также можете добавлять собственные выражения без использования шаблонов.

Средства выбора параметров

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

Снимок экрана: средство выбора параметров.

Вы также можете активировать средства выбора параметров с помощью сочетания клавиш CTRL+SPACE .

Axis

Многие функции имеют необязательный Axis параметр, который можно использовать только в визуальных вычислениях. Axis влияет на то, как визуальный расчет проходит по визуальной матрице. Параметр Axis по умолчанию установлен на первую ось в визуализации. Для многих визуальных элементов первая ось является ROWS, что означает, что визуальные данные вычисляются в визуальной матрице по строкам, сверху вниз. В следующей Axis таблице показаны допустимые значения параметра:

Axis икона Имя в Axis Описание
ROWS Вычисляет вертикально по строкам сверху вниз.
COLUMNS Вычисляет по горизонтали между столбцами слева направо.
ROWS COLUMNS Вычисляет по вертикали по строкам сверху вниз, продолжая столбец за столбцом слева направо.
COLUMNS ROWS Вычисляет по горизонтали между столбцами слева направо, переходя от строки к строке сверху вниз.

Примечание.

Если указать ось, которая отсутствует в визуализации, эта ось будет проигнорирована.

Reset

Многие функции имеют необязательный Reset параметр, доступный только в визуальных вычислениях. Reset влияет на то, если и когда функция сбрасывает значение до 0 или переключается на другую область при обходе визуальной матрицы. Это делается путем секционирования целевого столбца. Когда вычисления выполняются в пределах раздела, то, как столбец делится на разделы, определяет, сбрасываются ли вычисления. Параметр Reset имеет значение NONE по умолчанию, что означает, что визуальное вычисление никогда не перезапускается. Параметр Reset принимает различные типы значений:

В каждом случае он задает один уровень в визуальной иерархии вычислений (давайте называем его целевым уровнем). Однако способ интерпретации этого уровня в вычислении может отличаться. Поведение Reset работает в двух разных режимах: абсолютных и относительных.

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

Если указать ссылку на столбец, вы также работаете в абсолютном режиме. Эти значения определяют, как разделяется целевой столбец и, следовательно, будет ли он начинаться заново. Эти два режима описаны в следующем разделе:

Абсолютный режим

Этот режим указывает, что вычисление должно быть разделено по целевому столбцу и всем столбцам выше него, и это применяется на каждом уровне вычисления. На уровнях выше целевого объекта (где целевой столбец отсутствует и, возможно, другие), вычисление секционируется по оставшимся столбцам. Положительное целочисленное значение определяет целевой столбец, начиная с верхней части (верхний столбец равен 1, следующий — 2 и т. д.). Он превышает N (число столбцов в иерархии), а все более высокие значения обрезаются. Кроме того, можно также указать столбец напрямую.

Например, рассмотрим визуальный расчет с этими уровнями иерархии: Year, Quarter, Month и Day. В следующей таблице показано, как вычисление будет секционировано на каждом уровне в зависимости от значения Reset:

Уровень / значение Reset = 1 или год Reset = 2 или квартал Reset = 3 или месяц Reset = 4 или День
Уровень дня Год Квартал и год Месяц, квартал и год День, месяц, квартал и год
Месячный уровень Год Квартал и год Месяц, квартал и год Месяц, квартал и год
Четверть уровня Год Квартал и год Квартал и год Квартал и год
Уровень года Год Год Год Год
Общий итоговый уровень Отсутствует Отсутствует Отсутствует Отсутствует

Относительный режим

Учитывая отрицательное целочисленное значение –X, на каждом уровне вычисления оно разбивается на секции с учётом всех столбцов, находящихся на X уровней или более выше в иерархии (или вовсе не разбивается, если таких уровней не существует). Допустимые значения для этого режима находятся между -1 и -N+1 (где N является числом столбцов в иерархии), а все более низкие значения обрезаются. Опять же, рассмотрим визуальный расчет, описанный ранее. В таблице ниже показано, как вычисление будет секционировано на каждом уровне в зависимости от значения сброса:

Уровень / значение Reset = -1 Reset = -2 Reset = -3
Уровень дня Месяц, квартал и год Квартал и год Год
Месячный уровень Квартал и год Год Отсутствует
Четверть уровня Год Отсутствует Отсутствует
Уровень года Отсутствует Отсутствует Отсутствует
Общий итоговый уровень Отсутствует Отсутствует Отсутствует

Синонимы

Reset также предоставляет следующие синонимы:

  • По умолчанию устанавливается значение NONE. Он не сбрасывает вычисление и эквивалентно 0.
  • HIGHESTPARENT выполняет полный сброс на самом высоком уровне и эквивалентен 1.
  • LOWESTPARENT выполняет относительный сброс относительно непосредственного родителя и эквивалентен значению -1.

Примеры использования Reset

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

RUNNINGSUM([Sales Amount], HIGHESTPARENT)
RUNNINGSUM([Sales Amount], 1)
RUNNINGSUM([Sales Amount], [Year])

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

RUNNINGSUM([Sales Amount], LOWESTPARENT)
RUNNINGSUM([Sales Amount], -1)

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

RUNNINGSUM([Sales Amount])

Axis Reset и ORDERBY PARTITIONBY

Axis, Reset, ORDERBYи PARTITIONBY — это четыре функции, которые можно использовать в парах или вместе для влияния на оценку вычисления. Они образуют две пары, которые часто используются вместе:

  • Axis и Reset.
  • ORDERBY и PARTITIONBY

Axis и Reset доступны только для функций, которые могут использоваться в визуальных вычислениях и могут использоваться только в визуальном вычислении, так как они ссылаются на визуальную структуру. ORDERBY и PARTITIONBY — это функции, которые можно использовать в вычисляемых столбцах, метриках и визуальных вычислениях и которые ссылаются на поля. Хотя они выполняют ту же функцию, они отличаются на уровне абстракции, предоставленной; ссылка на визуальную структуру является более гибкой, чем явная ссылка на поля с помощью ORDERBY или PARTITIONBY.

Сброс ожидает, что на оси будет несколько уровней. Если на оси нет нескольких уровней, то есть только одно поле или несколько полей на одной оси, можно использовать PARTITIONBY.

Указание любой пары хорошо работает, но можно также указать Axisи ORDERBY (или) PARTITIONBY вместе, в этом случае значения, указанные для ORDERBY и PARTITIONBY, переопределяют значения, заданные Axisдля . Reset Не удается объединить с ORDERBY PARTITIONBY.

Вы можете думать о паре ORDERBY PARTITIONBY как закрепление полей вниз, явно указывая поля, где Ось и сброс являются неуклюжими — они ссылаются на структуру и любое поле, которое происходит в структуре, которая получается использовать.

Доступные функции

В визуальных вычислениях можно использовать многие существующие функции DAX. Поскольку визуальные вычисления работают в пределах визуальной матрицы, функции, основанные на отношениях модели, таких как USERELATIONSHIP, RELATED или RELATEDTABLE , недоступны.

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

Функция Описание Пример Ярлык
COLLAPSE Вычисление вычисляется на более высоком уровне оси. Процент родительского объекта = DIVIDE([Объем продаж], COLLAPSE([Объем продаж], ROWS)) Н/П
COLLAPSEALL Вычисление вычисляется на общем уровне оси. Процент общего объема = DIVIDE([Объем продаж], COLLAPSEALL([Сумма продаж], ROWS)) Н/П
EXPAND Вычисление вычисляется на более низком уровне оси. Среднее число детей = EXPAND(AVERAGE([Объем продаж]), ROWS) Н/П
EXPANDALL Вычисление вычисляется на конечном уровне оси. Среднее значение конечного уровня = EXPANDALL(AVERAGE([Объем продаж]), ROWS) Н/П
FIRST Ссылается на первую строку оси. ProfitVSFirst = [Прибыль] — FIRST([прибыль]) INDEX(1)
ISATLEVEL Сообщает, присутствует ли указанный столбец на текущем уровне. IsFiscalYearAtLevel = ISATLEVEL([финансовый год]) Н/П
LAST Ссылается на последнюю строку оси. ProfitVSLast = [Прибыль] — LAST([прибыль]) INDEX(-1)
LOOKUP Оцените выражение в визуальной матрице с помощью текущего контекста. LookupSalesFor2025WithContext = LOOKUP(SUM([Продажи]) [Год], "2025") Н/П
LOOKUPWITHTOTALS Оцените выражение в визуальной матрице с общими итогами. LookupSalesFor2025WithTotals = LOOKUPWITHTOTALS(SUM([Продажи]), [Год], "2025") Н/П
MOVINGAVERAGE Добавляет скользящее среднее значение на оси. MovingAverageSales = MOVINGAVERAGE([Объем продаж], 2) WINDOW
NEXT Относится к следующему ряду оси. ProfitVSNext = [прибыль] — NEXT([прибыль]) OFFSET(1)
PREVIOUS Ссылается на предыдущий ряд оси. ProfitVSPrevious = [Прибыль] — PREVIOUS([прибыль]) OFFSET(-1)
RANGE Относится к срезу строк вдоль оси. AverageSales = AVERAGEX((RANGE1), [Объем продаж]) WINDOW
RUNNINGSUM Добавляет беговую сумму на оси. RunningSumSales = RUNNINGSUM([Объем продаж]) WINDOW

Форматирование визуальных вычислений

Вы можете отформатировать визуальное вычисление с помощью типов данных и параметров форматирования. Можно также задать строку формата пользовательского визуального уровня. Используйте параметры формата данных в разделе "Общие" области форматирования для визуального элемента, чтобы задать формат:

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

Пример 1. Использование визуального вычисления для возврата шестнадцатеричного цветового кода для условного форматирования

Шаг 1. Выберите визуальный элемент, в который вы хотите использовать условное форматирование:

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

Шаг 2. Нажмите кнопку "Создать визуальное вычисление " на вкладке "Главная" :

Снимок экрана: кнопка для создания визуального вычисления на вкладке

Шаг 3. Написание визуального вычисления. Ниже приведен оператор IF, возвращающий зеленый или красный цвет на основе меры, превышающей 0.5:

Снимок экрана: код DAX, указанный в визуальном редакторе вычислений.

Conditional Hex Code = IF ( [Progress] > .5, "#5BA300", "#E91C1C" )

Шаг 4. Разверните область форматирования и выберите "Свойства":

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

Шаг 5. Разверните раздел «Формат данных», выберите визуальное вычисление и установите тип данных и формат в текст:

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

Шаг 6. Прежде чем выйти из редактора визуального вычисления, выберите значок скрытия рядом с визуальным вычислением в разделе сборки, чтобы скрыть его:

Снимок экрана: панель сборки, показывающая, как выбрать кнопку, чтобы скрыть создаваемое визуальное вычисление.

Шаг 7. Используйте его в разделе условного форматирования:

Снимок экрана: окно условного форматирования, в котором выбран визуальный расчет.

Шаг 8. Выход из редактора визуальных вычислений, нажав кнопку "Назад" к отчету :

Скриншот кнопки, которую нужно нажать, чтобы выйти из редактора визуальных вычислений. Текст: Вернуться к отчету.

Шаг 9. Наслаждайтесь условным форматированием визуализации!

Снимок экрана таблицы с первого снимка экрана теперь с примененным условным форматированием.

Рекомендации и ограничения

Визуальные вычисления в настоящее время находятся в предварительной версии и во время предварительной версии следует учитывать следующие рекомендации и ограничения.

  • Не все типы визуальных элементов поддерживаются. Используйте режим редактирования визуальных вычислений для изменения типа визуального элемента. Кроме того, пользовательские визуальные элементы не были протестированы с помощью визуальных вычислений или скрытых полей.
  • Были проверены следующие типы визуальных элементов и визуальные свойства, которые не работают с визуальными вычислениями или скрытыми полями:
    • Срез
    • Визуальный элемент R
    • Визуальный элемент Python
    • Ключевые факторы влияния
    • Дерево декомпозиции
    • Вопросы и ответы
    • Интеллектуальное повествование
    • Метрики
    • Отчет с разбивкой на страницы
    • Power Apps (Приложения Power)
    • Power Automate (платформа автоматизации рабочих процессов)
    • Маленькие диаграммы
    • Ось воспроизведения на точечной диаграмме
  • Производительность этой функции не является представителем конечного продукта.
  • Повторное использование визуальных вычислений с помощью копирования и вставки или других механизмов недоступно.
  • Вы не можете фильтровать визуальные вычисления.
  • Визуальное вычисление не может ссылаться на себя на одном или другом уровне детализации.
  • Персонализация визуальных вычислений или скрытых полей недоступна.
  • Вы не можете закрепить визуальный элемент, использующий визуальные вычисления или скрытые поля на панели мониторинга.
  • Вы не можете использовать функцию публикации в интернете с отчетами, используюющими визуальные вычисления или скрытые поля.
  • При экспорте данных из визуальных элементов результаты визуального вычисления не включаются в базовый экспорт данных . Скрытые поля никогда не включаются в экспорт, за исключением экспорта базовых данных.
  • Вы не можете использовать функции детализации записей с визуальными элементами, которые используют визуальные вычисления или скрытые поля.
  • Вы не можете задать категории данных для визуальных вычислений.
  • Вы не можете изменять агрегации в визуальных вычислениях.
  • Порядок сортировки для визуальных вычислений изменить нельзя.
  • Power BI Embedded не поддерживается для отчетов, использующих визуальные вычисления или скрытые поля.
  • Подключения в режиме реального времени к версиям SQL Server Analysis Services, выпущенным до версии 2025, не поддерживаются.
  • Хотя можно использовать параметры поля с визуальными вычислениями, они имеют некоторые ограничения.
  • Отображение элементов без данных недоступно с визуальными вычислениями.
  • Ограничения данных нельзя использовать с визуальными вычислениями.
  • Вы не можете задать строку динамического формата для визуального вычисления и не использовать визуальное вычисление в качестве строки динамического формата для поля или меры.

Дополнительные сведения об использовании визуальных вычислений см. в следующих ресурсах: