Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Визуальные вычисления в настоящее время находятся в предварительной версии.
Визуальное вычисление — это вычисление DAX, определенное и выполняемое непосредственно на визуальном элементе. Визуальные вычисления упрощают создание вычислений, которые ранее сложно создавать, что приводит к упрощению DAX, упрощению обслуживания и повышению производительности.
Вот пример визуального вычисления, определяющего нарастающую сумму для суммы продаж. Обратите внимание, что требуется DAX:
Running sum = RUNNINGSUM([Sales Amount])
Вычисление может ссылаться на любые типы данных в визуальном элементе, включая столбцы, метрики или другие визуальные вычисления. Эта возможность удаляет сложность семантической модели и упрощает процесс написания 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 принимает различные типы значений:
- Целые числа
- Ссылки на столбцы
- Специальные синонимы: HIGHESTPARENT, LOWESTPARENTNONE
В каждом случае он задает один уровень в визуальной иерархии вычислений (давайте называем его целевым уровнем). Однако способ интерпретации этого уровня в вычислении может отличаться. Поведение 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:
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, не поддерживаются.
- Хотя можно использовать параметры поля с визуальными вычислениями, они имеют некоторые ограничения.
- Отображение элементов без данных недоступно с визуальными вычислениями.
- Ограничения данных нельзя использовать с визуальными вычислениями.
- Вы не можете задать строку динамического формата для визуального вычисления и не использовать визуальное вычисление в качестве строки динамического формата для поля или меры.
Связанный контент
Дополнительные сведения об использовании визуальных вычислений см. в следующих ресурсах: