Группы вычисления

Применимо к: SQL Server 2019 и более поздних версий Analysis Services Azure Analysis Services Fabric/Power BI Premium

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

Преимущества

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

Давайте сначала рассмотрим, как группы вычислений отображаются для пользователей в средстве создания отчетов, например Power BI. Затем мы рассмотрим, что составляет группу вычислений и как они создаются в модели.

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

В следующей анимации пользователь анализирует данные о продажах за 2012 и 2013 годы. Перед применением группы вычислений общая базовая мера Sales вычисляет сумму общих продаж за каждый месяц. Затем пользователь хочет применить вычисления аналитики времени, чтобы получить итоги продаж за месяц к дате, за квартал, за год и т. д. Без групп вычислений пользователю придется выбирать отдельные меры аналитики времени.

При использовании группы вычислений, в этом примере с именем Time Intelligence, когда пользователь перетаскивает элемент Вычисления времени в область фильтра Столбцы , каждый элемент вычисления отображается в виде отдельного столбца. Значения для каждой строки вычисляются на основе базовой меры Sales.

Группа вычислений, применяемая в Power BI

Группы вычислений работают с явными мерами DAX. В этом примере Sales — это явная мера, уже созданная в модели. Группы вычислений не работают с неявными мерами DAX. Например, в Power BI неявные меры создаются, когда пользователь перетаскивает столбцы в визуальные элементы для просмотра агрегированных значений без создания явной меры. В настоящее время Power BI создает DAX для неявных мер, записанных в виде встроенных вычислений DAX. Это означает, что неявные меры не могут работать с группами вычислений. Появилось новое свойство модели, видимое в табличной объектной модели (TOM), DiscourageImplicitMeasures. В настоящее время для создания групп вычислений этому свойству необходимо присвоить значение true. Если задано значение true, Power BI Desktop в режиме Live Connect отключает создание неявных мер.

Группы вычислений также поддерживают запросы многомерных выражений данных . Это означает, что пользователи Microsoft Excel, которые запрашивают табличные модели данных с помощью многомерных выражений, могут в полной мере использовать группы вычислений в сводных таблицах и диаграммах листа.

Принцип работы

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

Прежде чем перейти к подробным сведениям, давайте представим некоторые новые функции DAX специально для групп вычислений:

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

SELECTEDMEASURENAME — используется выражениями для элементов вычисления для определения меры, которая находится в контексте по имени.

ISSELECTEDMEASURE — используется выражениями для элементов вычисления для определения меры, которая находится в контексте, указана в списке мер.

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

Пример аналитики времени

Имя таблицы — Аналитика времени
Имя столбца — вычисление времени
Приоритет — 20

Элементы вычислений аналитики времени

Current

SELECTEDMEASURE()

MTD

CALCULATE(SELECTEDMEASURE(), DATESMTD(DimDate[Date]))

QTD

CALCULATE(SELECTEDMEASURE(), DATESQTD(DimDate[Date]))

YTD

CALCULATE(SELECTEDMEASURE(), DATESYTD(DimDate[Date]))

PY

CALCULATE(SELECTEDMEASURE(), SAMEPERIODLASTYEAR(DimDate[Date]))

PY MTD

CALCULATE(
    SELECTEDMEASURE(),
    SAMEPERIODLASTYEAR(DimDate[Date]),
    'Time Intelligence'[Time Calculation] = "MTD"
)

PY QTD

CALCULATE(
    SELECTEDMEASURE(),
    SAMEPERIODLASTYEAR(DimDate[Date]),
    'Time Intelligence'[Time Calculation] = "QTD"
)

PY YTD

CALCULATE(
    SELECTEDMEASURE(),
    SAMEPERIODLASTYEAR(DimDate[Date]),
    'Time Intelligence'[Time Calculation] = "YTD"
)

Годовом исчислении

SELECTEDMEASURE() -
CALCULATE(
    SELECTEDMEASURE(),
    'Time Intelligence'[Time Calculation] = "PY"
)

Г/г%

DIVIDE(
    CALCULATE(
        SELECTEDMEASURE(),
        'Time Intelligence'[Time Calculation]="YOY"
    ),
    CALCULATE(
        SELECTEDMEASURE(),
        'Time Intelligence'[Time Calculation]="PY"
    )
)

Чтобы протестировать эту группу вычислений, выполните запрос DAX в SSMS или DAX Studio с открытым кодом. Примечание. В этом примере запроса опущены yoy и yoy%.

Запрос аналитики времени

EVALUATE
CALCULATETABLE (
    SUMMARIZECOLUMNS (
        DimDate[CalendarYear],
        DimDate[EnglishMonthName],
        "Current", CALCULATE ( [Sales], 'Time Intelligence'[Time Calculation] = "Current" ),
        "QTD",     CALCULATE ( [Sales], 'Time Intelligence'[Time Calculation] = "QTD" ),
        "YTD",     CALCULATE ( [Sales], 'Time Intelligence'[Time Calculation] = "YTD" ),
        "PY",      CALCULATE ( [Sales], 'Time Intelligence'[Time Calculation] = "PY" ),
        "PY QTD",  CALCULATE ( [Sales], 'Time Intelligence'[Time Calculation] = "PY QTD" ),
        "PY YTD",  CALCULATE ( [Sales], 'Time Intelligence'[Time Calculation] = "PY YTD" )
    ),
    DimDate[CalendarYear] IN { 2012, 2013 }
)

Возврат запроса аналитики времени

В возвращаемой таблице показаны вычисления для каждого примененного элемента вычисления. Например, см. QTD за март 2012 г. — это сумма января, февраля и марта 2012 г.

Возврат запроса аналитики времени

Строки динамического формата

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

Табличные модели поддерживают динамическое форматирование мер с помощью функции ФОРМАТ DAX. Однако функция FORMAT имеет недостаток возврата строки, заставляя возвращать меры, которые в противном случае были бы числовыми, также возвращались в виде строки. Это может иметь некоторые ограничения, например не работать с большинством визуальных элементов Power BI в зависимости от числовых значений, таких как диаграммы.

В Power BI строки динамического форматирования для мер также позволяют условно применять строки форматирования к определенной мере без принудительного возврата строки и без использования групп вычислений. Дополнительные сведения см. в статье Строки динамического формата для мер.

Строки динамического формата для аналитики времени

Если мы рассмотрим приведенный выше пример аналитики времени, все элементы вычислений, кроме yoy% должны использовать формат текущей меры в контексте. Например, значение YTD , вычисленное на основе базовой меры Sales, должно быть валютой. Если бы это была группа вычислений для чего-то вроде базовой меры Orders, формат был бы числовым. Тем не менее, yoy% должно быть процентом независимо от формата базовой меры.

Для YOY%можно переопределить строку формата, задав для свойства выражения строки формата значение 0,00%;-0,00%; 0,00%. Дополнительные сведения о свойствах выражения строки формата см. в разделе Свойства ячейки многомерных выражений — содержимое СТРОКИ ФОРМАТА.

В этом визуальном элементе матрицы в Power BI вы увидите Sales Current/YOY и Orders Current/YOY (Продажи текущий/yoy) и Orders Current/YOY (Заказы текущего/yoy) сохраняют соответствующие строки формата базовой меры. Однако sales YOY% и Orders YOY% переопределяет строку формата для использования процентного формата.

Аналитика времени в визуальном элементе матрицы

Строки динамического формата для конвертации валют

Строки динамического формата обеспечивают простое преобразование валют. Рассмотрим следующую модель данных Adventure Works. Он смоделирован для преобразования валюты "один ко многим ", как определено в типах преобразования.

Курс валюты в табличной модели

Столбец FormatString добавляется в таблицу DimCurrency и заполняется строками форматирования для соответствующих валют.

Формат строкового столбца

В этом примере следующая группа вычислений определяется как :

Пример преобразования валюты

Имя таблицы — конвертация валюты
Имя столбца — вычисление преобразования
Очередность — 5

Элементы вычислений для конвертации валют

Без преобразования

SELECTEDMEASURE()

Преобразованная валюта

IF(
    //Check one currency in context & not US Dollar, which is the pivot currency:
    SELECTEDVALUE( DimCurrency[CurrencyName], "US Dollar" ) = "US Dollar",
    SELECTEDMEASURE(),
    SUMX(
        VALUES(DimDate[Date]),
        CALCULATE( DIVIDE( SELECTEDMEASURE(), MAX(FactCurrencyRate[EndOfDayRate]) ) )
    )
)

Выражение строки формата

