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


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

ОБЛАСТЬ ПРИМЕНЕНИЯ: Служба Power BI Power BI Desktop

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

Примечание.

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

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

Строки динамического формата также можно использовать с группами вычислений. Те же шаблоны DAX, которые работают с группами вычислений, также можно использовать в строках динамического формата для мер, но область ограничена отдельными мерами вместо всех мер в модели. Дополнительные сведения см. в разделе "Группы вычислений" — строки динамического формата.

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

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

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

  2. В разделе >"Форматирование форматирования" ленты> "Средства мер" выберите "Формат динамического". В левой части строки формул DAX отображается новая папка со списком с выбранным форматом . В этом раскрывающемся списке можно переключаться между выражением DAX статической меры и выражением динамического формата DAX. Независимо от того, какая строка статического формата используется перед переключением на Dynamic, предварительно заполнена как строка в строке формул DAX.

    Снимок экрана: раскрывающийся список

  3. Перезаписать строку с выражением DAX, которое выводит правильную строку форматирования для меры. Например, следующее выражение ищет строку формата валюты, которую мы хотим получить из таблицы "Строки формата валюты страны":

    Снимок экрана: выражение меры динамического формата.

  4. Убедитесь, что строка динамического формата работает в визуальном элементе.

    Чтобы удалить строку динамического формата и вернуться к использованию статической строки форматирования, в списке "Формат форматирования>" выберите другой параметр формата. Так как в этом действии нет отмены, появится диалоговое окно с просьбой продолжить. Если вы хотите вернуться к использованию строки динамического формата еще раз, необходимо повторно ввести выражение DAX.

    Снимок экрана: предупреждение об изменении формата.

Пример

Лучший способ узнать о новой функции заключается в том, чтобы попробовать себя. Это можно сделать с помощью примера PBIX-файла Adventure Works 2020, доступного в примере модели DAX. Используя пример модели, вы можете добавить преобразование валюты для отображения преобразованной суммы продаж в год. После скачивания откройте файл в Power BI Desktop.

Создание новых таблиц

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

  1. На ленте "Главная" выберите ввод данных.

  2. В диалоговом окне "Создание таблицы" введите следующее имя таблицы, а затем скопируйте и вставьте следующую таблицу:

    Имя таблицы: строки формата валюты страны

    Страна/регион Валюта Формат
    Австралия Доллар AU$#0.00
    Канада Доллар C$#0.00
    Дания Крона kr#0
    Еврозоны Евро € #,0,00
    Япония Иена • #,0
    Швеция Крона kr#0
    Швейцария Франк JSON#,0.00
    Соединенное Королевство Фунт £ #0
    Соединенные Штаты Доллар US$#,0.00
  3. Убедитесь, что таблица выглядит правильно, а затем нажмите кнопку "Загрузить".

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

  4. Повторите предыдущие шаги для следующей таблицы:

    Имя таблицы: годовой средний обменный курс

    Страна/регион Валюта Год Годовой средний обменный курс
    Австралия Доллар 2022 1.442
    Австралия Доллар 2021 1.332
    Австралия Доллар 2020 1.452
    Австралия Доллар 2019 1.439
    Австралия Доллар 2018 1,34
    Австралия Доллар 2017 1.358
    Канада Доллар 2022 1.301
    Канада Доллар 2021 1.254
    Канада Доллар 2020 1.341
    Канада Доллар 2019 1.327
    Канада Доллар 2018 1.297
    Канада Доллар 2017 1,35
    Дания Крона 2022 7.077
    Дания Крона 2021 6,29 к
    Дания Крона 2020 6.538
    Дания Крона 2019 6.67
    Дания Крона 2018 6.319
    Дания Крона 2017 6.864
    Еврозоны Евро 2022 0.951
    Еврозоны Евро 2021 0,846
    Еврозоны Евро 2020 0.877
    Еврозоны Евро 2019 0.893
    Еврозоны Евро 2018 0.848
    Еврозоны Евро 2017 0.923
    Япония Иена 2022 131.454
    Япония Иена 2021 109.817
    Япония Иена 2020 106.725
    Япония Иена 2019 109.008
    Япония Иена 2018 110.424
    Япония Иена 2017 116.667
    Швеция Крона 2022 10.122
    Швеция Крона 2021 8.584
    Швеция Крона 2020 9.205
    Швеция Крона 2019 9.457
    Швеция Крона 2018 8.703
    Швеция Крона 2017 8.894
    Швейцария Франк 2022 0.955
    Швейцария Франк 2021 0.914
    Швейцария Франк 2020 0.939
    Швейцария Франк 2019 0.994
    Швейцария Франк 2018 0,979
    Швейцария Франк 2017 1,024
    Соединенное Королевство Фунт 2022 0.811
    Соединенное Королевство Фунт 2021 0,727
    Соединенное Королевство Фунт 2020 0.779
    Соединенное Королевство Фунт 2019 0,784
    Соединенное Королевство Фунт 2018 0.75
    Соединенное Королевство Фунт 2017 0.808

Создание столбца Year

Столбец нового года необходим в существующей таблице даты.

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

  2. В строке формул DAX введите следующее выражение: Year = YEAR([Date])и нажмите клавишу ВВОД.

    Снимок экрана: формула Года в строке формул DAX.

