Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Еще…Меньше
Чтобы сделать анализ данных более емким, создайте связи в разных таблицах. Связь — это соединение между двумя таблицами, которые содержат данные: один столбец в каждой таблице является основой для связи. Чтобы понять, чем полезны связи, представим, что отслеживаются данные для заказов клиентов в бизнесе. Вы можете отслеживать все данные в одной таблице с такой структурой:
ИДклиента |
Name |
|
DiscountRate |
OrderID |
OrderDate |
Product |
Quantity |
---|---|---|---|---|---|---|---|
1 |
Эштон |
chris.ashton@contoso.com |
0,05 |
256 |
01.07.2010 |
Компактный цифровой |
11 |
1 |
Эштон |
chris.ashton@contoso.com |
0,05 |
255 |
01.03.2010 |
Однообъективный зеркальный фотоаппарат |
15 |
2 |
Измайлов |
michal.jaworski@contoso.com |
0,10 |
254 |
01.03.2010 |
Недорогая видеокамера |
27 |
Этот подход может быть эффективным, но он подразумевает хранение множества избыточных данных, таких, как адрес электронной почты клиента для каждого заказа. Хранение данных обходится дешево, но если адрес электронной почты изменился, необходимо убедиться, чтоб была обновлена каждая строка для этого клиента. Одним из решений этой проблемы является разбиение данных на несколько таблиц и задание связей между этими таблицами. Этот подход используется в реляционных базах данных таких, как SQL Server. Например, импортированная база данных может представлять данные заказа, используя три связанные таблицы.
Customers
[CustomerID] |
Name |
|
---|---|---|
1 |
Эштон |
chris.ashton@contoso.com |
2 |
Измайлов |
maksim.izmaylov@contoso.com |
CustomerDiscounts
[CustomerID] |
DiscountRate |
---|---|
1 |
0,05 |
2 |
0,10 |
Orders
[CustomerID] |
OrderID |
OrderDate |
Product |
Quantity |
---|---|---|---|---|
1 |
256 |
01.07.2010 |
Компактный цифровой |
11 |
1 |
255 |
01.03.2010 |
Однообъективный зеркальный фотоаппарат |
15 |
2 |
254 |
01.03.2010 |
Недорогая видеокамера |
27 |
Связи существуют в модели данных ( та, которую вы создали явным образом или которая Excel автоматически создается от вашего имени при одновременном импорте нескольких таблиц. Кроме того, вы можете воспользоваться надстройкой Power Pivot для создания модели и управления ею. Дополнительные сведения см. в статье Создание модели данных в Excel.
Во время импорта таблицы из одной базы данных с помощью надстройки Power PivotPower Pivot может обнаруживать связи между таблицами, основанными на столбцах, заключенных в [квадратные скобки], и воспроизводить эти связи в модели данных, создаваемой в фоновом режиме. Дополнительные сведения см. в разделе Автоматическое обнаружение и вывод связей этой статьи. Если таблицы импортируются из нескольких источников, можно вручную создать связи, как это описано в статье Создание связей между двумя таблицами.
Связи основываются на столбцах в каждой таблице, содержащих одинаковые данные. Например, можно связать таблицу «Клиенты» с таблицей «Заказы», если каждая из них содержит столбец с ИД клиента. В данном примере имена столбцов одинаковы, но это не является обязательным условием. Один столбец может называться CustomerID, а другой — CustomerNumber, при условии, что все строки в таблице Orders содержат идентификатор, который также хранится в таблице Customers.
В реляционной базе данных существует несколько типов ключей. Ключ обычно является столбцом со специальными свойствами. Знание назначения каждого ключа помогает в управлении моделью данных с несколькими таблицами, предоставляющей данные для сводной таблицы, сводной диаграммы или отчета Power View.
Хотя существует множество типов ключей, они являются самыми важными в нашем предназначении:
-
Первичный ключ: однозначно определяет строку в таблице, например CustomerID в таблице Customers.
-
Альтернативный ключ (или первичный ключ): уникальный столбец, который не является первичным ключом. Например, таблица Employees может хранить идентификатор работника и номер карточки социального страхования, при том что оба они являются уникальными.
-
Внешнее ключ: столбец, который ссылается на уникальный столбец другой таблицы, например CustomerID в таблице Orders, который ссылается на CustomerID в таблице Customers.
В модели данных первичный или резервный ключ называется связанным столбцом. Если таблица содержит первичный и резервный ключ, любой из них можно использовать как основу для связи между таблицами. Внешний ключ называется исходным столбцом или просто столбцом. В нашем примере связь между customerID в таблице Orders (столбцом) и CustomerID в таблице Customers (столбцом подытов) будет определена. Если данные импортируются из реляционной базы данных, по умолчанию Excel выбирает внешний ключ из одной таблицы и соответствующий первичный ключ из другой таблицы. Тем не менее для столбца подстановки можно использовать любой столбец, содержащий уникальные значения.
Связь между клиентом и заказом является связью «один-к-многим». Каждый клиент может иметь несколько заказов, однако ни один из заказов не может иметь несколько клиентов. Еще одна важная связь между таблицами — «один к одному». В нашем примере таблица CustomerDiscounts, которая определяет единую ставку дисконтирования для каждого клиента, имеет отношение «один-к-одному» с таблицей Customers.
В этой таблице показаны связи между тремя таблицами(Customers, CustomerDiscountsи Orders):
Связь |
Тип |
Столбец подстановки |
Столбец |
---|---|---|---|
Customers-CustomerDiscounts |
один к одному |
Customers.CustomerID |
CustomerDiscounts.CustomerID |
Customers — Orders |
один ко многим |
Customers.CustomerID |
Orders.CustomerID |
Примечание: Связи «многие ко многим» не поддерживаются в модели данных. Примером связи «многие ко многим» является прямая связь между таблицами Products и Customers, в которой заказчик может купить много продуктов и одинаковый продукт может быть одновременно куплен несколькими заказчиками.
После создания связи необходимо Excel пересчет всех формул, которые используют столбцы из таблиц в созданной связи. Обработка может занять некоторое время в зависимости от объема данных и сложности связей. Дополнительные сведения см. в теме Пересчет формул.
Модель данных может содержать несколько связей между двумя таблицами. Для точного вычисления Excel требуется один путь от одной таблицы к другой. Поэтому одновременно активной может быть только одна связь между каждой парой таблиц. Хотя другие неактивны, вы можете указать неактивное отношение в формулах и запросах.
В представлении диаграммы активная связь является сплошной линией, а неактивные — пунктирными линиями. Например, в таблице AdventureWorksDW2012 таблица DimDate содержит столбец DateKey, связанный с тремя разными столбцами в таблице FactInternetSales:OrderDate, DueDateи ShipDate. Если есть активная связь между столбцами DateKey и OrderDate, эта связь и будет использоваться по умолчанию в формулах, если не указано иное.
Связь можно создать, если выполняются следующие требования.
Условие |
Описание |
---|---|
Уникальный идентификатор для каждой таблицы |
Каждая таблица должна иметь один столбец, однозначно определяющий каждую строку в этой таблице. Такой столбец часто именуется первичным ключом. |
Уникальные столбцы подстановки |
Значения данных в столбце подстановки должны быть уникальными. Другими словами, столбец не может содержать дубликаты. В модели данных нули и пустые строки эквивалентны пустому полю, которое является самостоятельным значением данных. Это значит, что столбец подстановки не может содержать несколько значений NULL. |
Совместимые типы данных |
Типы данных в исходном столбце и в столбце подстановки должны быть совместимыми. Дополнительные сведения о типах данных см. в теме Типы данных, поддерживаемые в моделях данных. |
В модели данных нельзя создать связь между таблицами, если ключ является составным. Также существует ограничение на создание связей «один к одному» и «один ко многим». Другие типы связей не поддерживаются.
Составные ключи и столбцы подстановки
Составной ключ состоит из нескольких столбцов. Модели данных не могут использовать составные ключи: таблица должна всегда иметь ровно один столбец, однозначно определяя каждую строку в таблице. При импорте таблиц, имеющих существующую связь на основе составного ключа, мастер импорта таблиц в Power Pivot не будет учитывать эту связь, так как ее нельзя создать в модели.
Для создания связи между двумя таблицами, имеющими несколько столбцов, в которых определены первичный и внешние ключи, сначала объедините значения для создания единого ключевого столбца. Это можно сделать перед импортом данных или путем создания вычисляемого столбца в модели данных с помощью надстройки Power Pivot.
Связи «многие ко многим»
Модель данных не может иметь связи «многие ко многим». В модель нельзя добавлять соединяющие таблицы . Тем не менее для моделирования связей «многие ко многим» можно использовать функции DAX.
Самосоединения и циклы
В модели данных не разрешается использование самосоединений. Самосоединение — это рекурсивная связь таблицы с самой собой. Самосоединения часто используются для определения иерархий типа «родители-потомки». Например, можно настроить самосоединение для таблицы Employees, чтобы создать иерархию, показывающую цепочку управления на предприятии.
Excel не позволяет создавать циклы среди связей в книге. Иными словами, следующий набор связей запрещается.
Таблица 1, столбец «а» к Таблице 2, столбец «f»
Tаблица 2, столбец «f» к Таблице 3, столбец «n».
Таблица 3, столбец «n» к Таблице 1, столбец «a».
При попытке создания связи, которая приведет к образованию цикла, выдается ошибка.
Одно из преимуществ импорта данных с помощью надстройки Power Pivot заключается в том, что Power Pivot иногда может обнаруживать связи и создавать новые связи в модели данных, создаваемой в Excel.
При импорте нескольких таблиц Power Pivot автоматически определяет все существующие связи между ними. Кроме того, при создании сводной таблицы Power Pivot анализирует данные в таблицах. Он обнаруживает возможные связи, которые не были определены, и предлагает столбцы, которые можно включить в них.
Алгоритм обнаружения на основании статистических данных о значениях и метаданных столбцов формирует выводы о вероятности связей.
-
Типы данных во всех связанных столбцах должны быть совместимыми. Для автоматического обнаружения поддерживаются только целочисленные и текстовые типы данных. Дополнительные сведения о типах данных см. в разделе Типы данных, поддерживаемые вмоделях данных.
-
Для успешного обнаружения связи количество уникальных ключей в столбце подстановки должно превышать количество значений в таблице на стороне «многие». Другими словами, ключевой столбец на стороне «многие» связи не должен содержать значений, не содержащихся в ключевом столбце таблицы подстановки. Например, предположим, что имеется таблица, в которой перечислены продукты и их идентификаторы (таблица подстановки), а также таблица продаж, содержащая данные продаж всех продуктов (сторона «многие» связи). Если записи продаж содержат идентификатор продукта, не имеющего соответствующий идентификатор в таблице Products, связь нельзя создать автоматически, но можно создать вручную. Для обеспечения обнаружения связи с помощью Excel необходимо сначала обновить таблицу подстановки Product с использованием идентификаторов недостающих продуктов.
-
Убедитесь, что имя ключевого столбца на стороне «многие» совпадает с именем ключевого столбца в таблице подстановки. Имена не должны быть абсолютно идентичны. Например, в бизнес-параметрах часто имеются варианты имен столбцов, которые содержат фактически одинаковые данные: «ИД сотрудника», «ИД сотрудника», «ИД сотрудника», «EMP_ID»и так далее. Алгоритм выявляет похожие имена и задает более высокие значения вероятности столбцам, имена которых похожи или полностью совпадают. Поэтому, чтобы увеличить вероятность создания связи, можно попытаться переименовать столбцы в импортируемых данных, подобрав имена чем-то похожие на имена строк в существующих таблицах. Если Excel находит несколько возможных связей, связь не создается.
Эти сведения помогают понять, почему не удалось выявить все связи и какие изменения в метаданных (именах полей и типах данных) могут повысить эффективность автоматического обнаружения связей. Дополнительные сведения см. в разделе Устранение неполадок в связях.
Автоматическое обнаружение именованных наборов
Связи между именованными наборами и связанными полями в сводной таблице не обнаруживаются автоматически. Такие связи можно создать вручную. При необходимости использования автоматического обнаружения связей удалите каждый именованный набор и добавьте отдельные поля из именованного набора непосредственно в сводную таблицу.
Вывод связей
В некоторых случаях связи между таблицами автоматически объединяются в цепочки. Например, если создать связь между первыми двумя наборами таблиц, указанных ниже, то определяется наличие связи между другими двумя таблицами и эта связь устанавливается автоматически.
Products и Category — связь создается вручную
Category и SubCategory — связь создается вручную
Products и SubCategory — связь определяется автоматически
Для автоматического объединения связей в цепочки эти связи должны идти в одном направлении, как показано выше. Если исходные связи были установлены, например между таблицами Sales и Products, а также между Sales и Customers, то связь не выводится. Это вызвано тем, что связь между таблицами Products и Customers является связью «многие ко многим».
Нужна дополнительная помощь?
Преимущества сводной по Модели Данных
При построении сводной таблицы в Excel в первом же диалоговом окне, где нас просят задать исходный диапазон и выбрать место для вставки сводной, есть внизу неприметная, но очень важная галочка — Добавить эти данные в Модель Данных (Add this data to Data Model) и, чуть выше, переключатель Использовать модель данных этой книги (Use Data Model of this workbook):
К сожалению, очень многие даже давно знакомые со сводными таблицами и успешно применяющие их в работе пользователи, порой не очень понимают смысл этих опций и никогда их не используют. И зря. Ведь создание сводной по Модели Данных даёт нам несколько очень важных преимуществ по сравнению с классической сводной таблицей Excel.
Однако, перед тем, как рассматривать эти «плюшки» вблизи, давайте сначала разберёмся с тем, что такое, собственно, эта Модель Данных?
Что такое Модель Данных
Модель Данных (сокращенно — МД или DM=Data Model) — это специальная область внутри файла Excel, куда можно где можно хранить табличные данные — одну или несколько таблиц связанных, при желании, между собой. По сути, это маленькая база данных (OLAP-куб), встроенная внутрь книги Excel. По сравнению с классическим хранением данных в виде обычных (или умных) таблиц на листах самого Excel, у Модели Данных есть несколько серьезных преимуществ:
- Размер таблиц может достигать 2 млрд. строк, а на лист Excel вмещается чуть больше 1 млн.
- Не смотря на гигантские размеры, обработка таких таблиц (фильтрация, сортировка, вычисления по ним, построение сводных и т.д.) выполняются очень быстро — гораздо быстрее, чем в самом Excel.
- С данными в Модели можно производить дополнительные (при желании — весьма сложные) вычисления с помощью встроенного языка DAX.
- Вся информация, загруженная в Модель Данных, очень сильно сжимается с помощью специального встроенного архиватора и весьма умеренно увеличивает размер исходного Excel-файла.
Управлением Моделью и вычислениями по ней занимается специальная встроенная в Microsoft Excel надстройка — Power Pivot, о которой я уже писал. Чтобы её включить, на вкладке Разработчик нажмите кнопку Надстройки COM (Developer — COM Add-ins) и поставьте соответствующую галочку:
Если вкладки Разработчик (Developer) у вас на ленте не видно, то включить её можно через Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon). Если же в показанном выше окне в списке COM-надстроек у вас нет Power Pivot, то значит она не входит в вашу версию Microsoft Office
На появившейся вкладке Power Pivot будет большая салатового цвета кнопка Управление (Manage), нажатие на которую и откроет поверх Excel окно Power Pivot, где мы и увидим содержимое Модели Данных текущей книги:
Важное замечание по ходу: книга Excel может содержать только одну Модель Данных.
Грузим таблицы в Модель Данных
Для загрузки данных в Модель сначала превращаем таблицу в динамическую «умную» сочетанием клавиш Ctrl+T и даём ей понятное имя на вкладке Конструктор (Design). Это обязательный этап.
Затем можно использовать любой из трех способов, на выбор:
- Жмём кнопку Добавить в модель (Add to Data Model) на вкладке Power Pivot на вкладке Главная (Home).
- Выбираем команды Вставка — Сводная таблица (Insert — Pivot Table) и включаем флажок Добавить эти данные в Модель данных (Add this data to Data Model). В этом случае по загруженным в Модель данным сразу строится ещё и сводная таблица.
- На вкладке Данные (Data) жмём на кнопку Из таблицы/диапазона (From Table/Range), чтобы загрузить нашу таблицу в редактор Power Query. Этот путь самый долгий, но, при желании, здесь можно произвести дополнительную зачистку данных, правки и всяческие трансформации, в которых Power Query очень силён.
Затем причёсанные данные выгружаются в Модель командой Главная — Закрыть и загрузить — Закрыть и загрузить в… (Home — Close&Load — Close&Load to…). В открывшемся окне выбираем вариант Только создать подключение (Only create connection) и, главное, ставим галочку Добавить эти данные в Модель данных (Add this data to Data Model).
Строим сводную по Модели Данных
Чтобы построить сводную Модели Данных можно использовать любой из трёх подходов:
- Нажать кнопку Сводная таблица (Pivot Table) в окне Power Pivot.
- Выбрать в Excel команды Вставка — Сводная таблица и переключиться в режим Использовать модель данных этой книги (Insert — Pivot Table — Use this workbook’s Data Model).
- Выбираем команды Вставка — Сводная таблица (Insert — Pivot Table) и включаем флажок Добавить эти данные в Модель данных (Add this data to Data Model). Текущая «умная» таблица будет загружена в Модель и по всей Модели будет построена сводная таблица.
Теперь, когда мы разобрались с тем, как загружать данные в Модель Данных и строить по ним сводную, давайте изучем те выгоды и преимущества, которые нам это даёт.
Преимущество 1. Связи между таблицами без помощи формул
Обычная сводная может быть построена только по данным из одной исходной таблицы. Если же у вас их несколько, например, продажи, прайс, справочник по клиентам, реестр договоров и т.д., то сначала придется собирать данные из всех таблиц в одну с помощью функций типа ВПР (VLOOKUP), ИНДЕКС (INDEX), ПОИСКПОЗ (MATCH), СУММЕСЛИМН (SUMIFS) и им подобных. Это долго, муторно и вгоняет ваш Excel в «задумчивость» при большом количестве данных.
В случае сводной по Модели Данных всё гораздо проще. Достаточно один раз настроить связи между таблицами в окне Power Pivot — и дело в шляпе. Для этого на вкладке Power Pivot жмём кнопку Управление (Manage) и затем в появившемся окне — кнопку Представление диаграммы (Diagram View). Останется перетащить общие (ключевые) названия столбцов (поля) между таблицами, чтобы создать связи:
После этого в сводной по Модели Данных можно закидывать в области сводной (строки, столбцы, фильтры, значения) любые поля из любых связанных таблиц — всё будет связываться и подсчитываться уже автоматически:
Преимущество 2. Подсчёт количества уникальных значений
Обычная сводная таблица даёт нам возможность выбрать одну из нескольких встроенных функций расчёта: сумму, среднее, количество, минимум, максимум и т.д. В сводной по Модели Данных к этому стандартному списку добавляется весьма полезная функция подсчёта количества уникальных (неповторяющихся значений). С её помощью, например, можно легко посчитать количество уникальных наименований товаров (ассортимент), который мы продаём в каждом городе.
Щёлкаем правой кнопкой мыши по полю — команда Параметры полей значений и на вкладке Операция выбираем Число разных элементов (Distinct count):
Преимущество 3. Свои формулы на языке DAX
Иногда в сводных таблицах приходится выполнять различные дополнительные вычисления. В обычных сводных это делается с помощью вычисляемых полей и объектов, а сводной по Модели Данных для этого используются меры на специальном языке DAX (DAX = Data Analysis Expressions).
Для создания меры выберите на вкладке Power Pivot команду Меры — Создать меру (Measures — New measure) или просто щёлкните правой кнопкой мыши по таблице в списке полей сводной и выберите Добавить меру (Add measure) в контекстном меню:
В открывшемся окне задаём:
- Имя таблицы, где созданная мера будет храниться.
- Название меры — любое понятное вам имя для нового поля.
- Описание — по желанию.
- Формула — самое главное, т.к. здесь мы либо вручную вписываем, либо жмём на кнопку fx и выбираем из списка функцию DAX, которая должна вычислять результат, когда мы потом забросим нашу меру в область Значений.
- В нижней части окна можно сразу задать для меры числовой формат в списке Категория.
Язык DAX не всегда прост для понимания, т.к. оперирует не отдельными значениями, а целыми столбцами и таблицами, т.е. требует некоторой перестройки мышления после классических формул Excel. Однако же, оно того стоит, ибо мощь его возможностей при обработке больших объемов данных трудно переоценить.
Преимущество 4. Свои иерархии полей
Часто при создании типовых отчётов приходится забрасывать в сводные таблицы одни и те же комбинации полей в заданной последовательности, например Год-Квартал-Месяц-День, или Категория-Товар, или Страна-Город-Клиент и т.п. В сводной по Модели Данных эта проблема легко решается созданием собственных иерархий — пользовательских наборов полей.
В окне Power Pivot переключитесь в режим диаграммы кнопкой Представление диаграммы на вкладке Главная (Home — Diagram View), выделите с Ctrl нужные поля и щёлкните по ним правой кнопкой мыши. В контекстном меню будет команда Создать иерархию (Create hierarchy):
Созданную иерархию можно переименовать и перетащить в неё мышью требуемые поля, чтобы потом в одно движение забрасывать их в сводную:
Преимущество 5. Свои наборы элементов
Продолжая идею предыдущего пункта, в сводной по Модели Данных можно создавать ещё и свои наборы элементов для каждого поля. Например, из всего списка городов можно легко сделать набор только из тех, которые входят в зону вашей ответственности. Или собрать в специальный набор только своих клиентов, свои товары и т.п.
Для этого на вкладке Анализ сводной таблицы в выпадающем списке Поля, элементы и наборы есть соответствующие команды (Analyze — Fields, Items & Sets — Create set based on row/column items):
В открывшемся окне можно выборочно удалить, добавить или поменять положение любых элементов и сохранить получившийся набор под новым именем:
Все созданные наборы будут отображаться в панели полей сводной таблицы в отдельной папке, откуда их можно свободно перетаскивать в области строк и столбцов любой новой сводной таблицы:
Преимущество 6. Выборочное скрытие таблиц и столбцов
Это хоть и небольшое, но весьма приятное в некоторых случаях преимущество. Щёлкнув правой кнопкой мыши по названию поля или по ярлычку таблицы в окне Power Pivot, можно выбрать команду Скрыть из набора клиентских средств (Hide from Client Tools):
Скрытый столбец или таблица пропадут из панели со списком полей сводной таблицы. Очень удобно, если вам требуется скрыть от пользователя некоторые вспомогательные столбцы (например, расчетные или столбцы с ключевыми значениями для создания связей) или даже целые таблицы.
Преимущество 7. Продвинутый drill-down
Если в обычной сводной таблице сделать двойной щелчок левой кнопкой мыши по любой ячейке в области значений, то Excel выводит на отдельном листе копию фрагмента исходных данных, которые участвовали в расчёте этой ячейки. Это очень удобная штука, официально называющаяся Drill-down (на русском обычно говорят «провалиться»).
В сводной по Модели Данных этот удобный инструмент работает более тонко. Встав на любую интересующую нас ячейку с результатом, можно щёлкнуть по всплывающему рядом значку с лупой (он называется Экспресс-тенденции) и выбрать затем любое интересующее вас поле в любой связанной таблице:
После этого текущее значение (Модель = Explorer) уйдет в область фильтра, а сводная будет построена уже по офисам:
Само-собой, такую процедуру можно повторять многократно, последовательно углубляясь в ваши данные в интересующем вас направлении.
Преимущество 8. Преобразование сводной в функции кубов
Если выделить любую ячейку в сводной по Модели Данных и выбрать затем на вкладке Анализ сводной таблицы команду Средства OLAP — Преобразовать в формулы (Analyze — OLAP Tools — Convert to formulas), то вся сводная будет автоматически преобразована в формулы. Теперь значения полей в области строк-столбцов и результаты в области значений будут извлекаться из Модели Данных с помощью специальных функций кубов: КУБЗНАЧЕНИЕ и КУБЭЛЕМЕНТ:
Технически, это означает, что теперь мы имеем дело не со сводной, а с несколькими ячейками с формулами, т.е. спокойно можем делать с нашим отчетом любые преобразования недоступные в сводных, например, вставлять в середину отчета новые строки или столбцы, делать внутри сводной любые доп.вычисления, оформлять их любым желаемым образом и т.д.
При этом связь с исходными данными, само-собой, остается и в будущем эти формулы будут обновляться при изменении источников. Красота!
Ссылки по теме
- План-факт анализ в сводной таблице с Power Pivot и Power Query
- Сводная по таблице с многострочной шапкой
- Создание базы данных в Excel с помощью Power Pivot
Excel is a powerful tool for data analysis and subsequent automation when handling large sets of data. You could be spending significant time analyzing tons of data using VLOOKUP, INDEX-MATCH, SUMIF, etc.
Thanks to the Excel Data Model, you can save precious time through automatic data reports. Find out how easily you can assign a relationship between two tables by using the Data Model and an illustration of such a relationship in a pivot table in the following section.
The Basic Requirements
You’ll need Power Pivot and Power Query (Get & Transform) to accomplish several tasks while creating Excel Data Model. Here is how you can get these features in your Excel workbook:
How to Get Power Pivot
1. Excel 2010: You’ll need to download the Power Pivot add-in from Microsoft and then install it for your Excel program on your computer.
2. Excel 2013: Office Professional Plus edition of Excel 2013 includes Power Pivot. But, you need to activate it before first use. Here is how:
- Click on File on the Ribbon of an Excel workbook.
- Then click on Options to open Excel Options.
- Now, click on Add-ins.
- Select COM Add-ins by clicking on the drop-down menu of the Manage box.
- Click on Go and then select the checkbox for Microsoft Power Pivot for Excel.
3. Excel 2016 and Later: You’ll find the Power Pivot menu on the Ribbon.
How to Get Power Query (Get & Transform)
1. Excel 2010: You can download the Power Query add-in from Microsoft. After installation, Power Query will show up on the Ribbon.
2. Excel 2013: You need to activate Power Query by following the same steps that you just did to make Power Pivot functional in Excel 2013.
3. Excel 2016 and Later: You can find Power Query (Get & Transform) by going to the Data tab on Excel Ribbon.
Create Data Model by Importing Data to the Excel Workbook
For this tutorial, you can get pre-formatted sample data from Microsoft:
Download: Sample student data (data only) | Sample student data (complete model)
You can import a database with multiple related tables from many sources like Excel workbooks, Microsoft Access, websites, SQL Server, etc. Then you need to format the data set so that Excel can utilize it. Here are the steps that you can try:
1. In Excel 2016 and later editions, click on the Data tab and select New Query.
2. You will find several ways to import data from external or internal sources. Choose the one that suits you.
3. If using Excel 2013 edition, click on Power Query on the Ribbon and then select Get External Data to choose data for import.
4. You will see the Navigator box where you need to choose which tables you need to import. Click on the check box for Select multiple items to pick several tables for import.
5. Click on Load to complete the import process.
6. Excel will create a Data Model for you using these tables. You can see the table column headers in the PivotTable Fields listings.
You can also utilize Power Pivot functions like calculated columns, KPIs, hierarchies, calculated fields, and filtered datasets from Excel Data Model. For this purpose, you’ll need to generate Data Model from a single table. You can try these steps:
1. Format your data in a tabular model by selecting all of the cells containing data and then click Ctrl+T.
2. Now, select the entire table and then click on the Power Pivot tab on the Ribbon.
3. From the Tables section, click on Add to Data Model.
Excel will create table relationships between related data from the Data Model. For this, there should be primary and foreign key relationships within the imported tables.
Excel utilizes the relationship information from the imported table as a foundation to generate connections between the tables in a Data Model.
Build Relationships Between the Tables in the Data Model
Now that you have a Data Model in your Excel workbook, you’ll need to define relationships between the tables to create meaningful reports. You need to assign a unique field identifier or primary key to each table, like Semester ID, Class Number, Student ID, etc.
The Diagram View feature of Power Pivot will let you drag and drop those fields to build a relationship. Follow these steps to create table links in Excel Data Model:
1. On the Ribbon of the Excel workbook, click on the Power Pivot menu.
2. Now, click on Manage in the Data Model section. You’ll see the Power Pivot editor as shown below:
3. Click on the Diagram View button located in the View section of the Power Pivot Home tab. You’ll see table column headers grouped according to the table name.
4. You’ll now be able to drag and drop the unique field identifier from one table to another. Following is the relationship schematic between the four tables of the Excel Data Model:
The following describes the linkage between tables:
- Table Students | Student ID to table Grades | Student ID
- Table Semesters | Semester ID to table Grades | Semester
- Table Classes | Class Number to table Grades | Class ID
5. You can create relationships by choosing a pair of unique value columns. If there are any duplicates, you’ll see the following error:
6. You’ll notice Star (*) on one side and One (1) on the other in the Diagram View of relationships. It defines that a one-to-many relationship exists between the tables.
7. On the Power Pivot editor, click on the Design tab and then select Manage Relationships to know which fields make the connections.
Generate a PivotTable Using the Excel Data Model
You can now create a PivotTable or PivotChart to visualize your data from Excel Data Model. An Excel workbook may contain only one Data Model, but you can keep updating the tables.
Because data changes over time, you can continue to use the same model and save time when working with the same data set. You’ll notice more time savings when working on data in thousands of rows and columns. To create a PivotTable based report, follow these steps:
1. On the Power Pivot editor, click on the Home tab.
2. On the Ribbon, click on PivotTable.
3. Choose any one between New Worksheet or Existing Worksheet.
4. Select OK. Excel will add a PivotTable that will show the Field List pane on the right.
Following is a holistic view of a pivot table created by utilizing the Excel Data Model for the sample student data used in this tutorial. You can also create professional pivot tables or charts from big data using the Excel Data Model tool.
Transform Complex Data Sets Into Simple Reports Using Excel’s Data Model
Excel Data model utilizes the benefits of creating relationships between tables to produce meaningful pivot tables or charts for data reporting purposes.
You can continuously update the existing workbook and publish reports on updated data. You don’t have to edit formulas or invest time in scrolling through thousands of columns and rows each time the source data updates.
Excel – мощный инструмент для анализа данных и последующей автоматизации при работе с большими наборами данных. Вы можете потратить много времени на анализ тонны данных с помощью ВПР, ИНДЕКС-МАТЧ, СУММЕСЛИ и т. Д.
Благодаря модели данных Excel вы можете сэкономить драгоценное время с помощью автоматических отчетов. Узнайте, насколько легко вы можете назначить связь между двумя таблицами с помощью модели данных и иллюстрации такой связи в сводной таблице в следующем разделе.
Основные требования
Вам понадобятся Power Pivot и Power Query (получение и преобразование) для выполнения нескольких задач при создании модели данных Excel . Вот как вы можете получить эти функции в своей книге Excel:
Как получить Power Pivot
1. Excel 2010: вам необходимо загрузить надстройку Power Pivot от Microsoft, а затем установить ее для своей программы Excel на свой компьютер.
2. Excel 2013: выпуск Excel 2013 Office профессиональный плюс включает Power Pivot. Но вам необходимо активировать его перед первым использованием. Вот как:
- Щелкните Файл на ленте книги Excel.
- Затем щелкните Параметры, чтобы открыть Параметры Excel .
- Теперь нажмите « Надстройки» .
- Выберите надстройки COM , щелкнув раскрывающееся меню в поле « Управление» .
- Нажмите « Перейти» и установите флажок для Microsoft Power Pivot для Excel .
3. Excel 2016 и более поздние версии: на ленте вы найдете меню Power Pivot.
Как получить Power Query (получить и преобразовать)
1. Excel 2010: вы можете загрузить надстройку Power Query от Microsoft . После установки Power Query появится на ленте .
2. Excel 2013: вам необходимо активировать Power Query, выполнив те же действия, которые вы только что сделали, чтобы сделать Power Pivot работоспособным в Excel 2013.
3. Excel 2016 и более поздние версии : вы можете найти Power Query (получение и преобразование), перейдя на вкладку « Данные » на ленте Excel.
Для этого руководства вы можете получить предварительно отформатированные образцы данных от Microsoft:
Скачать : образец данных о студентах (только данные) | Пример данных о студентах (полная модель)
Вы можете импортировать базу данных с несколькими связанными таблицами из многих источников, таких как книги Excel, Microsoft Access, веб-сайты, SQL Server и т. Д. Затем вам нужно отформатировать набор данных, чтобы Excel мог его использовать. Вот шаги, которые вы можете попробовать:
1. В Excel 2016 и более поздних версиях щелкните вкладку « Данные » и выберите « Новый запрос» .
2. Вы найдете несколько способов импортировать данные из внешних или внутренних источников. Выберите тот, который вам подходит.
3. При использовании версии Excel 2013 щелкните Power Query на ленте, а затем выберите « Получить внешние данные», чтобы выбрать данные для импорта.
4. Вы увидите окно навигатора, в котором вам нужно выбрать, какие таблицы вам нужно импортировать. Установите флажок Выбрать несколько элементов, чтобы выбрать несколько таблиц для импорта.
5. Щелкните Загрузить, чтобы завершить процесс импорта.
6. Excel создаст для вас модель данных, используя эти таблицы. Вы можете увидеть заголовки столбцов таблицы в списках полей сводной таблицы .
Вы также можете использовать функции Power Pivot, такие как вычисляемые столбцы, ключевые показатели эффективности, иерархии, вычисляемые поля и отфильтрованные наборы данных из модели данных Excel. Для этого вам необходимо сгенерировать модель данных из одной таблицы. Вы можете попробовать следующие шаги:
1. Отформатируйте данные в табличной модели, выделив все ячейки, содержащие данные, и нажмите Ctrl + T.
2. Теперь выберите всю таблицу и щелкните вкладку Power Pivot на ленте .
3. В разделе « Таблицы » нажмите « Добавить в модель данных» .
Excel создаст табличные отношения между связанными данными из модели данных. Для этого в импортированных таблицах должны существовать отношения первичного и внешнего ключей.
Excel использует информацию о взаимосвязях из импортированной таблицы в качестве основы для создания связей между таблицами в модели данных.
Построение взаимосвязей между таблицами в модели данных
Теперь, когда у вас есть модель данных в вашей книге Excel, вам необходимо определить отношения между таблицами для создания содержательных отчетов. Каждой таблице необходимо назначить уникальный идентификатор поля или первичный ключ, например идентификатор семестра, номер класса, идентификатор студента и т. Д.
Функция представления диаграммы в Power Pivot позволяет перетаскивать эти поля для построения взаимосвязи. Выполните следующие действия, чтобы создать ссылки на таблицы в модели данных Excel:
1. На ленте книги Excel щелкните меню Power Pivot .
2. Теперь нажмите « Управление» в разделе « Модель данных ». Вы увидите редактор Power Pivot, как показано ниже:
3. Нажмите кнопку « Просмотр диаграммы» , расположенную в разделе « Просмотр » на вкладке « Главная страница Power Pivot». Вы увидите заголовки столбцов таблицы, сгруппированные по имени таблицы.
4. Теперь вы сможете перетаскивать уникальный идентификатор поля из одной таблицы в другую. Ниже представлена схема отношений между четырьмя таблицами модели данных Excel:
Ниже описывается связь между таблицами:
- Стол студенты | Студенческий билет к таблице Оценки | Студенческий билет
- Таблица семестров | Идентификатор семестра в таблицу Оценки | Семестр
- Табличные классы | Номер класса в таблицу Оценки | ID класса
5. Вы можете создавать отношения, выбирая пару столбцов с уникальными значениями. Если есть дубликаты, вы увидите следующую ошибку:
6. Вы заметите звезду (*) с одной стороны и одну (1) с другой в виде диаграммы отношений. Он определяет, что между таблицами существует связь «один ко многим».
7. В редакторе Power Pivot щелкните вкладку « Дизайн » и выберите « Управление взаимосвязями», чтобы узнать, в каких полях выполняются подключения.
Создание сводной таблицы с использованием модели данных Excel
Теперь вы можете создать сводную таблицу или сводную диаграмму для визуализации данных из модели данных Excel. Книга Excel может содержать только одну модель данных, но вы можете продолжать обновлять таблицы.
Поскольку данные со временем меняются, вы можете продолжать использовать ту же модель и экономить время при работе с тем же набором данных. Вы заметите больше экономии времени при работе с данными в тысячах строк и столбцов. Чтобы создать отчет на основе сводной таблицы, выполните следующие действия:
1. В редакторе Power Pivot щелкните вкладку « Главная ».
2. На ленте щелкните « Сводная таблица» .
3. Выберите любой из «Новый рабочий лист» или «Существующий рабочий лист».
4. Выберите ОК . Excel добавит сводную таблицу , в которой справа отобразится панель списка полей .
Ниже приведено целостное представление сводной таблицы, созданной с использованием модели данных Excel для образцов данных об учащихся, используемых в этом руководстве. Вы также можете создавать профессиональные сводные таблицы или диаграммы из больших данных с помощью инструмента модели данных Excel.
Преобразование сложных наборов данных в простые отчеты с помощью модели данных Excel
Модель данных Excel использует преимущества создания связей между таблицами для создания значимых сводных таблиц или диаграмм для целей отчетности.
Вы можете постоянно обновлять существующую книгу и публиковать отчеты по обновленным данным. Вам не нужно редактировать формулы или тратить время на прокрутку тысяч столбцов и строк каждый раз при обновлении исходных данных.
В Excel 2013 появился новый аналитический механизм: модель данных. Каждая рабочая книга располагает собственной внутренней моделью данных, упрощающей анализ разрозненных источников данных. [1] Идея, заложенная в основу модели данных, проста. Предположим, что в вашем распоряжении имеются две таблицы: Заказы (рис. 1) и Сотрудники (рис. 2). В таблице Заказы содержится информация о сделках (код сотрудника, дата и сумма счета-фактуры, период продаж). В таблице Сотрудники находится информация о сотрудниках: код, фамилия, имя и должность. Если нужно проанализировать суммы продаж в зависимости от должности сотрудника, следует объединить информацию, содержащуюся в двух таблицах. Чтобы ваши данные имели вид Таблицы – инструмента Excel(поэтому пишется с заглавной буквы) – кликните на любой ячейке таблицы данных и выполните команду Создать Таблицу: Ctrl+T.
Рис. 1. Информация о сделках
Скачать заметку в формате Word или pdf, примеры в формате Excel
Рис. 2. Информация о сотрудниках
Выполнение подобной задачи в прошлом потребовало бы использования множества формул ВПР, СУММЕСЛИ и других. После появления модели данных в Excel 2013 достаточно объявить обе таблицы связанными (по коду сотрудника) и включить их в модель данных. Модель данных Excel создает куб аналитики на основе связи между кодами сотрудников и передает нужные данные в сводную таблицу.
Наша задача заключается в том, чтобы отобразить суммы продаж в зависимости от должности сотрудника. В прежних версиях Excel решить подобную задачу было непросто, поскольку сведения о продажах и должностях сотрудников находились в отдельных таблицах. После появления модели данных достаточно выполнить следующие действия:
1. Щелкните в области таблицы Заказы и начните создавать новую сводную таблицу, выбрав команду Вставка → Сводная таблица.
2. В диалоговом окне Создание сводной таблицы установите флажок Добавить данные в модель данных (рис. 3). Обратите внимание на то, что в окне Создание сводной таблицы находится ссылка на именованный диапазон (Таблицу данных); в нашем примере – Заказы. Рекомендуется присваивать говорящие имена Таблицам данных. Это облегчит распознавание таблиц, находящихся в модели данных. Если не присваивать названия Таблицам данных, модель данных отобразит их под названиями Таблица 1, Таблица2 и т.д. Чтобы назначить Таблице данных имя, кликните на Таблице, перейдите на контекстную вкладку Работа с данными → Конструктор и в поле Имя таблицы введите говорящее имя. Повторите эту операцию для всех остальных Таблиц.
Рис. 3. Создайте сводную таблицу на основе таблицы данных Заказы
3. Щелкните в области таблицы данных Сотрудники и начните создавать новую сводную таблицу. Не забудьте установить флажок Добавить эти данные в модель данных.
4. После добавления таблиц в модель данных перейдите к списку полей сводной таблицы и выберите переключатель ВСЕ. В списке полей появятся два диапазона, соответствующие таблицам данных (рис. 4).
Рис. 4. В списке полей сводной таблицы выберите параметр ВСЕ, чтобы получить доступ ко всем таблицам, находящимся в модели данных
5. Создайте сводную таблицу обычным образом. В новой таблице поле Должность появится в области СТРОКИ, а поле Сумма по столбцу Объем продаж — в области ЗНАЧЕНИЯ. Программа тут же распознает, что используются две таблицы из модели данных, и предлагает создать связь между ними (рис. 5). Щелкните на кнопке Создать.
Рис. 5. Выберите создание связи между таблицами после отображения соответствующего запроса
6. На экране появится диалоговое окно Создание связи (рис. 6). В этом окне можно выбрать таблицы и поля, для которых создается связь. На этом рисунке показана таблица Заказы с полем Код сотрудника. Эта таблица связана с таблицей Сотрудники с помощью поля Код сотрудника.
Рис. 6. Создайте подходящую связь, используя раскрывающиеся списки
7. После создания связи можно использовать данные из двух таблиц для отображения требуемых результатов. Применение модели данных проиллюстрировано на рис. 7.
Рис. 7. Отображение объема продаж по должностям сотрудников
Первичные ключи. Обратите внимание на рис. 6 на раскрывающийся список Связанный столбец (первичный ключ). Это означает, что модель данных использует поле, относящееся к связанной таблице, в качестве первичного ключа. Первичный ключ — это поле, содержащее лишь уникальные ненулевые значения (без дубликатов и пустых значений). Первичные ключи применяются в модели данных в целях предотвращения ошибок суммирования и дубликатов. В каждой связи должен быть хотя бы один первичный ключ. Поскольку поле Код сотрудника, находящееся в таблице Сотрудники, является первичным ключом, оно должно включать только уникальные значения (без пробелов и нулевых значений). Первичный ключ обеспечивает единственный способ сохранения целостности данных при объединении нескольких таблиц.
Управление связями в модели данных
После включения таблиц во внутреннюю модель данных может потребоваться настройка связей, установленных между ними. Чтобы изменить связи модели данных, отобразите диалоговое окно Управление связями. Для этого выберите вкладку ленты Данные и в области Работа с данными щелкните на кнопке Отношения. Требуемое окно появится на экране (рис. 8).
Рис. 8. В диалоговом окне Управление связями можно изменить связи, заданные в модели данных
В этом окне доступны следующие команды, применяемые для изменения связей между таблицами:
- Создать. Создание новой связи между таблицами модели данных.
- Изменить. Изменение выделенной связи.
- Активировать. Активизация выбранной связи, вследствие чего Excel будет рассматривать данную связь при агрегировании и анализе данных в модели.
- Деактивировать. Отключение выбранной связи. Это приведет к тому, что Excel будет игнорировать связь при агрегировании и анализе данных в модели.
- Удалить. Удаление выбранной связи.
Добавление новой таблицы в модель данных. Чтобы добавить новую таблицу в модель данных, воспользуйтесь одним из следующих двух способов.
Во-первых, можно создать сводную таблицу на основе новой Таблицы данных (в нашем примере – Местоположения). В окне создания сводной таблицы установите флажок Добавить эти данные в модель данных. Excel добавит Таблицу в модель данных и создаст сводную таблицу. После добавления сводной таблицы можно открыть диалоговое окно Управление связями и создать нужные связи.
Второй (и более гибкий) способ заключается в том, чтобы создать таблицу вручную и добавить ее в модель данных. Выполните следующие действия.
1. Если вы еще не создали Таблицу, поместите курсор в таблицу данных (лист ExcelМестоположения, любую ячейку в диапазоне А1:С55), перейдите на вкладку Вставка щелкните на кнопке Таблица (рис. 9). Можно, встав в ячейку таблицы данных, нажать Ctrl+T. На экране появится диалоговое окно (рис. 10), в котором задается диапазон данных. Нажмите Ok. Программа преобразует этот диапазон в Таблицу, которая может распознаваться внутренней моделью данных.
Рис. 9. Создание Таблицы на основе исходных данных
Рис. 10. Преобразование диапазона в таблицу
2. На контекстной вкладке Работа с таблицами → Конструктор, измените значение поля Имя таблицы, выбрав легко запоминаемое имя; в нашем примере – Отделения.
3. Перейдите на вкладку ленты Данные и в области Подключения щелкните на кнопке Подключения. На экране появится диалоговое окно Подключения к книге (рис. 11). Щелкните на стрелке раскрывающегося списка, находящейся справа от кнопки Добавить, и выберите пункт Добавить в модель данных.
Рис. 11. Откройте диалоговое окно Подключения к книге и выберите пункт меню Добавить в модель данных
4. На экране появится диалоговое окно Существующие подключения (рис. 12). Перейдите на вкладку Таблицы и выделите только что созданную Таблицу. Щелкните на кнопке Открыть, чтобы добавить выбранную таблицу в модель данных.
Рис. 12. В окне Существующие подключения перейдите на вкладку Таблицы, выделите только что созданную Таблицу и щелкните Открыть
5. Все сводные таблицы, созданные на основе модели данных, обновляются с учетом добавления новой таблицы. Не забудьте открыть диалоговое окно Управление связями и создать требуемую связь.
Удаление таблицы из модели данных. Иногда возникает необходимость в удалении Таблицы или источника из модели данных. Чтобы выполнить эту задачу, выберите вкладку ленты Данные и щелкните на кнопке Подключения. На экране появится диалоговое окно Подключения к книге (рис. 13). Выберите таблицу, а затем кликните на кнопке Удалить.
Рис. 13. С помощью окна Подключения к книге можно удалить любую таблицу из внутренней модели данных
Создание новой сводной таблицы с помощью модели данных. Иногда приходится создавать сводные таблицы «с нуля», используя в качестве источника данных существующую внутреннюю модель данных. Для этого выполните следующие действия.
1. Выполните команду Вставка → Сводная таблица. Отобразится диалоговое окно Создание сводной таблицы. Установите флажок Использовать внешний источник данных (рис. 14), и щелкните на кнопке Выбрать подключение.
Рис. 14. Окно Создание сводной таблицы
2. На экране появится диалоговое окно Существующие подключения (рис. 15). На вкладке Таблицы выберите параметр Таблицы в модели данных книги и щелкните на кнопке Открыть.
Рис. 15. Окно Существующие подключения
3. Вы вернитесь обратно в диалоговое окно Создание сводной таблицы. Щелкните ОК.
4. Если создание сводной таблицы завершилось удачно, появится панель области задач Поля сводной таблицы, отображающая все таблицы, включенные во внутреннюю модель данных (рис. 16).
Рис. 16. После успешного завершения создания сводной таблицы отображаются все таблицы, относящиеся к модели данных
Ограничения внутренней модели данных
Как и все остальное в Excel, внутренняя модель данных имеет определенные ограничения:
[1] Заметка написана на основе книги Джелен, Александер. Сводные таблицы в Microsoft Excel 2013. Глава 7.
TL;DR
Двунаправленные связи в модели данных Power BI и Analysis Services позволяют эффективно решать некоторые проблемы анализа, но могут приводить к неоднозначности – ситуации, когда между таблицами существует более одного пути фильтрации. В таком случае движок DAX пытается при помощи сложного алгоритма выбрать наиболее подходящий путь, и результаты могут оказаться весьма неожиданными для разработчика.
Знание некоторых особенностей работы алгоритма позволяет получать предсказуемые результаты при помощи функций управления связями USERELATIONSHIP и CROSSFILTER.
В этой статье рассмотрю сразу два аспекта работы алгоритма, описание которых не встречалось мне ранее:
- Одно из правил выбора пути фильтрации при наличии двунаправленных связей
- Влияние этого правила на работу функции USERELATIONSHIP
Проблема двунаправленных связей
В первые несколько лет после запуска Power BI двунаправленные связи создавались в модели данных по умолчанию. Наверное, кто-то в Microsoft решил, что такая фишка будет очень удобна начинающим пользователям, создающим простые модели-звездочки с минимумом таблиц и связей между ними. Но, в конце концов, это стало приводить к нарастающему валу вопросов о «странных» результатах вычислений, и от двунаправленных связей «по умолчанию» было решено отказаться, ко всеобщему благу.
Лучше всего сложности, связанные с двунаправленными связями, описаны в статьях Альберто Феррари и Марко Руссо на сайте sqlbi.com, а также в их книге «Подробное руководство по DAX». Например, вот такая статья «Bidirectional relationships and ambiguity in DAX» и сопутствующее ей видео прекрасно показывают суть проблемы (рекомендую ее прочесть, хотя бы при помощи онлайн-переводчика, перед тем, как двигаться дальше).
Попробую вкратце сформулировать эту проблему так:
- Когда связи между таблицами однонаправленные «Один-ко-Многим» (фильтрация всегда движется от стороны связи «Один» к стороне связи «Много»), то такие модели данных обычно не вызывают проблем.
- Ситуацию осложняют двунаправленные связи: вполне возможна ситуация, когда фильтрация от одной таблицы к другой может пройти разными путями (неоднозначность связей).
- За выбор пути фильтрации в случае неоднозначности отвечает движок DAX, который руководствуется сложной системой правил для определения приоритетного пути.
- В некоторых случаях мы можем помочь движку определить необходимый путь фильтрации, используя функции USERELATIONSHIP и CROSSFILTER в мерах.
- Если у движка не получается однозначно определить путь, то во время создания связи (или же во время выполнения расчетов) возникает ошибка.
В своей статье Феррари пишет, что алгоритм, который внутри движка DAX решает проблемы неоднозначности, слишком сложный, чтобы его можно было объяснить «на пальцах». Это действительно так, и мне пришлось недавно столкнуться с этим в рабочем проекте. Это «столкновение» подвигло меня на некоторые исследования, которые привели к удивительным выводам.
Два активных пути между таблицами
Для иллюстрации проблемы я сначала возьму один из демонстрационных файлов к главе 15 книги «Подробное руководство по DAX». В этом файле представлена супер-упрощенная модель данных, иллюстрирующая следующую бизнес-проблему:
- Учет транзакций ведется в разрезе счетов в таблице
'Transactions'
. - Клиент (таблица
'Customers'
) может управлять несколькими счетами (таблица'Accounts'
), и у одного счёта может быть несколько владельцев. - Для связи клиентов со счетами в таком случае используется таблица-мост
'AccountsCustomers'
, которая содержит в себе пары значенийAccountKey
–CustomerKey
Чтобы мы могли в такой модели ответить на вопрос: «Какой оборот по счетам каждого клиента?», мы должны сделать двунаправленной связь между таблицей-мостом 'AccountsCustomers'
и таблицей 'Accounts'
, таким образом, чтобы фильтр от таблицы 'Customers'
мог добраться до таблицы 'Transactions'
.
Мы можем включить двустороннюю фильтрацию двумя способами:
- Изменив направление кросс-фильтрации между
'AccountsCustomers'
и'Accounts'
на двунаправленное в свойствах связи в модели (как на рисунке), и используя простую меру суммирования по столбцу:
SumOfAmt =
SUM ( Transactions[Amount] )
- Используя в мере функцию
CROSSFILTER
с третьим аргументомBoth
:
SumOfAmt CF =
CALCULATE (
SUM ( Transactions[Amount] ),
CROSSFILTER ( Accounts[AccountKey], AccountsCustomers[AccountKey], BOTH )
)
Оба способа дают нам ответ на поставленный выше вопрос:
Так, у клиента Mark суммарный оборот по его двум счетам составил 2800 (800 по личному счету «Mark» и по 1000 по совместно управляемым счетам «Mark-Paul» и «Mark-Robert»).
В этой модели нет видимой неоднозначности связей – единственный путь от 'Customers'
до 'Transactions'
не создает альтернатив.
Чтобы создать ситуацию неоднозначности, я немного модифицировал эту упрощенную модель, добавив еще две таблицы:
'Agreements'
– справочник договоров, заключенных с клиентами. У одного клиента может быть несколько договоров.'Addendums'
– справочник дополнительных соглашений к договорам. У одного договора может быть несколько дополнительных соглашений.
Также я добавил в таблицу 'Transactions'
еще один столбец Transactions[AddendumKey]
, который позволяет определить, в соответствии с каким из дополнительных соглашений была проведена транзакция. Теперь в этой таблице одна строка показывает операцию и в разрезе счёта Transactions[AccountKey]
, и в разрезе допсоглашения Transactions[AddendumKey]
.
В итоге модель приобрела вот такой вид:
Этот пример не является отражением лучших практик организации модели, я сделал его таким сознательно с единственной целью – продемонстрировать поведение связей.
Теперь между таблицами 'Customers'
и 'Transactions'
есть два активных пути – через 'Accounts'
и через 'Addendums'
, и связи в модели очевидно неоднозначные. Попробуйте предположить, не заглядывая вперед, по какому же из путей пойдет фильтрация в данном случае?
Если мы теперь посмотрим на результаты расчетов нашей меры [SumOfAmt]
, то можем увидеть следующую картину:
Таблица справа создана в новой модели данных и уже не отвечает на вопрос, поставленный ранее: «Какой оборот по счетам клиента?» Сейчас данные в ней отвечают уже на другой вопрос, который, скорее всего, звучит так: «Какой оборот по счетам клиента с учетом допсоглашений к договорам?»
Очевидно, что в этом случае в действие вступила связь через таблицы 'Agreements'
и 'Addendums'
: несмотря на то, что некоторыми счетами управляют сразу два клиента («Mark-Robert» и «Mark-Paul»), таблица теперь показывает суммы только по допсоглашениям конкретных клиентов. Так, у клиента Mark оборот теперь показывается только по счетам Mark и Mark-Robert, так как операция на 1000 по счету Mark-Paul была проведена по договору клиента Paul. Аналогичная история произошла с оборотами клиента Robert.
Как же понять, почему движком был выбран именно этот путь?
Мы можем увидеть, что эти два активных пути распространения фильтра от 'Customers'
имеют одно очень важное отличие: в «верхнем» пути (через 'Accounts'
) у нас присутствует двунаправленная связь «Многие-к-Одному» между 'AccountsCustomers'
и 'Accounts'
, в то время как в «нижнем» все связи однонаправленные. «Верхний» путь явно проиграл «нижнему» (через 'Addendums'
) в борьбе за приоритет.
Анализ этой модели и дополнительные изыскания позволили мне сделать вывод о существовании Правила, который подтвердил один из создателей DAX Джеффри Вэнг (Jeffrey Wang):
Путь, в котором фильтрация всегда распространяется только от стороны «Один», будет приоритетнее пути, в котором встречается распространение связи от стороны «Много»
При этом:
- Важна именно кардинальность связи на той стороне, откуда распространяется фильтр. Например, двунаправленная связь «Один-ко-Многим» при распространении фильтра со стороны «Один» будут приоритетнее двунаправленной связи «Один-ко-Многим», в которой фильтр распространяется со стороны «Много».
- Место, где встречается распространение фильтра от стороны «Много», может быть где угодно в цепочке связей, не обязательно первым на пути следования фильтра.
В нашей модели фильтр от таблицы 'Customers'
, проходя по связи между 'AccountsCustomers'
и 'Accounts'
, как раз и сталкивается с такой ситуацией – он должен фильтровать таблицу 'Accounts'
в направлении от «Много» к «Один». Анализатор связей в таком случае понижает «вес» такой связи, и движок выбирает тот путь, где такие ситуации не встречаются, т.е. путь через 'Addendums'
.
Для того, чтобы наша модель и в этом случае позволила нам получить такой же результат, как и ранее (оборот по счетам клиента без учета допсоглашений), мы должны задействовать отключение одной из связей на «нижнем» пути (например, связи между 'Addendums'
и 'Transactions
‘) при помощи функции CROSSFILTER и ее 3-го аргумента :
SumSumOfAmt Old Path =
CALCULATE (
[SumOfAmt],
CROSSFILTER ( Transactions[AddendumKey], Addendums[AddendumKey], NONE )
)
Мы знаем, что фунцкия USERELATIONSHIP позволяет нам выбирать, по какой из связей между двумя таблицами должна идти фильтрация. Можем ли мы использовать эту функцию для получения нужного результата в нашей модели?
Давайте попробуем сделать неактивной одну из связей на «верхнем» пути (например, между таблицами 'AccountsCustomers'
и 'Accounts'
), и затем активируем ее при помощи функции USERELATIONSHIP:
SumOfAmtUR =
CALCULATE (
[SumOfAmt],
USERELATIONSHIP ( AccountsCustomers[AccountKey], Accounts[AccountKey] )
)
Как видите, активация связи при помощи USERELATIONSHIP не привела ни к каким изменениям в нашем расчете – фильтрация по-прежнему идет по «нижнему» пути:
В общем-то, трудно было ожидать изменения в данном случае:
- При неактивной связи фильтр шел по нижнему пути – другого выбора у него не было.
- USERELATIONSHIP просто активировала отключенную связь «верхнего» пути.
- Так как никаких изменений в отношении пути между
'Customers'
и'Transactions'
через'Addendums'
сделано не было, второй («нижний») путь по-прежнему приоритетен для движка, в соответствии с выведенным нами Правилом.
Таким образом, подводя промежуточный итог, можно сделать следующие выводы:
- Если вы хотите задействовать определенный путь фильтрации между двумя таблицами, старайтесь избежать неоднозначности в связях модели.
- Если требования модели данных не позволяют избавиться от неоднозначности, используйте функцию CROSSFILTER для изменения направления кросс-фильтрации связей или их отключения.
Казалось бы – всё на этом, мы разобрались? Отнюдь.
USERELATIONSHIP и выбор единственной связи между таблицами
Следующий пример я сделал на основе реальной задачи анализа взаимосвязей между документами в Dynamics 365 Finance & Operations (AXAPTA). Как правило, в подобных ей ERP-системах существуют сложные системы отношений, которые не всегда (даже в рамках узконаправленного проекта) можно денормализовать до простой схемы «звезда» или «снежинка».
Пусть в нашей модели есть две таблицы:
- справочник
'Entries'
, содержащий в себе ссылки на два разных типа документов: на расходный документ в одном столбце и на приходный документ в другом. Столбец расходных документовEntries[Issue]
всегда заполнен уникальными значениями кодов документов, а в столбце приходных документовEntries[Receipt]
могут встречаться незаполненные значения. 'Documents'
, содержащий в себе уникальный список документов всех видов и дополнительную информацию, которую нам нужно проанализировать.
В модели также присутствуют и другие таблицы. Наша задача – построить связи таким образом, чтобы, приходя по связям из других таблиц, фильтрующих таблицу ‘Entries’, получить из таблицы 'Documents'
значения, соответствующие либо расходному, либо приходному документу. Иными словами, фильтр должен распространяться от таблицы 'Entries'
к таблице 'Documents'
в двух вариантах:
- от
Entries[Issue]
кDocuments[DocumentID]
- от
Entries[Receipt]
кDocuments[DocumentID]
Когда мы будем создавать первую связь в Power BI, движок проанализирует кардинальность столбцов с обеих сторон и, убедившись, что все значения в столбцах связи уникальные, автоматически создаст связь «Один-к-Одному»:
Неизменяемая двунаправленность этой связи нас вполне устраивает – фильтр вполне может проходить от 'Entries'
к 'Documents'
, и наша задача будет отчасти решена.
Вторую связь (от Entries[Receipt]
к Documents[DocumentID]
) мы не можем сделать такой же «Один-к-Одному», так как наличие пустых значений в столбце Entries[Receipt]
уже свидетельствует о неуникальности значений в нем. Поэтому движок автоматически предложит нам неактивную однонаправленную связь «Многие-к-Одному». Направление кросс-фильтрации от 'Documents'
к 'Entries'
нас не устраивает – нам надо наоборот. Это легко поправимо – в свойствах связи мы можем установить двунаправленную кросс-фильтрацию:
Чтобы получить нужный нам результат, создадим две меры – одна для вычисления суммы по приходным документам, другая – по расходным:
SumOfIssues =
SUM ( Documents[Value] )
SumOfReceipts =
CALCULATE (
SUM ( Documents[Value] ),
USERELATIONSHIP ( Documents[DocumentID], Entries[Receipt] )
)
Мы ожидаем, что первая мера покажет нам суммы по расходным документам (связь по умолчанию), а вторая покажет суммы по приходным (за счет активации второй связи). Однако результат далёк от ожидаемого:
В таблице слева мы получили то, что и должны были – для каждого расходного документа посчитана его сумма, а те документы, которые не нашлись в таблице 'Entries'
, сгруппировались в пустое значение. Это стандартное поведение.
А вот в правой таблице произошло что-то странное. Если мы еще раз посмотрим на исходные данные, то заметим, что документу E должно соответствовать значение 16, а для F мы должны получить 32. Но мы по-прежнему получили значения для спаренных с E и F расходных документов В и С.
Несмотря на то, что мы активировали связь от столбца Entries[Receipt]
, движок проигнорировал наш запрос и по-прежнему считает по первой связи – от Entries[Issue]
. Это очень странно, неправда ли?
Давайте вспомним, что мы (думаем что) знаем о связях в таком случае:
- Между двумя таблицами может быть только одна активная прямая связь (что вполне логично).
- Когда мы используем USERELATIONSHIP для активации отключенной связи между таблицами, другие прямые связи между этими двумя таблицами перестают действовать (тоже логично, иначе противоречило бы пункту 1).
Эти два пункта на самом деле работают в абсолютном большинстве случаев (а в Power Pivot на настоящий момент – наверное, в 100% случаев). Но здесь что-то пошло не так…
Чтобы не ходить вокруг да около, я просто еще раз приведу здесь то Правило, которое мы вывели ранее в этой статье:
Путь, в котором фильтрация всегда распространяется только от стороны «Один», будет приоритетнее пути, в котором встречается распространение связи от стороны «Много»
Но почему оно сработало здесь? Ведь у нас нет двух активных путей между таблицами, а активация второй связи при помощи USERELATIONSHIP должна была отключить активную связь «Один-к-Одному» по столбцу Entries[Issue]
– ведь так всегда происходит?
Я потратил на изучение этой проблемы много часов, анализируя модель, запросы, планы запросов, мучая коллег и знакомых, и, в конце концов, разработчиков Power BI. Делал я это не из праздного любопытства – приведенный пример был частью большой «боевой» модели данных, с которой я работал. В конце концов Джеффри Вэнг дал мне комментарий, который позволил пролить свет на происходящее.
Итак, приготовьтесь:
- При использовании USERELATIONSHIP происходит не буквально «активация одной связи и деактивация другой», а, скорее, увеличение приоритета (веса) неактивной связи над активной на время расчета меры.
- Таким образом, в обычной ситуации неактивная связь временно получает более высокий приоритет, чем активная, и распространение фильтрации идет уже по новому пути.
- Однако, указанное выше правило в данном случае берет верх и расставляет приоритеты по-своему: так как неактивная связь использует фильтрацию от «Много» к «Один», ее приоритет ниже, чем приоритет связи от «Один» к «Много» (связь «Один-к-Одному» здесь трактуется так же).
Сдвиг парадигмы, неправда ли?
Вы можете расценивать такое поведение как баг, как это склонен был оценивать и я – ведь это противоречит нашим представлениям о прямых связях между таблицами. Но, в данном случае, это проблема актуальности наших представлений об окружающем мире.
Система приоритетов связей была введена в целях корректной обработки сложных формул с многими «нанизанными» друг на друга (или вложенными) USERELATIONSHIP, и это очень интересное решение, которое, однако, привело к вот такому столкновению с алгоритмом обработки неоднозначных связей.
Джеффри назвал это поведение «непоследовательностью», и, по зрелому размышлению, я с ним скорее соглашусь: да, не так, как в других случаях, но это то самое «исключение из правил». Очень маловероятно, что это будет изменено, так как может затронуть большое количество работающих моделей. И, опять же, жаль, что это нигде не было описано до сих пор. Но теперь у вас это знание есть 😊
Что же делать в таком случае – как победить правило и получить требуемый результат?
На самом деле – довольно просто, и для этого есть даже не одно решение:
- Мы можем использовать в нашей мере в дополнение к USERELATIONSHIP функцию CROSSFILTER, отключающую связь «Один-к-Одному»:
SumOfReceipts CF =
CALCULATE (
SUM ( Documents[Value] ),
USERELATIONSHIP ( Documents[DocumentID], Entries[Receipt] ),
CROSSFILTER ( Documents[DocumentID], Entries[Issue], NONE )
)
- Мы можем изменить кардинальность активной связи от
Entries[Issue]
кDocuments[DocumentID]
на двунаправленную «Многие-к-Одному». Тогда правило определения приоритета столкнется с двумя однотипными связями и ничего не будет делать, оставив право определения приоритета за USERELATIONSHIP
В обоих случаях мы получим нужный результат – фильтрация заработает так, как нам нужно:
Ну и, конечно, мы можем использовать любые варианты виртуальных связей на основе TREATAS, INTERSECT и так далее – с учетом всех связанных с ними нюансов.
В заключение хочу привести еще одну цитату из статьи Альберто Феррари:
The fun part is not in analyzing the numbers; the fun part lies in finding the path that DAX had to discover within the maze to find the exit.
Действительно, DAX нам всегда что-то посчитает (в крайнем случае, выдаст ошибку, если мы грубо ошибемся), но мы должны понимать, что же именно он посчитал. А знание – сила!
Вы можете скачать файл с примерами к данной статье здесь:
Follow me:
Share this:
Excel может анализировать данные из многих источников. Но используете ли вы модель данных, чтобы облегчить себе жизнь? В этом посте вы узнаете, как создать сводную таблицу с использованием двух таблиц с помощью функции модели данных в Excel.
Оглавление
- Что такое модель данных
- Простая задача
- Преимущества модели данных
- Добавить данные в модель данных
- Создание отношений между данными
- Использование модели данных
Содержание
- Что такое модель данных
- Простая задача
- Преимущества модели данных
- Добавить данные в модель данных
- Создание отношений между данными
- Использование модели данных
- Анализировать в Excel – Модель данных отсутствует в Excel – Сообщество Microsoft Power BI
Что такое модель данных
Модель данных Excel позволяет загружать данные (например, таблицы) в память Excel. Он сохраняется в памяти, где вы его не видите. Затем вы можете указать Excel связать данные друг с другом с помощью общего столбца. Часть «Модель» модели данных относится к тому, как все таблицы соотносятся друг с другом.
Старая школа Excel Pro, используйте формулы для создания огромной таблицы, содержащей все данные для анализа. Им нужна эта большая таблица, чтобы сводные таблицы могли служить источником единой таблицы. Тем не менее, создавая отношения, вы избавляетесь от необходимости использовать формулы ВПР, СУММЕСЛИ, ИНДЕКС-ПОИСКПОЗ. Другими словами, вам не нужно собирать все столбцы в одной таблице. Через отношения модель данных может получить доступ ко всей необходимой информации. Даже если он находится в нескольких местах или за таблицами. После создания модели данных Excel сохраняет данные в своей памяти. И, имея его в своей памяти, вы можете получить доступ к данным по-новому. Например, вы можете начать использовать несколько таблиц в одной сводной таблице.
Простая задача
Представьте, что ваш босс хочет иметь представление о продажах, но также хочет знать пол продавца. Ниже представлен набор данных, содержащий одну таблицу с продажами на человека и другую таблицу, содержащую продавцов и их пол. Чтобы проанализировать ваши данные, используйте формулу ПРОСМОТР и составьте большую таблицу, содержащую всю информацию. На следующем этапе вы можете использовать сводную таблицу для суммирования данных по полу.
Преимущества модели данных
Метод And before отлично подходит, когда вы работаете с очень небольшим количеством данных. Тем не менее, у использования функции модели данных в Excel есть преимущества. Вот некоторые преимущества:
- Проверка и обновление формул может быть произвольной при работе с большим количеством таблиц. В конце концов, вам нужно убедиться, что все формулы заполнены до нужной ячейки. И после добавления новых столбцов формулы LOOKUP также необходимо расширить. Модель данных требует совсем немного времени при настройке , чтобы связать таблицу. При настройке используется общий столбец. Однако столбцы, которые вы добавляете позже, автоматически добавляются в модель данных.
- Работа с большими объемами данных часто приводит к очень медленной работе листа из-за вычислений.. Однако модель данных корректно обрабатывает большие объемы данных , не замедляя работу вашей компьютерной системы.
- Excel 2016 имеет ограничение в 1,048,576 строк. Однако количество строк, которые вы можете добавить в память модели данных, практически не ограничено . В 64-битной среде нет жестких ограничений на размер файла. Размер книги ограничен только доступной памятью и системными ресурсами.
- Если ваши данные находятся только в вашей модели данных, вы значительно сэкономите на размере файла .
Добавить данные в модель данных
Теперь вы узнаете, как добавлять таблицы в модель данных. Для начала убедитесь, что ваши данные находятся в таблице. Используя Power Query, вы можете легко загружать таблицы в модель данных.
- Щелкните вкладку Данные -> Щелкните ячейку в нужной таблице для импорта
- Выберите Из таблицы/диапазона
На главной вкладке редактора Power Query
- Выберите Close & Load -> затем Закрыть и загрузить в…
- Выберите Только создать соединение .
- Обязательно установите флажок Добавить эти данные в модель данных
Это добавляет данные в модель данных. Обязательно выполните эти действия для обеих таблиц .
Создание отношений между данными
После добавления данных в модель данных вы можете связать общие столбцы друг с другом. Чтобы создать связи между таблицами:
- Перейдите на вкладку Данные -> выберите Управление моделью данных
Откроется экран Power Pivot.
- Щелкните Представление диаграммы. Это дает вам обзор всех таблиц в модели данных.
- Затем свяжите общий столбец “Продавец” в первая таблица, со столбцом «Продавец» во второй таблице. Вы можете сделать это, щелкнув и перетащив один столбец на другой. Должна появиться связь.
Примечание : Когда вы устанавливаете связь между двумя столбцами, обычно в одном из столбцов указываются уникальные значения. Это называется отношением один-ко-многим . Наличие дубликатов с обеих сторон может привести к ошибке. Для сложных вычислений могут существовать отношения многие-ко-многим (например, в Power BI). Однако это слишком сложная задача, чтобы описать ее в этой статье. Если вас интересуют эти темы, обязательно исследуйте «Отношения« многие ко многим ».
Использование модели данных
Теперь мы подошли к самому интересному.. Чтобы использовать модель данных в сводной таблице, выполните следующие действия:
- Перейдите на вкладку Вставить -> нажмите Pivot Таблица
Появится всплывающий экран «Создать сводную таблицу». Поскольку у вас есть модель данных, теперь вы можете выбрать использование ее в качестве источника данных.
- Нажмите Использовать модель данных этой книги
Теперь в полях сводной таблицы вы увидите все возможные источники данных для вашей сводной таблицы. Желтый значок базы данных в правом нижнем углу отмеченных таблиц показывает, что она является частью модели данных Excel.
Поскольку две таблицы связаны друг с другом, вы можете использовать поля из обеих таблиц в одной сводной таблице! Прочтите предыдущее предложение еще раз. Разве это не потрясающе ?? В примере ниже используются поля «Продажи» и «Продавец» из таблицы ProductSales, а поле «Пол» – из другой таблицы. И цифры по-прежнему верны!
Используя модель данных, вы можете анализировать данные из нескольких таблиц одновременно . И все это без использования формул ПРОСМОТР, СУММЕСЛИ или ИНДЕКС ПОИСКПОЗ для выравнивания исходной таблицы. Тем не менее, анализируемые данные также могут поступать из базы данных, текстового файла или облачного хранилища. Возможности безграничны.
Чтобы еще больше свести к минимуму использование формул LOOKUP, обратите внимание на Power Query. На моем сайте есть несколько статей об этом. Например, вы можете прочитать, как использовать Power Query для создания уникальных комбинаций или для преобразования столбцов с накоплением .
Я произвел некоторые преобразования и добавил еще несколько столбцов в свою модель данных.
Теперь мне нужно экспортировать эти данные в файл CSV из модели данных, как мне сделать это, Рик? У меня 7,5 миллионов записей.
Ответ
Привет, Рик! – Спасибо, что поделились!
У меня к вам вопрос, надеюсь, вы сможете ответить:
У меня есть файл CSV с 2 мил. строки (записи GL с транзакциями за каждый день). Я использую Power Query для подключения к файлу и добавления в Datamodel.
Если я ничего не сделаю, Datamodel должен обработать 2 миллиона. строк.
Если я сделаю группировку с агрегированием суммы в месяц в Power Query, тогда будет только 80 тысяч строк.
Будет ли это преимуществом, сделайте это быстрее в модели данных , чтобы использовать PowerQuery для такого агрегирования?
Ответ
Привет, Рик, спасибо за ответ. На данный момент я только пытаюсь создать информационный список. Хотя я понял это; когда я объединяю их в Power Query, он определяет уникальный ключ цветового кода и дает мне то, что я ищу. Большое спасибо!
Ответ
У меня есть 5 списков в Sharepoint на основе производственных частей, которые я хочу использовать в модели данных (сначала попробуйте это).
Я только начинаю с двух из них: «Основные части» и «Цветовые коды».. Я подтвердил, что столбец «Цветовой код» в списке «Цветовые коды» уникален (2000 уникальных кодов). В списке «Основные детали» около 1800 номеров деталей. Объединение происходит по «Цветовому коду», который есть в каждом списке. Когда я пытаюсь извлечь описание цвета из списка цветовых кодов, я получаю сообщение о том, что отчет сводной таблицы не помещается на листе – он пытается назначить каждый цветовой код каждому отдельному номеру детали, как будто нет реляционной связи между Столбцы цветового кода в каждом списке, но они явно есть в моей модели данных. Какие-либо предложения? На первом этапе кажется очевидным, что…
Ответ
Привет, Рик,
Ваша статья ясна, проста и легка для понимания.
Я прочитал много статей о модели данных и Power Pivot, но ваша статья действительно проста.
У меня к вам вопрос.
Я создал панель мониторинга в формате xlsb и вставил множество срезов, сводных таблиц и графики.
Две таблицы, из которых берутся данные, состоят из 200 тыс. строк, но они всегда растут неделя за неделей.
Каждую неделю мне приходится преобразовывать данные в таблицы, потому что источники таких данные разные (SAP, Coupa), и, кроме того, я вношу в них некоторые дополнительные изменения.
Теперь я заметил, что время загрузки модели данных слишком сильно увеличивается, и я ищу способ сделать запросы быстрее.
Я сохранил файл как xlsb. Я также удалил исходные данные (изначально я помещал таблицы в тот же файл, что и панель мониторинга на разных листах): после обновления исходных данных и обновления панели мониторинга я использую для удаления листов, на которых были исходные данные, чтобы уменьшить размер файла. На данный момент размер файла составляет 20 МБ (xlsb).
Основная проблема – время для загрузки модели данных. Все еще слишком много.
Я еще не использовал power query/pivot, потому что эта панель инструментов используется многими пользователями, и, если я хорошо помню, всем им следует активировать эту функцию, чтобы панель работала нормально. Это может быть очень сложно управлять.
Я уже пытался не использовать функции.
Исходный источник данных с множеством столбцов и все функции в нем сохранены в другом файле. Затем я помещаю в тот же файл, где находится панель управления, но на другом листе, только те столбцы, которые мне действительно нужны для работы.
Как сказано выше, после обновления сводных таблиц и графиков я удаляю исходные данные (сохраненные в другом файле Excel).
Итак, есть ли у вас предложения, чтобы ускорить запросы?
Спасибо,
Майкл
Ответить
Привет, Рик. Спасибо за то, что уделили время написанию этого.
Итак, я в основном застрял на том факте, что у меня есть рабочая книга, которая добавляет и вычисляет столбцы и меры.
Теперь … я хочу используйте эту модель данных в ДРУГОМ файле excel. Соединение должно обновляться автоматически, поскольку оба файла находятся на Sharepoint.
Мой вопрос заключается в том, могу ли я использовать вычисляемые столбцы и проводить измерения из одной «пустой» книги (модель данных) в другой книге, поэтому я можно создать там новую сводную таблицу.
Есть шансы?
Спасибо,
Сантьяго из Перу
Ответ
Привет, Рик,
Надеюсь, ты поможешь с моим вопросом. У меня есть данные, которые повторяются через годы. Я отметил это стрелкой на картинке. Вот ссылки на файл Excel.
https://www.dropbox.com/scl/fi/1xxmqyb9a0vwpj00mfkgj/Sample.xlsx?dl=0&rlkey=n2zc09cvc7gzxgv0p3g9kwi70
https://www.dropbox.com/s/hpcmtf6q1rfehwl/Capture.PNG?dl=0
https://www.dropbox.com/s/418zg5uupy6g3wj/Capture2.PNG? dl = 0
Стоимость печати должна быть указана только за один год, а не за три года. Все остальные данные верны: гонорар тренера, гонорар эксперта, плата за номер и плата за питание и питание.
Спасибо,
K
Ответить
У меня есть информационная панель, заполненная сводными таблицами, которые заполняются моделью данных. Я хочу включить срезы для фильтрации данных. Если я затем отправлю файл кому-то, у кого нет доступа к исходному источнику данных, будут ли срезы работать для этого человека? Или они получат ошибку, потому что Excel и модель данных больше не могут найти источник данных? (Я знаю, что они не могут обновить модель данных, я просто беспокоюсь о просмотре того, что я уже заполнил, прежде чем отправлять им)
Ответ
не работает для меня! В модели данных все дублируется между двумя таблицами! Итак, у меня есть 99 единичных строк в таблице 1 и 99 уникальных строк в таблице 2, так что есть отображение 1-1. Таблица первая. Я переместил один столбец из таблицы 1 в таблицу 2 и попытался объединить два, используя модель данных, и все, что он делает, повторяет 99 полей из таблицы 2 под ключом в таблице 1 – vlookups намного проще. Кроме того, у меня возникают всевозможные проблемы с памятью, поэтому он не так хорош, как vlookups для больших наборов данных.
Ответ
Так что в основном Excel становится больше похожим на Access?
Ответить
Это было моей мыслью, когда я узнал больше об этом инструменте, особенно после того, как увидел Отношения.
Ответ
Спасибо, отличная информация
Ответ
Одна важная вещь, которая мне нравится в моделях данных, – это дополнительные функции, которые вы можете использовать в сводных таблицах, особенно «Уникальные счетчики».
Ответ
Анализировать в Excel – Модель данных отсутствует в Excel – Сообщество Microsoft Power BI
Привет всем –
I Я пытаюсь использовать «Анализировать в Excel», чтобы перенести мою модель данных Power BI в Microsoft Excel для создания отчетов для моих клиентов (которые предпочитают работать в Excel). Я успешно сохранил файл Excel с подключением pbiazure из службы Power BI и построил сводную таблицу. Однако, когда я пытаюсь щелкнуть «Управление моделью данных» в Excel, чтобы увидеть взаимосвязи (которые, как я ожидаю, будут такими же, как для рабочего стола Power BI), модель данных не отображается и остается пустой.
Кто-нибудь знает, почему это так? В случае, если он напрямую подключен к набору данных в службе Power BI, я предполагаю, что он сможет отображать и редактировать модель данных непосредственно в Excel..
Может ли кто-нибудь пролить свет на то, почему отображается пустой экран без модели данных?
Привет, @ sviswan2!
Параметр «Управление моделью данных» в Excel будет отображать модель данных только при подключении источника данных в Excel. Модель данных создается автоматически при одновременном импорте двух или более таблиц из базы данных. Когда вы импортируете одну таблицу, вы можете выбрать «добавить эти данные в модель данных». См. Эту статью: Advanced Excel – модель данных
В этом выпуске «Анализировать в Excel» просто цитирует набор данных из службы power bi, а не как единый источник данных, этот набор данных взят из вашего. pbix, который включает отношения и т. д., поэтому он не будет использоваться в качестве единственного источника данных для добавления в модель данных в Excel.
Другими словами, сам набор данных был моделью, вы Вы можете управлять им на своем рабочем столе power bi, а не в Excel, чтобы воссоздать модель.
С уважением,
Инцзе Ли
Если этот пост помогает, то, пожалуйста, рассмотрите вариант “Принять его” как решение, которое поможет другим участникам быстрее его найти.
Привет @ v-yingjl –
Спасибо за пояснение, которое немного помогает понять. Поэтому, пожалуйста, поясните следующее:
1) Если модель данных не импортирована, будут ли работать все отношения между данными, которые я настроил в файле рабочего стола, когда я использую его как «Анализировать в Excel “?
2) Если я хочу добавить какую-либо связь или меру, я должен сначала сделать это на рабочем столе Power BI, опубликовать в службе, а затем он должен появиться в моем файле Excel?
спасибо!
Привет @ sviswan2,
- Да, «Анализировать в excel» цитирует набор данных в сервисе power bi, отношения сохранятся.
- Если вы хотите добавить взаимосвязь или меру, у вас есть сделать это сначала на рабочем столе power bi, затем опубликовать в сервисе и повторно использовать «Анализировать в Excel», хотя вы не можете видеть взаимосвязь и конкретную формулу меры, вы можете видеть только поля таблицы и значение меры в excel.
С уважением,
Инцзе Ли
Если этот пост поможет, пожалуйста, примите его как решение чтобы помочь другим участникам найти его быстрее.
Привет @ sviswan2,
Анализировать в Excel позволяет взаимодействовать с набором данных из Power BI, но он имеет только соединение с набором данных, он не имеет данных из модели.
Вот ссылка: https://docs.microsoft.com/en-us/power-bi/collaborate-share/service-analyze-in-excel
“Вы можете сохранить книгу Excel вы создаете с помощью набора данных Power BI, как и любую другую книгу. Однако вы не можете публиковать или импортировать книгу обратно в Power BI, потому что вы можете публиковать или импортировать в Power BI только те книги, которые имеют данные в таблицах или имеют модель данных.. Поскольку новая книга просто подключается к набору данных в Power BI , публикация или импорт в Power BI будет происходить по кругу “.
Создание связи между двумя таблицами в Excel
Смотрите также другой таблицы.: Доброе время суток нескольких таблиц в придуманы только для инструмент анализа. Подробности столбцов. Модели данных связать данные в не позволяют формировать Связи между таблицами значения. в сводную таблицу в сводной таблицеDataДругие способы создания связейСтолбеци введите имя.Примечание:Отформатируйте данные вЭ… а может сводных.Jack_Famous, пробовали как вида «один-к-одному»… И
в примере, поэтому в Power Pivot таблицу. осмысленные вычисления. в модели данных.Предположим, у вас есть вы получите уведомление перечислены месяцы, ноДанные). могут оказаться более.Убедитесь, что столбец вМы стараемся как виде таблицы или его пользователь не…? я написал - проблему я решил, опишу кратко: есть немедленно будет синхронизировать.Выделите диапазон строк иПри создании связей алгоритмНа панели уведомлений всегда модель, которая содержит о необходимости связи количество минут одинаковоеВ разделе понятными, особенно еслиНажмите кнопку одной из таблиц можно оперативнее обеспечивать
импортируйте внешние данныеJack_Famous в столбцах расположить только способ требует
список уникальных комплексовИмена таблиц представляют собой столбцов, которые вы автоматического обнаружения создает автоматически отображается сообщение продажи продукции по между таблицами, чтобы для каждого месяца.Price
-
неизвестно, какие столбцыОК имеет уникальные значения вас актуальными справочными как таблицу на: , это же шифры? много дополнительных телодвижений
-
работ (шифров); есть исключение. Если переименовать
хотите использовать в список всех возможных о необходимости установления
-
территории, и вы разобраться с полями, Нужны одинаковые значения,(Цена) нажмите использовать. Дополнительные сведения. без дубликатов. Excel материалами на вашем новый лист.
-
и есть пример,P.S. Не шифры, (сцепка формулой слоёв список, в котором таблицы в Excel, связанной таблице. связей исходя из связи при перетаскивании впоследствии импортируете демографические
выбранными в сводной указывающие на связь.Free см. в статьеПримечания о связях может создавать связи языке. Эта страницаПрисвойте каждой из только в другом видимо, а кол-во. по шифру, потом раскрывается состав работы необходимо вручную обновитьФорматирование строк и столбцов
-
значений, содержащихся в поля в область данные, чтобы узнать, таблице.В списке полей, в
(Бесплатно). Создание связи вПример. Связывание данных логики только в том переведена автоматически, поэтому
-
таблиц понятное имя: виде — нет? И макет сводной расцепление по разделителю (список слоёв) и
-
таблицу в Power как таблицы. таблицах, и ранжируетЗначения есть ли корреляцияХотя Excel может подсказать разделе «Могут потребоватьсяНайдите представлении диаграммы в операций со временем случае, если один ее текст может На вкладке РаботаАндрей VG сделать в табличном и построение сводной есть ведомость ведения Pivot.Выберите возможные связи в
-
существующей сводной таблицы между продажами и вам, когда необходима связи между таблицами»US Air Carrier Flight Power Pivot. с данными по столбец содержит уникальные содержать неточности и с таблицами щелкните: Не понял вопроса.
-
виде. Прикрепленные файлы уже по итогам) работ (в которуюСовет:Главная соответствии с их в случае, если демографическими тенденциями на связь, он не
-
нажмите DelaysВы можете узнать о рейсам авиакомпании значения. грамматические ошибки. Для Конструктор > Имя Сводная сформирована как PT_FieldsCol.png (27.65 КБ)
-
The_Prist заносятся комплексы работ Работа в учебнике Дополнительные
Дополнительные сведения о связях между таблицами в Excel
>
вероятностью. Затем Excel создает это поле не каждой территории. Так может подсказать, какие
Создатьи нажмите
связях обеих таблиц»Могут потребоваться связи между
Например, чтобы связать продажи нас важно, чтобы таблицы и введите на листе «СВОДНАЯJack_Famous
Примечания о связях
-
: а какие там с количеством и, сведения о связанныхФорматировать как таблицу только наиболее вероятную связано ни с как демографические данные таблицы и столбцы.Select и логики операций
-
таблицами» клиента с логикой эта статья была имя. КАК НАДО» насколько: , действительно больше связи? У сводной например, этажом). Так таблиц, читайте в, а затем выберите связь. Поэтому, если одним из существующих поступают из различных использовать, а такжеВ поле «Связанная таблица»(Выбрать).
-
со временем сШаг 1. Определите, какие таблицы операций со временем, вам полезна. ПросимУбедитесь, что столбец получилось настроить такое обрезать уже некуда. связи всегда просты вот…в ведомость заносятся статье Учебник: анализ стиль таблицы. Можно таблицы содержат несколько в сводной таблице источников, то их возможна ли связь выберитеПрокрутите вниз и нажмите помощью свободных данных указать в связи обе таблицы должны вас уделить пару в одной из же отображение. Хотя, Про компоновку сводной — она берет только шифры работ, данных сводной таблицы выбрать любой стиль, столбцов, которые могут полей. Однако иногда таблицы первоначально изолированы между таблицами. ЧтобыOn_Time_PerformanceSelect Query
-
на Microsoft AzureШаг 2. Найдите столбцы, которые включать дату в секунд и сообщить, таблиц имеет уникальные так и не
-
— я так исходные данные и без слоёв, т.к. с использованием модели но не забудьте использоваться в качестве связь после уведомления от остальной части получить ответы на
Пример. Связывание данных логики операций со временем с данными по рейсам авиакомпании
, а в поле(Запрос на выборку). Marketplace. Некоторые из могут быть использованы одинаковом формате (например, помогла ли она значения без дубликатов. понял смысл такого и сделал: из все…Дальше Вы просто работы считаются комплексами. данных в Excel. всегда выберите
-
ключей, некоторые связи обнаружить не удается. модели. Для интеграции свои вопросы, попробуйте
-
«Связанный столбец (первичныйНажмите кнопку этих наборов данных для создания пути 01.01.2012) и по вам, с помощью Excel может создавать дублирующего вывода. таблицы «работа» закинул крутите данные как
-
В то жеПо умолчанию связанная таблицаТаблица с заголовками могут получить более Это может произойти
-
демографических данных с сделать следующее. ключ)» —Далее очень велики, и
-
от одной таблицы крайней мере в кнопок внизу страницы. связи только вP. S. Вариант,
-
количество в значения, хотите в пределах время, 2 разных находится активного подключения,. Если таблица не
-
низкий ранг и по разным причинам. остальной частью своей
-
Если ваша модель содержитFlightDate.
-
для их загрузки к другой одной таблице (логика Для удобства также том случае, если максимально удовлетворяющий оформлению а шифр в сводной, чтобы получить шифра могут отличаться которая сохраняется между содержит заголовков, рекомендуется не будут автоматическиАлгоритм обнаружения связей зависит
-
модели вам нужно всего лишь несколько.Нажмите за разумное времяВы узнаете, существуют ли операций со временем) приводим ссылку на
-
один столбец содержит вывода на «СВОДНАЯ строки. Потом в некий анализ данных. всего 1 работой,
-
диапазон или именованный создать их сейчас. созданы даже в от внешнего ключевого будет найти столбец
-
таблиц, понятно, какиеВ поле «Таблица» выберитеГотово необходимо быстрое подключение связи, при перетаскивании должны быть перечислены
-
оригинал (на английском уникальные значения. КАК НАДО» (всего
-
строки закинул слои Но в Access то есть в
-
таблицу, содержащую значения В противном случае том случае, если столбца, имя которого в одной из из них нужноBasicCalendarUSдля импорта данных. к Интернету. полей из разных все даты только языке) .Например, чтобы связать то в двух из соответствующей таблицы. же связь «один-ко-многим» целом практически полностью
-
данных и модели — Excel будет связь является действительной. схоже с именем демографических таблиц, соответствующий использовать. Но для, а в поле При быстром подключенииЗапустите надстройку Power Pivot таблиц в список один раз вВы применяли функцию ВПР, продажи клиента с местах отметиться). Несмотря на 2 не так работает, повторять друг-друга и данных, которое управляет использовать произвольные именаЕсли алгоритм автоматического обнаружения первичного ключевого столбца. тому, который вы больших моделей вам «Столбец (чужой)» — к Интернету импорт в Microsoft Excel
-
полей сводной таблицы. столбце. чтобы переместить данные логикой операций соJack_Famous связи (работа-шифр и
-
нет? Она там такие одинаковые слои отчета. Если добавления (Столбец1, Столбец2 и предлагает связь, которая Если имена столбцов уже используете. Например, может понадобиться помощь.DateKey займет около 15 минут. и откройте окно
-
Если вам неЩелкните столбца из одной временем, обе таблицы: , я ещё слои-шифр) сводная не
-
больше для удобства нужно будет искать или удаления данных т. д.), которые не решает бизнес-задачи, недостаточно похожи, рекомендуется если демографические данные
-
Один из способов. Нажмите После выполнения вы Power Pivot. будет предложено создатьДанные
-
таблицы в другой? должны включать дату раз проверил файл-пример понимает, какие именно ведения данных и и суммировать вручную… или переименование столбцов передают не полезной
-
то необходимо удалить открыть окно Power организованы по регионам заключается в том,ОК увидите отчет оНажмите связь, то в
-
> Так как в в одинаковом формате — вы сделали
-
слои относятся к сохранения целостности оных,В примере 3 и таблиц, модели информацией о содержимом ее и создать Pivot и вручную и ваши данные
чтобы использовать представлениедля создания связи. состоянии перемещения 2 427 284Получение внешних данных Excel уже есть
Отношения Excel теперь есть (например, 01.01.2012) и как на вкладке этому шифру, а а не для таблички и сводная данных будет автоматически столбца.
-
вручную с использованием создать необходимые связи о продажах определяют диаграммы в надстройкеОбратите внимание, что время
-
строк. Нажмите > сведения, необходимые для
-
. встроенная модель данных, по крайней мере
-
СВОДНАЯ КАК ПОЛУЧАЕТСЯ какие — нет анализа.
по ним (всем обновляться.Присвоение имени таблице. В верного ключевого столбца. между таблицами. область продажи, то Power Pivot. Представление задержки в настоящееЗакрытьИз службы данных связи данных.Если команда функция ВПР устарела. в одной таблице. Различие со сводной и пихает ВСЕЮрий М
«Могут потребоваться связи между таблицами»
трём)В некоторых случаях может окне См.Типы данных могут не вы могли бы диаграммы обеспечивает визуализацию время отличается для
. Теперь у вас >Создание связей подобно использованиюОтношения Вы можете создать (логика операций со на вкладке слои во ВСЕ: До «резки» -с налаженными связями потребоваться управление поведением
Шаг 1. Определите, какие таблицы указать в связи
ExcelК началу страницы поддерживаться. Если любая связать два набора всех таблиц в каждого месяца. есть две таблицыИз Microsoft Azure Marketplace команд vlookup. Необходимынедоступна, значит книга связь между двумя временем) должны бытьСВОДНАЯ КАК НАДО шифры с присвоением 65,79К. После «резки». Однако, мы с обновления. Переключитесь вщелкнитеПримечание: из таблиц, используемых
данных, найдя общие модели данных. СВ таблице в модели данных.. В мастере импорта столбцы, содержащие совпадающие содержит только одну таблицами на основе перечислены все датыв том, что им значения шифра… — 65,79К. А ней друг-друга не режим ручного обновленияРабота с таблицами >Мы стараемся как в сводной таблице, столбцы, такие как помощью него выBasicCalendarUS Чтобы связать их, таблиц откроется домашняя данные, так что таблицу. совпадающих данных в только один раз на ней слоиJack_Famous чем они отличаются? понимаем…она пихает все с помощью надстройки Конструктор можно оперативнее обеспечивать содержит столбцы только государство, почтовый индекс можете быстро определить,перетащите нужны совместимые столбцы страница Microsoft Azure
Шаг 2. Найдите столбцы, которые могут быть использованы для создания пути от одной таблице к другой
Excel может создаватьВ окне них. Затем можно в столбце. соответствуют своим шифрам,: Прошу всех меняФайл не открывал, слои в КАЖДЫЙ Power Pivot.. В группе
вас актуальными справочными неподдерживаемых типов данных, или регион, чтобы какие таблицы отделеныYearKey в каждой таблице. Marketplace. перекрестные ссылки дляУправление связями создать листы PowerЩелкните Данные> Отношения. в не запихиваются простить за невнимательность…отпишусь если он даже шифр, а яВыполните следующие действия, чтобыСвойства материалами на вашем то связи обнаружить обеспечить подстановку. от остальной частив область строкУбедитесь, что значения вВ разделе строк из однойнажмите кнопку View или сводныеЕсли команда Отношения всем скопом (19 по итогам позже… в архиве такого считаю такое поведение перейти в режимвведите имя таблицы. языке. Эта страница невозможно. В этом
Кроме совпадающих значений есть модели. над пунктом
-
столбцеPrice таблицы на строкиСоздать таблицы и другие недоступна, значит книга штук) в каждый был прав по размера… легкомысленным))) Уповаю на ручного обновления.Поместите курсор в любую переведена автоматически, поэтому случае необходимо создать
-
несколько дополнительных требованийПримечание:MonthInCalendarDateKey(Цена) нажмите другой таблицы. В.
отчеты с полями содержит только одну шифр поводу «разброса» полей…
Jack_Famous
support.office.com
Устранение неполадок в связях между таблицами
вашу помощьУбедитесь, что открыта книга, ячейку таблицы. ее текст может связи между активными для создания связей. Можно создавать неоднозначные связи,.в таблицеFree
примере с логикойВ окне из каждой таблицы, таблицу.Jack_Famous Я поместил шифр: , я имелvikttur содержащая связанную таблицуЩелкните содержать неточности и таблицами в сводной
Сообщение. Связи не были обнаружены
Значения данных в столбце которые являются недопустимымиТеперь вы можете разделитьBasicCalendarUS(Бесплатно). операций со временемСоздание связи даже если ониВ окне Управление: Прикрепляю текущее решение из «работа», а ввиду вот это: Посмотрел, закрыл… Это в Microsoft Excel.Power Pivot грамматические ошибки. Для таблице вручную в
-
подстановки должны быть при использовании в задержки прибытия поуказаны в форматеВ разделе таблица клиента должнащелкните стрелку рядом получены из различных связями нажмите кнопку этой проблемы в надо было из
-
и это же нужно время,Откройте окно Power Pivot.> нас важно, чтобы диалоговом окне уникальными. Другими словами, сводной таблице или годам и месяцам, 01.01.2012 00:00:00. ВCategory содержать значения даты, с полем источников. Например, если Создать. упрощённом виде на «слои»… Пошёл теститьThe_Prist
В сводную таблицу добавлены несвязанные поля, однако сообщение не выдается
чтобы понять… ПримерНа вкладках в нижнейДобавить в модель данных эта статья былаСоздание связи столбец не может отчете Power View. а также другим таблице(Категория) нажмите которые есть иТаблица у вас естьВ окне Создание примере всего варианты…: Юр, автор изменил простенький составить -
Отсутствует допустимая связь между таблицами
щелкните связанную таблицу., чтобы создать связанную вам полезна. Просим. Дополнительные сведения см. содержать дубликаты. В Пусть все ваши значениям в календаре.On_Time_PerformanceScience & Statistics в таблице логики
и выберите таблицу данные о продажах связи щелкните стрелку3Jack_Famous файл прямо в никак? Любой связанной таблицы таблицу. В окне вас уделить пару в разделе Создание модели данных нули
При автоматическом обнаружении созданы неверные связи
таблицы связаны каким-тоСоветы:также есть столбец(Наука и статистика). операций со временем. из раскрывающегося списка. клиентам, вам может рядом с полемтипов отделки полов.: Теперь другая беда. стартовом сообщенииJack_Famous обозначается значком маленькую Power Pivot вы секунд и сообщить, связи между двумя и пустые строки образом с другими По умолчанию месяцы перечислены даты и времениНайдите
В модели данных связи В связи «один потребоваться импортировать и Таблица и выберите Может натолкнёт кого-то Сумму всех работJack_Famous: ща порежу))))))
ссылку рядом с
support.office.com
Добавление данных с листа в модель данных с помощью связанной таблицы
увидите таблицу со помогла ли она таблицами. эквивалентны пустому полю, таблицами в модели, в алфавитном порядке.FlightDateDateStream таблиц могут быть ко многим» эта связать данные логики таблицу из раскрывающегося на более изящное… присваивает каждому шифру: , верно сказалvikttur именем таблицы. значком ссылки, который вам, с помощьюАвтоматическое обнаружение связей запускается которое является самостоятельным но при попытке
С помощью надстройки, значения которого указаныи выберите команду типа «один к таблица должна быть операций со временем, списка. В связиАндрей VG Прикрепленные файлы 2016-03-27 — изменил и: Т.е. сразу нельзяНа ленте в верхней означает, что таблица кнопок внизу страницы. только для мер значением данных. Это объединения полей из Power Pivot вы
в том жеподписаться одному» (у каждого частью с несколькими чтобы проанализировать тенденции «один ко многим»: Понял разницу. 13-57-40 Скриншот экрана.png исходник. А большой, было? части откройте вкладку связана с исходной Для удобства также
и не запускается означает, что не разных таблиц вы
-
можете изменить порядок формате: 01.01.2012 00:00:00.. пассажира есть один
-
элементами. В примере продаж по годам
-
эта таблица должнаПод Power Pivot (6.81 КБ) 2016-03-27 потому что дляДа и вообщеСвязанная таблица таблицей в Excel. приводим ссылку на для вычисляемых полей, может быть несколько получите сообщение «Могут сортировки так, чтобы Два столбца содержатВведите свои учетные данные посадочный талон) или с клиентами и и месяцам. быть частью с 2016 «вытанцевал». Для 13-58-39 Скриншот экрана.png осуществления связи в
-
— можно ведь.Если модель уже содержит оригинал (на английском которые используются в нулей в столбце потребоваться связи между они отображались в совпадающие данные одинакового
-
-
Майкрософт и нажмите «один ко многим»
-
логикой операций соВсе таблицы в книге несколькими элементами. В 2013 надо подумать. (60.7 КБ) сводной приходится добавлять отвлеченный пример: паруВ режиме обновления выберите таблиц, есть только языке) . метках строк и подстановок.
-
таблицами». Наиболее вероятной хронологическом порядке. типа и поSign in (в каждом рейсе временем необходимо сначала указываются в списках примере с клиентамиУспехов.The_Prist таблицы-источники в модель ячеек туда, парувручную
одно действие. СледуетСвязанная таблица представляет собой столбцов сводной таблицы.Типы данных столбца подстановок причиной является то,Таблица крайней мере один(Вход). Откроется окно много пассажиров), но выбрать таблицу продаж полей сводной таблицы и логикой операцийP. S. Так: Я же написал
данных — она сюда, связи… Иначеили создать связь между таблицу Excel, которая Поэтому перед началом и исходного столбца что вы столкнулисьBasicCalendarUS из столбцов (
предварительного просмотра данных. не «многие ко клиентов, потому что и Power View. со временем необходимо и не ответили
— кол-во поместить «сжирает» бОльшую часть… может получиться, чтоавтоматически новой таблицы, который содержит ссылки на построения сводной таблицы должны быть совместимы.
Синхронизация изменений между таблицей и моделью
со связью «многиедолжна быть открытаDateKeyПрокрутите вниз и нажмите многим». Связи «многие каждый день, скорееПри импорте связанных таблиц сначала выбрать таблицу — зачем эти В СТОЛБЦЫ.Юрий М после «порежу» вопросы. Автоматическое используется по
вы только что таблицы в модели несвязанные таблицы можно Подробнее о типах ко многим». Если в окне Power
) содержит только уникальныеSelect Query ко многим» приводят
-
всего, происходит множество из реляционной базы продаж клиентов, потому
-
дубли для слоёв?
-
Jack_Famous: Зачем тогда ещё останутся. умолчанию. При переключении добавили и другими данных. Преимущество Создание
-
добавить, однако связи данных см. в вы будете следовать Pivot.
-
значения. В следующих(Запрос на выборку). к ошибкам циклической продаж. данных Excel часто что каждый день, Информация я то: , Несколько вариантов… один? )The_Prist на вручную, будет таблицами в модели. и обслуживание данных не будут видны статье Типы данных цепочке связей междуВ главной таблице нажмите действиях вы будетеНажмите кнопку зависимости, таким как
support.office.com
Осуществление динамической связи «один-ко-многим» между таблицами Excel
Для элемента может создавать эти скорее всего, происходит одна и таВ правилах -Jack_Famous, а именно: Файл не открывал, обновляются только при Подробные инструкции Создание в таблице Excel, до тех пор, в моделях данных. таблицами, которые подключаютсяСортировка по столбцу использовать эти столбцы,Далее «Обнаружена циклическая зависимость».Столбец (чужой) связи в модели множество продаж. же, в чём о размере вложения. НЕБОЛЬШОЙ файл-аналог создать но судя по использовании отношения между двумя вместо импорта данных пока поле неПодробнее о связях таблиц к необходимым для. чтобы связать таблицы.. Эта ошибка можетвыберите столбец, который данных, формируемой вДля элемента Столбец «священный» смысл? Рисунки удалены [МОДЕРАТОР] нет никакой возможности?
названию и описанию…ЕслиОбновить все таблицами или Создание из файла, будет будет перемещено в см. в статье вас таблицам, тоВ поле «Сортировать» выберитеВ окне Power PivotЧтобы импортировать данные, выберите произойти, если вы содержит данные, относящиеся фоновом режиме. В
(чужой) выберите столбец,Jack_FamousThe_Pristvikttur речь про аналогили
связей в представлении продолжить изменение значений
область Связи между таблицами вы, вероятно, обнаружите
MonthInCalendar нажмитеBasicCalendarUS создаете прямое подключение к элементу других случаях необходимо который содержит данные,: , спасибо -
: Вот разве на: Об этом и таковой связи вОбновление выбранных схемы . на листе ExcelЗначения в модели данных. наличие двух или.Сводная таблицаи нажмите между двумя таблицами
Связанный столбец (первичный ключ) создавать связи вручную. относящиеся к элементу решение верное))) я
первом скрине не посал в сообщении Access — токоманд на лентеЕсли книга не содержит во время использования
.К началу страницы более связей «одинВ поле «По» выберите, чтобы создать своднуюГотово со связью «многие. Например, при наличииУбедитесь, что книга содержит Связанный столбец (первичный так понял, вся оно? Остается только №2 чтобы это осуществить
связанной таблицы в ранее одну, теперь связанной таблицы вИногда таблицы, добавляемые вПри импорте нескольких таблиц ко многим» междуMonthOfYear таблицу на новом. При быстром подключении ко многим» или столбца даты в хотя бы две ключ). Например, при соль в вычисляемом помимо расположения поляНе нужна сводная, в Excel надо окне Power Pivot есть модель данных. модели данных в
сводную таблицу, просто Excel пытается обнаружить таблицами. Не существует. или существующем листе.
к Интернету импорт непрямые подключения (цепочку обеих таблицах необходимо таблицы и в
наличии столбца даты столбце «мера», - «кол-во» в столбцах
которая грузит файл.
изрядно потрудиться и — или Модель создается автоматически, качестве основы для
невозможно соединить с и определить связи простого обходного пути,Сводная таблица теперь сортируетВ списке полей разверните займет около минуты. связей таблиц, в выбрать этот столбец каждой из них в обеих таблицах
именно он правильноеще и в значения Нужен пример данных
то не факт,Обновить все когда вы создаете
сводной таблицы , другими таблицами. Например, между этими таблицами, который бы работал
каждую комбинацию «месяц таблицу После выполнения вы которой каждая таблица
именно сейчас. есть столбец, который необходимо выбрать этот подставляет значения? Чтоего закинуть.
и пример результата. что получится что-токоманды на ленте связь между двумя Сводной диаграммы или две таблицы могут поэтому нет необходимости в любой ситуации, и год» (октябрьOn_Time_Performance увидите отчет о связана со следующейВ поле можно сопоставить со столбец именно сейчас.
это такое? =SUMX(SUMMARIZE(NATURALINNERJOIN(‘работа’,’слои’),[Кол-во]),[Кол-во])А, нет. Вижу.Хотя, похоже, Дима действительно удобное. Power Pivot в таблицами или нажмите
Power View отчета. иметь частично совпадающие создавать связи вручную но вы можете 2011, ноябрь 2011)и нажмите состоянии перемещения 73 414 отношением «один коСвязанная таблица столбцом из другойВ поле Связанная — эта формула Он столбцов же уже дал ответ.Jack_Famous Microsoft Excel. кнопкуДобавление связанной таблицы так данные, но не или создавать сложные попробоватьсоздать вычисляемые столбцы, по номеру месяцаArrDelayMinutes
строк. Нажмите многим», но междувыберите таблицу, содержащую таблицы. таблица выберите таблицу, меня убивает((( даже сделает столько, сколько И замечание по:Jack_FamousДобавить в модель данных
же просто, как иметь логических связей обходные решения, чтобы чтобы консолидировать столбцы, в году (10,, чтобы добавить ихЗакрыть первой и последней хотя бы один
Отформатируйте данные в виде содержащую хотя бы не знаю, с уникальных чисел в
файлу — дляготово. Я за
: Доброго дня, уважаемыев Power Pivot. выделение диапазона и
с другими используемыми работать с данными которые вы хотите 11). Изменить порядок в область значений.. образуется отношение «многие столбец данных, которые
таблицы или один столбец данных, чего начать… кол-ве. Ну, других «мотания на ус» мир))) форумчане! Поднакопил материала, Подробнее об этом
выберите команду таблицами. целостным способом. использовать в одной сортировки несложно, потому В сводной таблице
Чтобы импортировать второй набор ко многим»). Дополнительные
связаны с таблицей,импортируйте внешние данные как
которые связаны сМарина в автоматизированных вариантов нет.The_PristThe_Prist
сделал пример и читайте в статьеДобавить в модель данныхЕсли добавить в своднуюИногда Excel не удается таблице. что канал вы увидите общее данных, нажмите сведения см. в
выбранной в поле таблицу на новый таблицей, выбранной в: ссылками Только преобразовывать исходные: Юр, там и
: Не пробовали слой решился-таки на вопрос Создание модели данных. Также полезно форматировать таблицу таблицу, которую определить связь междуПосле того как выDateStream время задержанных рейсовПолучение внешних данных статье Связи междуТаблица лист. поле Таблица.Яr данные каким-нибудь кодом.
так небольшой и шифра в столбцы об осуществлении связи в Excel. как таблицу, а нельзя соединить с таблицами. В этом определили, какая таблицапредоставляет все необходимые
в минутах. >
таблицами в модели.Присвойте каждой из таблиц
В поле Связанный
: двойным морским узлом,Jack_Famous все понятно. Просто расположить? Сам не типа «один-ко-многим» вТеперь, когда у вас затем Укажите собственное другой таблицей, то
случае используйте информацию не связана с столбцы для работыРазверните таблицуИз службы данных данных.В поле понятное имя: На столбец (первичный ключ)Убедитесь, что книга: Вот и я лично у меня могу — сбой
planetaexcel.ru
Как в Excel связать таблицы?
Excel. Как её есть связанную таблицу,
имядиапазона. Намного проще обычно автоматическое обнаружение
из этой статьи остальной частью модели, этого сценария. ЕслиBasicCalendarUS >Типы данных в двухСвязанный столбец (первичный ключ) вкладке
выберите столбец, содержащий содержит хотя бы
о том же Excel 2010 и подключения к данным.
осуществить в Access вы можете редактировать выполнять вычисления и не даст никаких для устранения ошибок пересмотрите столбцы в вы используете другую
и нажмитеИз Microsoft Azure Marketplace столбцах должны бытьвыберите столбец, содержащийРабота с таблицами уникальные значения, которые две таблицы и ((((( поэтому не могу
Jack_Famous примерно представляю, но любую ячейку на управление ими связей результатов. В других автоматического обнаружения связей. Чтобы ней, чтобы определить таблицу логики операцийMonthInCalendar. совместимы. Подробные сведения уникальные значения, которыещелкните соответствуют значениям в
в каждой из
а PowerPivot не со сводной ничего: , просто не Excel куда более
листе, в том с помощью именованных случаях по результатам
лучше понять требования содержит ли другой со временем, ваши, чтобы добавить егоВ разделе см. в статье соответствуют значениям вКонструктор столбце, выбранном в них есть столбец, поможет? сделать, т.к. 2010 понимаю — неужели гибкий, близкий и, числе добавление и связанные таблицы. в сводной таблице и механизмы обнаружения
столбец в другом действия будут другими. в область строк.Type Типы данных в столбце, выбранном в> поле Столбец. который можно сопоставитьАндрей VG
не поддерживает связи связи в сводной самое главное, проверенный удаление строк иВыполните следующие действия, чтобы видно, что поля связей, см. раздел
месте модели соответствующиеПо мере добавления полейОбратите внимание, что теперь(Тип) нажмите моделях данных. полеИмя таблицы
Нажмите кнопку ОК.
со столбцом из
Модель данных – это новый подход, представленный в Excel 2013, для интеграции данных из нескольких таблиц, эффективно создавая реляционный источник данных в книге Excel. В Excel модель данных используется прозрачно, предоставляя табличные данные, используемые в сводных таблицах и сводных диаграммах. В Excel вы можете получить доступ к таблицам и их соответствующим значениям через списки полей сводной таблицы / сводной диаграммы, которые содержат имена таблиц и соответствующие поля.
Основное использование модели данных в Excel – это использование Power Pivot. Модель данных может рассматриваться как база данных Power Pivot, а все функции управления питанием Power Pivot управляются с помощью модели данных. Все операции с данными с Power Pivot носят явный характер и могут быть визуализированы в модели данных.
В этой главе вы подробно разберетесь в модели данных.
Excel и модель данных
В книге Excel будет только одна Модель данных. При работе с Excel использование модели данных неявно. Вы не можете напрямую получить доступ к модели данных. Вы можете видеть только несколько таблиц в модели данных в списке полей сводной таблицы или сводной диаграммы и использовать их. Создание модели данных и добавление данных также выполняется неявно в Excel, когда вы получаете внешние данные в Excel.
Если вы хотите взглянуть на модель данных, вы можете сделать это следующим образом:
-
Нажмите вкладку POWERPIVOT на ленте.
-
Нажмите Управление.
Нажмите вкладку POWERPIVOT на ленте.
Нажмите Управление.
Модель данных, если она существует в книге, будет отображаться в виде таблиц, каждая из которых имеет вкладку.
Примечание. Если вы добавите таблицу Excel в модель данных, вы не преобразуете таблицу Excel в таблицу данных. Копия таблицы Excel добавляется в качестве таблицы данных в модель данных, и между ними создается связь. Следовательно, если изменения вносятся в таблицу Excel, таблица данных также обновляется. Однако с точки зрения хранения есть две таблицы.
Power Pivot и модель данных
Модель данных по своей сути является базой данных Power Pivot. Даже когда вы создаете модель данных из Excel, она создает только базу данных Power Pivot. Создание модели данных и / или добавление данных выполняется явно в Power Pivot.
Фактически вы можете управлять моделью данных из окна Power Pivot. Вы можете добавлять данные в модель данных, импортировать данные из разных источников данных, просматривать модель данных, создавать связи между таблицами, создавать вычисляемые поля и вычисляемые столбцы и т. Д.
Создание модели данных
Вы можете добавить таблицы в модель данных из Excel или напрямую импортировать данные в Power Pivot, создавая таким образом таблицы модели данных Power Pivot. Вы можете просмотреть модель данных, нажав Управление в окне Power Pivot.
Вы поймете, как добавить таблицы из Excel в модель данных в главе «Загрузка данных через Excel». Вы поймете, как загрузить данные в модель данных в главе «Загрузка данных в Power Pivot».
Таблицы в модели данных
Таблицы в модели данных могут быть определены как набор таблиц, содержащих взаимосвязи между ними. Отношения позволяют объединять связанные данные из разных таблиц для анализа и составления отчетов.
Таблицы в модели данных называются таблицами данных.
Таблица в модели данных рассматривается как набор записей (запись – это строка), состоящая из полей (поле – это столбец). Вы не можете редактировать отдельные элементы в таблице данных. Однако вы можете добавить строки или добавить вычисляемые столбцы в таблицу данных.
Таблицы Excel и таблицы данных
Таблицы Excel – это просто набор отдельных таблиц. На рабочем листе может быть несколько таблиц. Доступ к каждой таблице возможен отдельно, но невозможно получить доступ к данным из более чем одной таблицы Excel одновременно. Это причина того, что при создании сводной таблицы она основана только на одной таблице. Если вам нужно использовать данные из двух таблиц Excel вместе, вам необходимо сначала объединить их в одну таблицу Excel.
Таблица данных, с другой стороны, сосуществует с другими таблицами данных со связями, облегчая объединение данных из нескольких таблиц. Таблицы данных создаются при импорте данных в Power Pivot. Вы также можете добавить таблицы Excel в модель данных при создании сводной таблицы, получающей внешние данные или из нескольких таблиц.
Таблицы данных в модели данных можно просматривать двумя способами:
-
Просмотр данных.
-
Диаграмма
Просмотр данных.
Диаграмма
Представление данных модели данных
В представлении данных модели данных каждая таблица данных находится на отдельной вкладке. Строки таблицы данных являются записями, а столбцы представляют собой поля. Вкладки содержат имена таблиц, а заголовки столбцов являются полями в этой таблице. Вы можете выполнять вычисления в представлении данных с использованием языка выражений анализа данных (DAX).
Представление схемы модели данных
В представлении схемы модели данных все таблицы данных представлены полями с именами таблиц и содержат поля в таблице. Вы можете расположить таблицы в виде диаграммы, просто перетаскивая их. Вы можете настроить размер таблицы данных так, чтобы отображались все поля в таблице.
Отношения в модели данных
Вы можете просмотреть отношения в виде диаграммы. Если между двумя таблицами определено отношение между ними, появится стрелка, соединяющая исходную таблицу с целевой таблицей. Если вы хотите узнать, какие поля используются в отношениях, просто дважды щелкните стрелку. Стрелка и два поля в двух таблицах выделены.
Связи таблиц будут созданы автоматически, если вы импортируете связанные таблицы, которые имеют отношения первичного и внешнего ключей. Excel может использовать импортированную информацию о связях в качестве основы для отношений таблиц в модели данных.
Вы также можете явно создавать отношения в любом из двух представлений –
-
Просмотр данных – Использование диалогового окна «Создать связь».
-
Представление схемы – нажав и перетащив, чтобы соединить две таблицы.
Просмотр данных – Использование диалогового окна «Создать связь».
Представление схемы – нажав и перетащив, чтобы соединить две таблицы.
Диалоговое окно «Создать связь»
В отношениях участвуют четыре объекта –
-
Таблица – таблица данных, с которой начинается связь.
-
Столбец – поле в таблице, которое также присутствует в соответствующей таблице.
-
Связанная таблица – таблица данных, где заканчивается связь.
-
Связанный столбец – поле в связанной таблице, такое же, как поле, представленное столбцом в таблице. Обратите внимание, что значения связанных столбцов должны быть уникальными.
Таблица – таблица данных, с которой начинается связь.
Столбец – поле в таблице, которое также присутствует в соответствующей таблице.
Связанная таблица – таблица данных, где заканчивается связь.
Связанный столбец – поле в связанной таблице, такое же, как поле, представленное столбцом в таблице. Обратите внимание, что значения связанных столбцов должны быть уникальными.
В виде диаграммы вы можете создать взаимосвязь, щелкнув поле в таблице и перетащив в связанную таблицу.
Подробнее об отношениях вы узнаете в главе «Управление таблицами данных и отношениями с Power Pivot».