SELECTEDVALUE(
    DimCurrency[FormatString],
    SELECTEDMEASUREFORMATSTRING()
)

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

Следующая анимация показывает динамическое преобразование валюты в формате меры Sales в отчете.

Применена строка динамического формата конвертации валюты

Приоритет

Приоритет — это свойство, определенное для группы вычислений. Он задает порядок объединения групп вычислений с базовой мерой при использовании SELECTEDMEASURE() в элементе вычисления.

Пример приоритета

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

'Measure group'[Measure] = 10

Первая группа вычислений — , 'Calc Group 1 (Precedence 100)' а элемент вычисления — 'Calc item (Plus 2)':

'Calc Group 1 (Precedence 100)'[Calc item (Plus 2)] = SELECTEDMEASURE() + 2

Вторая группа вычислений — , 'Calc Group 2 (Precedence 200)' а элемент вычисления — 'Calc item (Times 2)':

'Calc Group 2 (Precedence 200)'[Calc item (Times 2)] = SELECTEDMEASURE() * 2

Вы видите, что группа вычислений 1 имеет приоритет 100, а группа вычислений 2 имеет приоритет 200.

С помощью SQL Server Management Studio (SSMS) или внешнего средства с функциями чтения и записи XMLA, например табличного редактора с открытым кодом, можно использовать скрипты XMLA для создания групп вычислений и задания значений приоритета. Здесь мы добавим "Calc group 1 (Precedence 100)":

{
  "createOrReplace": {
    "object": {
      "database": "CHANGE TO YOUR DATASET NAME",
      "table": "Calc group 1 (Precedence 100)"
    },
    "table": {
      "name": "Calc group 1 (Precedence 100)",
      "calculationGroup": {
        "precedence": 100,
        "calculationItems": [
          {
            "name": "Calc item (Plus 2)",
            "expression": "SELECTEDMEASURE() + 2",
          }
        ]
      },
      "columns": [
        {
          "name": "Calc group 1 (Precedence 100)",
          "dataType": "string",
          "sourceColumn": "Name",
          "sortByColumn": "Ordinal",
          "summarizeBy": "none",
          "annotations": [
            {
              "name": "SummarizationSetBy",
              "value": "Automatic"
            }
          ]
        },
        {
          "name": "Ordinal",
          "dataType": "int64",
          "isHidden": true,
          "sourceColumn": "Ordinal",
          "summarizeBy": "sum",
          "annotations": [
            {
              "name": "SummarizationSetBy",
              "value": "Automatic"
            }
          ]
        }
      ],
      "partitions": [
        {
          "name": "Partition",
          "mode": "import",
          "source": {
            "type": "calculationGroup"
          }
        }
      ]
    }
  }
}

И этот скрипт добавляет "Calc group 2 (Precedence 200)":

{
  "createOrReplace": {
    "object": {
      "database": "CHANGE TO YOUR DATASET NAME",
      "table": "Calc group 2 (Precedence 200)"
    },
    "table": {
      "name": "Calc group 2 (Precedence 200)",
      "calculationGroup": {
        "precedence": 200,
        "calculationItems": [
          {
            "name": "Calc item (Times 2)",
            "expression": "SELECTEDMEASURE() * 2"
          }
        ]
      },
      "columns": [
        {
          "name": "Calc group 2 (Precedence 200)",
          "dataType": "string",
          "sourceColumn": "Name",
          "sortByColumn": "Ordinal",
          "summarizeBy": "none",
          "annotations": [
            {
              "name": "SummarizationSetBy",
              "value": "Automatic"
            }
          ]
        },
        {
          "name": "Ordinal",
          "dataType": "int64",
          "isHidden": true,
          "sourceColumn": "Ordinal",
          "summarizeBy": "sum",
          "annotations": [
            {
              "name": "SummarizationSetBy",
              "value": "Automatic"
            }
          ]
        }
      ],
      "partitions": [
        {
          "name": "Partition",
          "mode": "import",
          "source": {
            "type": "calculationGroup"
          }
        }
      ]
    }
  }
}

В Power BI Desktop у нас есть визуальный элемент карта, показывающий меру и срез для каждой группы вычислений в представлении отчета:

Отдельные выражения группы мер.