Создание отношений

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

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

    • Таблица 1. Средние обменные курсы по годам
    • Столбец 1 таблицы: страна
    • Кратность: многие к одному
    • Таблица 2. Строки формата валюты страны
    • Столбец 2 таблицы: страна
    • Сделать эту связь активной: Да
    • Направление перекрестной фильтрации: одиночный

    Связь должна выглядеть следующим образом:

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

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

  3. Вместо этого создайте связь между ежегодными ставками и датой в столбце "Год".

    • Таблица 1. Средние обменные курсы по годам
    • Столбец 1 таблицы: год
    • Кратность: многие ко многим
    • Таблица 2. Дата
    • Столбец 2 таблицы: год
    • Сделать эту связь активной: Да
    • Направление перекрестной фильтрации: одинарный ("Средний обменный курс" фильтров "Дата" )

    Связь должна выглядеть следующим образом:

    Снимок экрана: связь.

  4. Сохраните модель.

Создание таблицы групп мер

Группа мер помогает упорядочивать различные меры, имея их в одной таблице.

  1. На ленте "Главная" выберите "Ввод данных".

  2. В диалоговом окне "Создание таблицы" оставьте значения пустыми. Назовите меры продаж таблицы и нажмите кнопку "Загрузить". Эта таблица содержит новые меры.

Создание мер

  1. В области "Данные" разверните и щелкните правой кнопкой мыши меры "Продажи", а затем выберите "Создать меру". Введите следующее выражение DAX в строку формул DAX и нажмите клавишу ВВОД:

    Sales Amount = SUM(Sales[Sales Amount])
    

    Он должен выглядеть так:

    Снимок экрана: формула DAX для измерения объема продаж.

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

    Снимок экрана: Column1 в группе мер продаж.

  3. Теперь можно создать меру для вычисления курса обмена. Щелкните правой кнопкой мыши меры "Продажи", выберите "Создать меру", введите следующее выражение в строку формул DAX и нажмите клавишу ВВОД:

    Exchange Rate (Yearly Avg) = 
    IF (
        ISBLANK ( SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) )
            || SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) = "United States",
        1,
        AVERAGE ( 'Yearly Average Exchange Rates'[Yearly Average Exchange Rate] )
    )
    
    

    Она должна выглядеть так: Снимок экрана: формула dax для обмена данными в редакторе DAX..

  4. Теперь вы создадите другую меру для преобразования меры "Сумма продаж" в другие валюты. Щелкните правой кнопкой мыши меры "Продажи", выберите "Создать меру", введите следующее выражение в строку формул DAX и нажмите клавишу ВВОД:

        Converted Sales Amount = 
        SUMX('Date',
        CALCULATE( [Sales Amount] * [Exchange Rate (Yearly Avg)]))
    
    

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

Создание отчета

  1. Перейдите в представление отчета. Добавьте в отчет новую пустую страницу.

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

  3. В области> "Продажи данных" выберите "Преобразованная сумма продаж". Без щелчка в другом месте также выберите "Год " в таблице "Дата ".

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

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

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

  5. Добавьте визуальный элемент среза на страницу отчета. На ленте "Формат" добавьте страну из таблицы строк формата валюты страны в срез.

    Снимок экрана: срез страны.

  6. Переупорядочение визуальных элементов до тех пор, пока они не имеют лучшего макета, что-то подобное:

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

  7. Хотя и не требуется, можно изменить визуальные свойства, чтобы сделать более удобный отчет:

    Срез

    • Параметры среза: одиночный выбор
    • Размер и стиль, заполнение: 10 пикселей, все края
    • Размер и стиль, визуальная граница: светло-серый, 10 пикселей с округленными углами
    • Параметры среза, стиль: плитка
    • Заголовок среза: Off
    • Значения, граница: левая, #333333, ширина линии 6

    Таблица

    • Размер и стиль, заполнение: 10 пикселей, все края
    • Размер и стиль, визуальная граница: светло-серый, 10 пикселей с округленными углами
    • Сетка, горизонтальные линии сетки: белая, 2 ширина
    • Сетка, вертикальные линии сетки: белая, 2 ширина
    • Сетка, граница: белый
    • Сетка, параметры: 2 заполнение строк
    • Значения, значения: цвет фона #F6F4F4
    • Значения, значения: альтернативный цвет фона #F6F4F4
    • Заголовки столбцов, текст: полужирный, белый цвет текста, цвет фона #0D6ABF

    График

    • Размер и стиль, заполнение: 10 пикселей, все края
    • Размер и стиль, визуальная граница: светло-серый, 10 пикселей с округленными углами
    • Заголовок, подзаголовок: вкл.
    • Ось Y, Title: Off
    • Ось Y: Выкл.
    • Маркеры: вкл.
    • Метки данных: вкл.
    • Метки данных, значения: полужирный, синий

    Холст (необязательно)

    • Фон холста: светло-серый, 85% прозрачность

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

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

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

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

  1. В области> "Продажи данных" выберите "Преобразованная сумма продаж".

  2. На ленте "Средства мер" щелкните раскрывающийся список "Формат" и выберите "Динамический".

  3. Раскрывающийся список слева от строки формул должен иметь формат, а формула в строке формул должна иметь строку формата. Замените строку формата следующим выражением DAX и нажмите клавишу ВВОД:

    SELECTEDVALUE ( 'Country Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
    

    Он должен выглядеть так:

    Снимок экрана: динамическая формула формата валюты страны.

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

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

  5. Сохраните модель.

Известные проблемы и рекомендации

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

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

    Снимок экрана: единицы отображения от авто до нет.

  • Сама мера может ссылаться непосредственно в строке динамического формата с помощью его имени, например [Measure A], или косвенно с помощью SELECTEDMEASURE().

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

  • С помощью DirectQuery для служб Analysis Services при нажатии кнопки "Внести изменения в эту модель " в отчете динамического подключения он перемещает подключение к DirectQuery через службы Analysis Services. Как правило, можно внести изменения в строки формата мер удаленной модели. Во время предварительной версии:

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