В этой статье расскажу, как в Power BI создать многоязыковой отчет и настроить переключатель языков с помощью срезов и связей «многие ко многим». Язык для такого отчета пользователь выбирает из списка.
Если вы работаете в крупной компании, где партнеры, сотрудники и руководство общаются на нескольких языках – это решение вам пригодится.
Единственное исключение: не изменяется язык технических записей, например, название итоговой строки отчета «Всего». Язык здесь зависит от региональных настроек пользователя.
Прежде чем начать читать статью или смотреть видео, скачайте пример отчета:
Давайте разберемся, как в Power BI построить многоязыковой отчет. Для примера возьмем отчет на русском языке, в котором есть города, статьи расходов и названия месяцев. И настроим его представление на английском и польском.
Данные для отчета берутся из таблицы «Доходы и расходы», а названия месяцев – из таблицы «Календарь».
Доходы и расходы
Календарь
Эти таблицы связаны между собой с помощью однонаправленной связи «один ко многим»:
Итак, что нужно, чтобы создать многоязыковой отчет с переключением языков? Для начала потребуется справочник, в котором все названия из отчета записаны на нескольких языках.
Возможные способы создания справочника:
- Создать одну таблицу, в которой будут храниться наименования отчета. А затем эту таблицу разделить на несколько справочников с помощью запросов Power Query.
- Или сразу создать отдельные таблицы. Этот вариант и рассмотрен далее в статье.
А теперь по порядку.
Шаг 1. Создаем справочник с названиями статей расходов на нескольких языках.
Выберите меню Главная → Введите данные. Вводим статьи и создаем специальные столбцы:
- «Код» — столбец, по которому будут связаны таблицы в модели данных. Этому столбцу должен соответствовать аналогичный код статьи в таблице «Доходы и расходы», или, как в нашем примере – название статьи на русском.
- «Порядок» — порядковые номера, определяющие последовательность отображения статей в отчете.
- «Русский», «English», «Polski» и т.д. – названия статей на разных языках.
Задайте имя справочника «спСтатьи» и нажмите «Изменить» для редактирования.
В открывшемся редакторе Power Query выделите мышкой столбцы «Код» и «Порядок». На вкладке Преобразование → нажмите «Отменить свертывание других столбцов». Появившиеся столбцы назовите «Язык» и «Статья». Получится таблица, как на рисунке:
Свяжите таблицы в модели данных. Связь создается с помощью столбца «Код» таблицы «спСтатьи» и столбца «статья» в таблице «Доходы и расходы». И в том, и в другом столбце неуникальные значения, поэтому между таблицами получилась связь «многие ко многим».
Шаг 2. Переходим к настройке отчета.
Создайте переключатель языков с помощью столбца «Язык» таблицы «спСтатьи». Задайте для него вид визуализации «Срез».
В область строк таблицы поместите статьи из созданного справочника «спСтатьи» (столбец «Статья»).
Шаг 3. Аналогично предыдущему шагу, создайте справочники городов, месяцев и заголовков (в нашем файле с примером это «спГорода», «спМесяцы» и «спЗаголовки»).
Свяжите таблицы в модели данных.
- Справочник «спГорода» с таблицей «Доходы и расходы», по столбцу «Код» (таблица «спГорода») и столбцу «город» в таблице «Доходы и расходы».
- «спМесяцы» связываем с таблицей «Календарь» — столбец «Код» (таблица «спМесяцы») связать со столбцом «Месяц» в таблице «Календарь».
- Таблица «спЗаголовки» пока остается без связей.
Между таблицами появились связи «многие ко многим», потому что данные в столбцах – неуникальные.
Теперь настройте отчет: в область строк и столбцов поместите города и месяцы из созданных справочников.
На рисунке видно, что названия городов и месяцев в таблице повторяются — выводятся несколько раз на разных языках. Чтобы названия не «дублировались», а языки переключались одновременно, переходим к следующему шагу – создадим единый справочник языков.
Шаг 4. Создаем единый справочник языков с помощью вычисляемой таблицы.
Для этого перейдите в меню Моделирование → Создать таблицу. Введите в строке формул: спЯзыки = DISTINCT (
'
спГорода'
[Язык] )
Создаем связи между таблицами в модели данных с помощью столбца «Язык» в каждой из таблиц. Связываем справочник «спЯзыки» с таблицами «спСтатьи», «спГорода», «спМесяцы», «спЗаголовки».
Теперь настройте отчет: поместите поле «Язык» из таблицы «спЯзыки» в область полей переключателя языков. Хотя даже при заданном языке записи в отчете повторяются. Переключатель языков не работает только с помощью связей в модели данных, потому что некоторые из связей неактивны.
Для переключения языков напишем меру на языке DAX.
Шаг 5. Создаем меру для вывода значений и переключения языков.
Выберите на вкладке Моделирование → Новая мера. В строке формул введите: Прибыль =
CALCULATE (
CALCULATE (
SUM ( [сумма] );
USERELATIONSHIP ( '
спГорода'
[Язык] ; '
спЯзыки'
[Язык] ) );
USERELATIONSHIP ( '
спМесяцы'
[Язык] ; '
спЯзыки'
[Язык] ) )
Здесь формула USERELATIONSHIP делает неактивные связи в модели данных активными, и они начинают работать.
Созданную меру «Прибыль» поместите в области значений таблицы. Задайте порядок вывода строк и столбцов с помощью сортировки. Теперь названия в таблице будут выводиться правильно.
Шаг 6. Рисуем диаграмму.
Добавьте в отчет каскадную диаграмму, щелкнув по значку в области визуализаций.
Поместите в область категорий статьи из справочника «спСтастьи», а в область оси Y – рассчитанную в предыдущем шаге меру «Прибыль». В меню форматирования отключите название диаграммы.
Шаг 7. Добавляем заголовки к таблице и диаграмме.
Настройте заголовки в отчете.
- Выберите вид визуализации заголовков – «Многострочная карточка».
- В область полей карточки поместите поле «Заголовок» таблицы «спЗаголовки».
- В область фильтров уровня визуальных элементов перенесите поле «Код» из той же таблицы. Задайте фильтр для названия отчета: установите галочку рядом со строкой «прибыли и убытки».
Отформатируйте заголовок таблицы – задайте вид карточки, поменяйте шрифт и цвет. Заголовок для диаграммы создайте по аналогии.
В результате получился отчет, в котором языки меняются с помощью переключателя.
Если тема создания многоязычных отчетов интересна – пишите нам, нужно ли продолжение статьи о том, как такой же финт проделать в Power Pivot в Excel. Это будет полезно для расширения арсенала DAX-формул и поможет выложить такой отчет на портал.