При выборе обоих срезов необходимо объединить выражения DAX. Для этого мы начнем с элемента вычисления с наивысшим приоритетом 200, а затем заменим аргумент SELECTEDMEASURE() следующим самым высоким значением, 100.

Таким образом, выражение DAX элемента вычисления с наивысшим приоритетом:

SELECTEDMEASURE() * 2 

Вторым выражением DAX элемента вычисления приоритета является:

SELECTEDMEASURE() + 2 

Теперь они объединяются путем замены части SELECTEDMEASURE() элемента вычисления с наивысшим приоритетом следующим элементом вычисления с наивысшим приоритетом, как показано ниже:

( SELECTEDMEASURE() + 2 ) * 2

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

( ( [Measure] ) + 2 ) * 2

Как и в нашем Measure = 10, это то же самое, что и:

( ( 10 ) + 2 ) * 2

Если аргументы SELECTEDMEASURE() отсутствуют, вычисляется объединенное выражение DAX:

( ( 10 ) + 2 ) * 2 = 24

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

Объединенные выражения группы мер.

Но имейте в виду, что сочетание вложено таким образом, что выходные данные не будут 10 + 2 * 2 = 14, как вы видите здесь:

Вложенные выражения группы мер.

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

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

Пример приоритета со средними значениями

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

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

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

Наши предположения:

Имя таблицы — Averages.
Имя столбца — Среднее вычисление.
Приоритет равен 10.

Элементы вычисления для средних значений

Нет среднего

SELECTEDMEASURE()

Сутки

DIVIDE(SELECTEDMEASURE(), COUNTROWS(DimDate))

Ниже приведен пример запроса DAX и возвращаемой таблицы.

Запрос со средними значениями

EVALUATE
    CALCULATETABLE (
        SUMMARIZECOLUMNS (
        DimDate[CalendarYear],
        DimDate[EnglishMonthName],
        "Sales", CALCULATE (
            [Sales],
            'Time Intelligence'[Time Calculation] = "Current",
            'Averages'[Average Calculation] = "No Average"
        ),
        "YTD", CALCULATE (
            [Sales],
            'Time Intelligence'[Time Calculation] = "YTD",
            'Averages'[Average Calculation] = "No Average"
        ),
        "Daily Average", CALCULATE (
            [Sales],
            'Time Intelligence'[Time Calculation] = "Current",
            'Averages'[Average Calculation] = "Daily Average"
        ),
        "YTD Daily Average", CALCULATE (
            [Sales],
            'Time Intelligence'[Time Calculation] = "YTD",
            'Averages'[Average Calculation] = "Daily Average"
        )
    ),
    DimDate[CalendarYear] = 2012
)

Среднее значение возвращаемого запроса

Среднее значение возвращаемого запроса

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

Имя столбца Вычисление
YTD Сумма продаж за январь, февраль, март 2012 г.
= 495 364 + 506 994 + 373 483
Сутки Продажи за март 2012 г., разделенные на число дней в марте
= 373 483 / 31
Среднее ежедневное значение по годам YTD за март 2012 г., разделенный на число дней в январе, феврале и марте
= 1 375 841 / (31 + 29 + 31)

Ниже приведено определение элемента вычисления YTD, применяемого с приоритетом 20.

CALCULATE(SELECTEDMEASURE(), DATESYTD(DimDate[Date]))

Ниже приведено среднее значение дня, применяемое с приоритетом 10.

DIVIDE(SELECTEDMEASURE(), COUNTROWS(DimDate))

Так как приоритет группы вычислений аналитики времени выше приоритета группы вычислений "Средние", она применяется как можно более широко. Вычисление YTD Дневное среднее применяется к числителю и знаменателю (количеству дней) дневного среднего вычисления.

Это эквивалентно следующему выражению:

CALCULATE(DIVIDE(SELECTEDMEASURE(), COUNTROWS(DimDate)), DATESYTD(DimDate[Date]))

Не это выражение:

DIVIDE(CALCULATE(SELECTEDMEASURE(), DATESYTD(DimDate[Date])), COUNTROWS(DimDate)))

Рекурсия в сторону

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

DIVIDE(
    CALCULATE(
        SELECTEDMEASURE(),
        'Time Intelligence'[Time Calculation]="YOY"
    ),
    CALCULATE(
        SELECTEDMEASURE(),
        'Time Intelligence'[Time Calculation]="PY"
    )
)

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

