[БЕЗ_ЗВУКА] В реальной жизни мы часто сталкиваемся с задачами по комплексному анализу. Я имею в виду такой анализ, который требует учитывать не один источник данных, а несколько. Самый яркий пример — это анализ эффективности рекламной кампании. Для того чтобы его выполнить, вам потребуется взять таблицу с продажами, затем взять таблицу с расходами на рекламную кампанию и сравнить их между собой. В Excel нам это приходится делать в ручном режиме, то есть брать таблицу с продажами, суммировать и выяснять, какие были продажи за определённый период времени, а затем брать таблицу с расходами, соединять эти данные между собой и потом уже делать выводы. В Power BI эту же задачу можно решить гораздо проще. Всё, что нужно сделать — это загрузить две таблицы данных, связать их между собой, и всё — данные готовы к тому, чтобы их анализировать. Именно этим мы займёмся в нашем блоке по моделированию данных. Для того чтобы изучить моделирование данных в Power BI, мы создадим пустой отчёт в Power BI Desktop и загрузим в него пример данных от компании Microsoft, кликнув на соответствующую иконку на экране. Далее в навигаторе мы установим галочку напротив строки Sheet1 и загрузим данные в отчёт. После того как данные были загружены, мы можем перейти на режим отображения модели и посмотреть, как выглядит наша модель данных в отчёте Power BI. Здесь есть всего одна таблица. Для того чтобы создать связь между таблицами, нам нужно добавить новую. Для этого я воспользуюсь функцией «Введите данные», после чего появится окно «Создание таблицы». Оно идентично тому, которое отображается при нажатии аналогичной кнопки в Power Query. Итак, в этой таблице я хочу создать справочник, который будет указывать, какая страна к какому континенту относится. Итак, для этого мне нужна колонка с названием «Страна» и колонка с названием «Материк». Итак, моя таблица готова. В ней две колонки под названиями «Страна» и «Материк» и пять строк, где указана информация. Также я указал имя таблицы, такое как «Справочник стран». Нажимаю кнопку «Загрузить», после чего новая таблица попадает в отчёт, и тут же в режиме отображения модели мы её видим. Для того чтобы указать, что две таблицы связаны между собой по полю «Страна» и полю Country в таблице с данными, мне необходимо воспользоваться соответствующей кнопкой. Для этого на ленте кнопок на вкладке «Главная» я найду кнопку, которая называется «Управление связями». Кликну на неё. В появившемся окне мне необходимо нажать кнопку «Создать». И здесь появляется новое окно «Создание связи», которое разделено на две области: верхнюю и нижнюю. Мне нужно указать две таблицы, соответственно, которые будем связывать. Итак, я указываю таблицу Sheet, и во втором случае таблица «Справочник стран» выбрана автоматически, потому что таблиц всего две в модели. Всё, что нужно сделать — это теперь кликами мыши указать поля, по которым будет строиться связь. В случае с первой таблицей — это поле Country, а в случае со второй таблицей — это поле «Страна». После этого можно жать кнопку OK, и связь будет создана. Перейдём в режим отображения моделей и здесь мы видим, что между таблицами создана связь — это вот такая линия. Также создать связь можно было и другим способом. Чтобы его продемонстрировать, я удалю созданную ранее связь. Кликнув правой кнопкой мыши, выбираю опцию «Удалить», подтверждаю свои намерения. Для того чтобы создать связь между таблицами другим способом, необходимо в режиме отображения модели найти нужное поле, зажать левую кнопку мыши и перетянуть на соответствующее поле во второй таблице, с которой нам нужно построить связь, а затем отпустить левую кнопку мыши. И снова связь будет создана. Итак, давайте перейдём в режим отчёта и посмотрим, какие возможности для нас открывает связь между таблицами. Итак, я перехожу в режим отчёта и теперь я хочу увидеть сумму продаж по материкам. Для этого я разворачиваю поля из таблицы «Справочник стран», выбираю поле «Материк» и в другой таблице я выбираю поле «Продажа». Для наглядности сменю тип визуального элемента. Итак, мы можем наблюдать, что сумма продаж была посчитана для каждого материка. Но что важно заметить, так это то, что поля мы выбирали из разных таблиц. Поле «Материк» у нас выбрано из таблицы «Справочник стран», а поле «Продажи» выбрано из таблицы Sheet1. Давайте разберём, каким образом Power BI удалось вычислить данные значения. Давайте это сделаем на примере континента Евразия. Итак, проходим по шагам, которые выполняются при вычислении значений. Первое, что нужно сделать — это определить фильтры, которые есть в нашем отчёте. Как мы помним, в случае с графиками и гистограммами те значения, которые находятся на оси, являются фильтрами, поэтому здесь у нас есть всего один фильтр, который применяется к полю «Материк» таблицы «Справочник стран», и здесь нужно выбрать значение «Евразия». Далее мы переходим в наши таблицы, выбираем нужную и применяем фильтр на колонку «Материк», выбираем здесь Евразию. После этого у нас отфильтрованы строки и осталось всего два значения — это Франция и Германия. Далее происходит следующее: Power BI переходит в режим отображения модели, анализирует, какие связи есть у выбранной таблицы. В нашем случае связь есть между таблицами по полю «Страна», и далее очень важный момент: отфильтрованные значения как бы перетекают по связям. То есть фактически информация о том, что необходимо отфильтровать в колонке «Страна» два значения — Франция и Германия — передаётся от одной таблицы к другой. Для того чтобы определить, в каком направлении передаются информация о фильтрации, необходимо обратить внимание на пиктограмму в середине связи. Стрелочка указывает направление — в нашем случае это направление сверху вниз. Итак, давайте перейдём теперь к таблице Sheet1 и применим данную фильтрацию. Применяем фильтр по связанному полю. Здесь нам необходимо выбрать два значения — это Франция и Германия. Нажимаем OK, и после того как строки были отфильтрованы, нам необходимо выполнить уже математическую операцию. В нашем случае это просто сумма по полю Sales. На этом примере мы с вами разобрали, каким образом работает вычисление значений, когда в отчёте есть более чем одна таблица, и они между собой каким-то образом связаны. Давайте разберём чуть более сложную ситуацию. Для этого вернёмся к нашему листу отчёта и добавим ещё один визуальный элемент. Выберем колонку «Продукт» и выберем тип элемента «Срез». И теперь с помощью этого элемента отфильтруем наш отчёт, выбрав продукт Velo. Как мы видим, наш график изменился, теперь на материке Евразия наши продажи немного превышают восемь миллионов. Давайте разберём, как Power BI вычислил это значение. Первое, что необходимо сделать — это определить фильтры, которые действуют для вычисления значения. Как мы помним, у нас есть фильтр на графике — это материк Евразия. Кроме этого, есть дополнительный фильтр: в таблице Sheet1 по полю «Продукт» необходимо выбрать значение Velo. После этого переходим к таблицам. Сначала переходим в «Справочник стран», здесь выбираем фильтр по материку Евразия, остаётся две строки — Франция и Германия. После этого связи позволяют нам передать информацию о фильтрации из одной таблицы в другую, благодаря чему таблица Sheet1 должна быть отфильтрована по странам Франция и Германия. Мы открываем соответствующую таблицу и выбираем здесь фильтр. Далее необходимо применить еще одно условие фильтрации, уже по колонке «Продукт» в таблице Sheet 1. Поэтому открываем соответствующий фильтр и выбираем нужный нам продукт. Нажимаем OK. И после того как все фильтры были применены, уже наступает фаза выполнения расчета, и в нашем случае расчет очень простой — это просто сумма по колонке «Sales». Данный пример демонстрирует нам, что каждый фильтр в отчете действует на свою таблицу, но, перед тем как выполнить математические операции, Power BI также передает условия фильтрации от одной таблицы к другой там, где это возможно, где есть связь. Далее предлагаю разобрать следующую ситуацию: как действовать, если в вашем отчете должно быть несколько таблиц с данными? Для этого я вернусь в режим отображения модели и предположим, что мне необходимо добавить таблицу, в которой будет указано количество населения в каждой стране. Для того чтобы это сделать, я снова воспользуюсь кнопкой «Введите данные» на вкладке «Главная» на ленте кнопок. Обращаю ваше внимание, что я пользуюсь этой кнопкой с целью быстрого получения данных и введения их в ручном режиме. В реальной же жизни новые таблицы можно добавлять из разных источников, будь то Excel, или база данных, или любой другой доступный источник. Но мы же нажимаем кнопку «Введите данные» и создаем следующую таблицу. Итак, моя таблица с данными готова. В ней две колонки — это страна и население, и пять строк, где соответственно для каждой страны указано число жителей. Также я задал имя своей таблицы, назвал ее «Население» и теперь нажимаю кнопку «Загрузить» после чего данные появляются в отчете, и мы с вами можем обратить внимание на то, что связь между таблицами появилась автоматически. Это произошло потому, что обе колонки называются одинаково: «Страна» на русском языке и имеют похожие значения. Это позволило Power BI создать связь в автоматическом режиме. Далее давайте посмотрим, как можно применять такую структуру таблиц на практике. Перейдем в режим отчета, удалим ненужные более нам визуальные элементы и создадим новый визуальный элемент с типом «Таблица», где воспользуемся полем «Страна» из справочника стран, и из таблицы населения возьмем информацию о численности и, например, возьмем информацию о сумме продаж. Развернем визуальный элемент на весь экран. Обратите внимание, что для каждой страны отображается соответствующее значение и нет никаких перекосов и сбоев в работе данной таблицы. Давайте разберем, как это было достигнуто с учетом того, что мы используем поля из трех разных таблиц. Итак, первым делом мы определяем условия фильтрации. Условие фильтрации — это страна, например, Канада. Здесь очень важно обратить внимание на то, из какой таблицы выбрана колонка «Страна», потому что сейчас у нас в каждой из трех таблиц есть соответствующая колонка. Итак, для того чтобы таблица работала корректно, всегда нужно выбирать значение из таблицы справочников. Именно так у меня сделано. Обратите внимание, пожалуйста, в правую нижнюю часть экрана. Здесь оранжевым светится галочка в колонке «Страна» в таблице «Справочник стран». Далее Power BI переходит к таблицам, открывает таблицу «Справочник стран» и устанавливает необходимый ей фильтр. В нашем случае нужно отфильтровать и выбрать значение по полю «Канада». Итак, мы получаем одну строку. Далее, Power BI открывает режим просмотра модели и определяет, какие связи есть у таблицы «Справочник стран». У нас в нашем случае есть две связи — с таблицей «Население» и с таблицей «Sheet 1», поэтому информация о том, какой фильтр нужно применить, передается и в таблицу «Население», и в таблицу «Sheet 1». Переходим в соответствующие таблицы и выполняем фильтрацию. Сначала в таблице «Население», и затем в таблице «Sheet 1». [БЕЗ_ЗВУКА] И после того как все фильтры были применены, выполняются математические операции. В нашем случае — это сумма по колонке «Sales» и сумма по колонке «Население» в таблице «Население». Благодаря такому методу Power BI может отображать корректное значение на экране. Еще раз повторю, что очень важно всегда следить за тем, из какой именно таблицы вы выбираете поле. В тех ситуациях, когда у вас одна и та же колонка повторяется в разных таблицах, всегда нужно использовать значение из таблицы справочника. Чтобы понять, какая таблица у вас является справочной, нужно перейти на режим отображения модели и посмотреть, от какой таблицы связи перетекают, то есть в какую сторону смотрят стрелочки. Если стрелочка, как в нашем случае, смотрит вниз, означает, что внизу у нас таблица данных, вверху у нас — таблица справочников. Если же стрелочка, как в левом примере, смотрит в две стороны, означает, что обе таблицы могут фильтровать друг друга. Но так как у нас таблица Sheet 1 не может фильтровать в обратную сторону справочник стран, то поэтому нужно выбирать страну из таблицы «Справочник стран». Далее разберем, как еще можно использовать связи между таблицами. Для этого перейдем в режим отчета, удалим ненужный нам более элемент. И теперь я хочу создать меру, которая будет считать, какое количество человек приходится на единицу проданого товара в каждой стране. Для этого мне нужно разделить количество человек, проживающих в стране, на количество проданных штук в данной стране. Для этого я создам новую меру, где укажу следующую формулу. Мне нужно взять сумму из таблицы «Население», из колонки «Население» и разделить ее на сумму из колонки продано штук (Unit sold). Давайте попробуем вывести на экран полученное значение. Отобразим в виде таблицы и выведем страны. Итак, мы видим, что для каждой страны было рассчитано соответствующее значение. Давайте разберем, как это стало возможным. Все очень просто. Power BI действует так же, как и ранее. Сначала фильтруется таблица «Справочник стран», затем информация в фильтрах перетекает в каждую из таблиц, там фильтруются строки, и затем применяется математическая операция. То есть мы берем сумму из поля «Население» таблицы «Население» и сумму из таблицы «Sheet 1» из колонки «Units sold», и затем делим одно на другое. Благодаря этому, мы можем получать значения в разрезе стран. Данный пример иллюстрирует нам, что при наличии связей между таблицами мы можем в рамках одной меры использовать колонки из разных таблиц. В блоке «Моделирование данных» мы разобрали несколько областей. Начали с того, что добавили таблицу справочника и научились создавать связи между двумя таблицами. Затем, мы узнали как работают формулы при наличии справочника и таблицы данных, связанных между собой. Далее, мы добавили еще одну таблицу с данными, связали ее со справочником и посмотрели на практике, как могут работать меры, которые вычисляют свое значение на основании нескольких таблиц данных. Также хотел бы отметить, что Power BI не ограничивает нас созданием одного справочника и двух таблиц данных. Мы можем создавать любое количество таблиц-справочников и любое количество таблиц с данными. При организации корректных связей между всеми таблицами перед вами открывается возможность по анализу данных из различных источников.