Один элемент вычисления в контексте фильтра

В нашем примере аналитики времени элемент вычисления PY YTD имеет одно вычисляемое выражение:

CALCULATE(
    SELECTEDMEASURE(),
    SAMEPERIODLASTYEAR(DimDate[Date]),
    'Time Intelligence'[Time Calculation] = "YTD"
)

Аргумент YTD для функции CALCULATE() переопределяет контекст фильтра для повторного использования логики, уже определенной в элементе вычисления YTD. Невозможно применить как PY, так и YTD в одной оценке. Группы вычислений применяются, только если один элемент вычисления из группы вычислений находится в контексте фильтра.

Упорядочение

По умолчанию, когда столбец из группы вычислений помещается в отчет, элементы вычисления упорядочены по имени в алфавитном порядке. Порядок отображения элементов вычисления в отчете можно изменить, указав порядковое свойство. Указание порядка элементов вычисления с помощью свойства Ordinal не изменяет приоритет, порядок, в котором вычисляются элементы вычисления. Он также не изменяет порядок отображения элементов вычислений в Обозреватель табличной модели.

Чтобы указать порядковый номер для элементов вычисления, необходимо добавить второй столбец в группу вычислений. В отличие от столбца по умолчанию, в котором типом данных является Text, второй столбец, используемый для упорядочивания элементов вычисления, имеет тип данных Whole Number. Единственная цель этого столбца — указать числовой порядок, в котором отображаются элементы вычисления в группе вычислений. Так как этот столбец не содержит значения в отчете, рекомендуется задать для свойства Hidden значение True.

Столбец для упорядочения

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

Свойство Ordinal

Дополнительные сведения см. в статье Порядок элементов вычислений.

Создание группы вычислений

Группы вычислений поддерживаются в Visual Studio с помощью VSIX версии 2.9.2 и более поздних версий проектов служб Analysis Services. Группы вычислений также можно создать с помощью языка сценариев табличных моделей (TMSL) или открытый код табличного редактора.

Создание группы вычислений с помощью Visual Studio

  1. В Обозреватель табличной модели щелкните правой кнопкой мыши пункт Группы вычислений и выберите пункт Создать группу вычислений. По умолчанию новая группа вычислений содержит один столбец и один элемент вычисления.

  2. Используйте свойства , чтобы изменить имя и ввести описание для группы вычислений, столбца и элемента вычисления по умолчанию.

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

  4. Чтобы добавить дополнительные элементы вычислений, щелкните правой кнопкой мыши Элемент вычисления и выберите пункт Создать элемент вычисления.

Порядок элементов вычислений

  1. В Обозреватель табличной модели щелкните правой кнопкой мыши группу вычислений и выберите команду Добавить столбец.

  2. Присвойте столбцу имя Ordinal (или что-то подобное), введите описание, а затем задайте для свойства Hidden значение True.

  3. Для каждого элемента вычисления, который требуется упорядочить, задайте для свойства Ordinal положительное число. Каждое число является последовательным, например, первым появляется элемент вычисления со свойством Ordinal 1, вторым — свойство 2 и т. д. Элементы вычислений с значением по умолчанию -1 не включаются в порядок, но отображаются перед упорядоченными элементами в отчете.

Ограничения

Безопасность на уровне объектов (OLS), определенная в таблицах групп вычислений, не поддерживается. Однако OLS можно определить в других таблицах в той же модели. Если элемент вычисления ссылается на защищенный объект OLS, возвращается общая ошибка.

Безопасность на уровне строк (RLS) не поддерживается. Определите RLS в таблицах в той же модели, но не в самих группах вычислений (прямо или косвенно).

Группы вычислений не поддерживают Выражения строк детализации.

визуальный элемент с автоописанием визуальные элементы в Power BI не поддерживаются с группами вычислений.

Неявные агрегаты столбцов в Power BI не поддерживаются для моделей с группами вычислений. В настоящее время, если свойство DiscourageImplicitMeasures имеет значение false (по умолчанию), отображаются параметры агрегирования, но они не могут быть применены. Если параметру DiscourageImplicitMeasures присвоено значение true, параметры агрегирования не отображаются.

При создании отчетов Power BI с помощью LiveConnection строки динамического формата не применяются к мерам уровня отчета.

См. также раздел

DAX в табличных моделях
Справочник по DAX