Как сделать unpivot в excel

Обновлено: 30.06.2024

Термины "Power Query", "Power Pivot", "Power BI" и прочие "пауэры" все чаще всплывают в статьях и материалах о Microsoft Excel. По моему опыту, далеко не все ясно представляют себе что скрывается за этими понятиями, как они между собой взаимосвязаны и как могут помочь простому пользователю Excel.

Давайте проясним ситуацию.

Power Query

Еще в 2013 году специально созданная группа разработчиков внутри Microsoft выпустила для Excel бесплатную надстройку Power Query (другие названия - Data Explorer, Get&Transform), которая умеет массу полезных для повседневной работы вещей:

  • Загружать данные в Excel из почти 40 различных источников, среди которых базы данных (SQL, Oracle, Access, Teradata. ), корпоративные ERP-системы (SAP, Microsoft Dynamics, 1C. ), интернет-сервисы (Facebook, Google Analytics, почти любые сайты).
  • Собирать данные из файлов всех основных типов данных (XLSX, TXT, CSV, JSON, HTML, XML. ), как поодиночке, так и сразу оптом - из всех файлов указанной папки. Из книг Excel можно автоматически загружать данные сразу со всех листов.
  • Зачищать полученные данные от "мусора": лишних столбцов или строк, повторов, служебной информации в "шапке", лишних пробелов или непечатаемых символов и т.п.
  • Приводить данные в порядок: исправлять регистр, числа-как-текст, заполнять пробелы, добавлять правильную "шапку" таблицы, разбирать "слипшийся" текст на столбцы и склеивать обратно, делить дату на составляющие и т.д.
  • Всячески трансформировать таблицы, приводя их в желаемый вид (фильтровать, сортировать, менять порядок столбцов, транспонировать, добавлять итоги, разворачивать кросс-таблицы в плоские и сворачивать обратно).
  • Подставлять данные из одной таблицы в другую по совпадению одного или нескольких параметров, т.е. прекрасно заменяет функцию ВПР (VLOOKUP) и ее аналоги.

Power Query встречается в двух вариантах: как отдельная надстройка для Excel 2010-2013, которую можно скачать с официального сайта Microsoft и как часть Excel 2016. В первом случае после установки в Excel появляется отдельная вкладка:

Отдельная вкладка Power Query

В Excel 2016 весь функционал Power Query уже встроен по умолчанию и находится на вкладке Данные (Data) в виде группы Получить и преобразовать (Get & Transform) :

excel-2016-15.jpg

Возможности этих вариантов совершенно идентичны.

Принципиальной особоенностью Power Query является то, что все действия по импорту и трансформации данных запоминаются в виде запроса - последовательности шагов на внутреннем языке программирования Power Query, который лаконично называется "М". Шаги можно всегда отредактировать и воспроизвести повторно любое количество раз (обновить запрос).

Основное окно Power Query обычно выглядит примерно так:

Окно редактора запросов Power Query

По моему мнению, это самая полезная для широкого круга пользователей надстройка из всех перечисленных в этой статье. Очень много задач, для которых раньше приходилось либо жутко извращаться с формулами, либо писать макросы - теперь легко и красиво делаются в Power Query. Да еще и с последующим автоматическим обновлением результатов. А учитывая бесплатность, по соотношению "цена-качество" Power Query просто вне конкуренции и абсолютный must have для любого средне-продвинутого пользователя Excel в наши дни.

Power Pivot

Power Pivot - это тоже надстройка для Microsoft Excel, но предназначенная немного для других задач. Если Power Query сосредоточена на импорте и обработке, то Power Pivot нужен, в основном, для сложного анализа больших объемов данных. В первом приближении, можно думать о Power Pivot как о прокачанных сводных таблицах.

Вкладка надстройки Power Pivot

Общие принципы работы в Power Pivot следующие:

  1. Сначала мы загружаем данные в Power Pivot - поддерживается 15 различных источников: распространенные БД (SQL, Oracle, Access. ), файлы Excel, текстовые файлы, веб-каналы данных. Кроме того, можно использовать Power Query как источник данных, что делает анализ почти всеядным.
  2. Затем между загруженными таблицами настраиваются связи или, как еще говорят, создается Модель Данных. Это позволит в будущем строить отчеты по любым полям из имеющихся таблиц так, будто это одна таблица. И никаких ВПР опять же.
  3. При необходимости, в Модель Данных добавляют дополнительные вычисления с помощью вычисляемых столбцов (аналог столбца с формулами в "умной таблице") и мер (аналог вычисляемого поля в сводной). Всё это пишется на специальном внутреннем языке Power Pivot, который называется DAX (Data Analysis eXpressions).
  4. На листе Excel по Модели Данных строятся интересующие нас отчеты в виде сводных таблиц и диаграмм.

Главное окно Power Pivot выглядит примерно так:

Главное окно Power Pivot

А так выглядит Модель Данных, т.е. все загруженные таблицы с созданными связями:

Модель Данных Power Pivot

У Power Pivot есть ряд особенностей, делающих её уникальным инструментом для некоторых задач:

  • В Power Pivot нет предела по количеству строк (как в Excel). Можно грузить таблицы любого размера и спокойно работать с ними.
  • Power Pivot очень хорошо умеет сжимать данные при загрузке их в Модель. 50 Мб исходный текстовый файл может легко превратиться в 3-5 Мб после загрузки.
  • Поскольку "под капотом" у Power Pivot, по сути, полноценный движок базы данных, то с большими объемами информации он справляется очень быстро. Нужно проанализировать 10-15 млн. записей и построить сводную? И все это на стареньком ноутбуке? Без проблем!

К сожалению, пока что Power Pivot входит не во все версии Excel. Если у вас Excel 2010, то скачать её можно бесплатно с сайта Microsoft. А вот если у вас Excel 2013-2016, то всё зависит от вашей лицензии, т.к. в некоторых вариантах она включена (Office Pro Plus, например), а в некоторых нет (Office 365 Home, Office 365 Personal и т.д.) Подробнее об этом можно почитать тут.

Power Maps

Эта надстройка впервые появилась в 2013 году и первоначально называлась GeoFlow. Она предназначена для визуализации гео-данных, т.е. числовой информации на географических картах. Исходные данные для отображения берутся все из той же Модели Данных Power Pivot (см. предыдущий пункт).

Окно Power Map

Демо-версию Power Map (почти не отличающуюся от полной по возможностям, кстати) можно совершенно бесплатно загрузить опять же с сайта Microsoft. Полная же версия включена в некоторые пакеты Microsoft Office 2013-2016 вместе с Power Pivot - в виде кнопки 3D-карта на вкладке Вставка (Insert - 3D-map) :

Кнопка запуска Power Map

Ключевые особенности Power Map:

  • Карты могут быть как плоскими, так и объемными (земной шар).
  • Можно использовать несколько разных типов визуализации (гистограммы, пузырьковые диаграммы, тепловые карты, заливку областями).
  • Можно добавлять измерение времени, т.е. анимировать процесс и смотреть на него в развитии.
  • Карты подгружаются из сервиса Bing Maps, т.е. для просмотра нужен весьма шустрый доступ в интернет. Иногда возникают сложности с правильным распознаванием адресов, т.к. названия в данных не всегда совпадают с Bing Maps.
  • В полной (не демо) версии Power Map можно использовать собственные загружаемые карты, например визуализировать посетителей торгового центра или цены на квартиры в жилом доме прямо на строительном плане.
  • На основе созданных гео-визуализаций можно прямо в Power Map создавать видеоролики (пример), чтобы поделиться ими потом с теми, у кого надстройка не установлена или включить в презентацию Power Point.

Power View

Эта надстройка появилась впервые в составе Excel 2013 и предназначена для "оживления" ваших данных - построения интерактивных графиков, диаграмм, карт и таблиц. Иногда для этого используют термины дашборд (dashboard) или панель показателей (scorecard) . Суть в том, что вы можете вставить в ваш файл Excel специальный лист без ячеек - слайд Power View, куда добавить текст, картинки и массу различного типа визуализаций по вашим данным из Модели Данных Power Pivot.

Выглядеть это будет примерно так:

Нюансы тут такие:

  • Исходные данные берутся всё оттуда же - из Модели Данных Power Pivot.
  • Для работы с Power View необходимо установить на вашем компьютере Silverlight - майкрософтовский аналог Flash (бесплатный).

На сайте Microsoft, кстати, есть весьма приличный обучающий курс по Power View на русском языке.

Power BI

В отличие от предыдущих, Power BI - это не надстройка для Excel, а отдельный продукт, представляющий собой целый комплекс средств для бизнес- анализа и визуализации. Он состоит из трех ключевых элементов:

Сайт Power BI Service

В Power BI Desktop можно:

  • Загружать данные из более чем 70 различных источников (как в Power Query + дополнительные коннекторы).
  • Связывать таблицы в модель (как в Power Pivot)
  • Добавлять к данным дополнительные вычисления с помощью мер и вычисляемых столбцов на DAX (как в Power Pivot)
  • Создавать на основе данных красивейшие интерактивные отчеты с разного типа визуализациями (очень похоже на Power View, но еще лучше и мощнее).
  • Публиковать созданные отчеты на сайте Power BI Service (см. следующий пункт) и делиться ими с коллегами. Причем есть возможность давать разные права (чтение, редактирование) разным людям.

2. Онлайн-сервис Power BI - упрощенно говоря, это сайт, где у вас и у каждого пользователя в вашей компании будет своя "песочница" (workspace) куда можно загружать созданные в Power BI Desktop отчеты. Помимо просмотра, позволяет их даже редактировать, воспроизводя онлайн почти весь функционал Power BI Desktop. Также сюда можно заимствовать отдельные визуализации из чужих отчетов, собирая из них свои авторские дашборды.

Выглядит это примерно так:

Сайт Power BI Service

На iPhone, например, созданный выше отчет выглядит так:

Отчет в Power BI Mobile

Причем всё это с сохранением интерактивностии и анимации + заточенность под тач и рисование по экрану пером. Очень удобно. Таким образом, бизнес-аналитика становится доступной всем ключевым лицам компании в любой момент и в любом месте - нужен только доступ в интернет.

Тарифные планы Power BI. Power BI Desktop и Mobile бесплатны изначально, большинство функций Power BI Service - тоже. Так что для персонального использования или применения в пределах небольшой компании за всё вышеперечисленное не нужно платить ни копейки и можно смело оставаться на плане Free. Если вы хотите делиться отчетами с коллегами и администрировать их права доступа, то придется перейти на Pro (10$ в месяц за пользователя). Есть еще Premium - для больших компаний (>500 пользователей), которым требуются для данных отдельные хранилища и серверные мощности.

вы должны увидеть новый лист, содержащий все данные в сводной таблице, транспонированные так, как вы ищете.

технологии Datapig обеспечивает пошаговые инструкции, которые на самом деле сложнее, чем вам нужно - его пример переносит только часть набора данных и использует технику pivot в сочетании с TextToColumns. Но у него есть много картины.

Если ваши данные не являются сводной таблицей Excel, а просто данными, вы можете "отменить" ее с помощью простого кода VBA. Код зависит от двух именованных диапазонов: исходного и целевого. Источник-это данные, которые вы хотите отменить (за исключением заголовков столбцов / строк, например, NY-RI в образце), а цель-первая ячейка, в которую вы хотите поместить свой результат.

лучшее, что я придумал до сих пор это:

это работает, но я должен генерировать идентификаторы и LocNum вручную. Если есть более автоматизированное решение (помимо написания макроса), сообщите мне об этом в отдельном ответе.

есть довольно хорошее решение в excel 2010, просто нужно немного поиграть с сводной таблицей.

создайте сводную таблицу из ваших данных с помощью следующих параметров:

  • нет промежуточных итогов, нет общих итогов
  • макет отчета: табличная форма, повторите все метки элементов
  • добавьте все столбцы, которые вам нужны, держите столбцы, которые вы хотите преобразовать справа
  • для каждого столбца, который вы хотите преобразовать: откройте настройки поля-на вкладке макет и печать: выберите "Показывать метки элементов в виде структуры" и установите оба флажка под ним
  • скопируйте таблицу в отдельное место (только значения)
  • если у вас есть пустые ячейки в исходных данных, то фильтр для пустых значений в крайнем правом столбце и удалить эти строки (не фильтровать в сводной таблице, как это не будет работать, как вам нужно!)

Если размеры ваших данных, как в образце, представленном в вашем вопросе, то следующий набор формул с использованием смещения должен дать вам необходимый результат:

1 | НЬЮ-ЙОРК | ШТАТ КАЛИФОРНИЯ | КАЛИФОРНИЯ | ИЛ

2 / WA | OR | NH / RI

находятся в диапазоне A2: E3, затем введите

затем скопировать эту формулу вниз насколько это необходимо.

Это самое простое, чистое, встроенное решение формулы, о котором я могу думать.

You might want to unpivot data, sometimes called flattening the data, to put it in a matrix format so that all similar values are in one column. This is necessary, for example, to create a chart or a report.

When you unpivot, you unpack the attribute-value pairs that represent an intersection point of the new columns and re-orient them into flattened columns:

Values (in blue on the left) are unpivoted into a new column (in blue on the right).

Attributes (in green on the left) are unpivoted into a new column (in green on the right) and duplicates are correspondingly mapped to the new Values column.

Here is the sample data used in this procedure.

Pivot Column Example

To open a query, locate one previously loaded from the Power Query Editor, select a cell in the data, and then select Query > Edit. For more information see Create, load, or edit a query in Excel.

Select one or more columns. In this example, select all the columns except Country. To select more than one column contiguously or discontiguously, press Shift+Click or CTRL+Click on each subsequent column.

Select Transform > Unpivot Columns.

Pivot Column Result

This command unpivots unselected columns. Use this command in a query when not all columns are known. New columns added during a refresh operation are also unpivoted.

To open a query, locate one previously loaded from the Power Query Editor, select a cell in the data, and then select Query > Edit. For more information see Create, load, or edit a query in Excel.

Select the columns you don't want to unpivot. To select more than one column contiguously or discontiguously, press Shift+Click or CTRL+Click on each subsequent column.

Select Transform > Unpivot Other Columns.

Use this command when you don’t know the number of columns in the data source, and you want ensure the selected columns remain unpivoted after a refresh operation.

To open a query, locate one previously loaded from the Power Query Editor, select a cell in the data, and then select Query > Edit. For more information see Create, load, or edit a query in Excel.

Select the columns you do want to unpivot. To select more than one column contiguously or discontiguously, press Shift+Click or CTRL+Click on each subsequent column.

With the new Get & Transform capabilities in Excel 2016, you can now import, transform and combine data from different sources—thanks to the integrated Power Query technology in Excel. Today we are going to focus on one of the most useful capabilities that Get & Transform offers—the ability to unpivot to transform ANY table in your workbook to make it ready for powerful analysis using PivotTables and PivotCharts.

Learn how to unpivot static tables in Excel 2016 1

Learn how to unpivot static tables in Excel 2016 3

Transform a static table into a PivotTable ready for deep analysis.

Microsoft Excel

Turn data into insights.

Chart

But analyzing this data is not easy and sometimes you wish you could easily create charts on this data, or even better—PivotCharts.

Learn how to unpivot static tables in Excel 2016 4

Here is a common, yet challenging scenario—challenging, because it would take a lot of effort to get to the point you can gain insights from this data in the current format. Fortunately, through the new Get & Transform section in the Data tab of Excel 2016, the challenge is over.

Simply select any cell inside an existing table or range and in the Get & Transform section, click From Table.

Learn how to unpivot static tables in Excel 2016 5

You will see a preview of your data inside the Query Editor window. From this window, you can start transforming your data in powerful, yet simple ways. Each change you make is recorded as a transformation step that is saved with your workbook. All the steps are kept as a sequence that can be performed again and again each time you refresh your data.

In the Query Editor, you will usually need the help of the Unpivot transformation to change your table into a format that can be used by PivotTable.

In the example below, I can select the first column that includes project names and click Unpivot Other Columns to transform my data from columns of Project Name / 2010 / 2011 / 2012… to the desired column structure of Project / Year / Duration.

Learn how to unpivot static tables in Excel 2016 6

And here are the results in the Query Editor:

Learn how to unpivot static tables in Excel 2016 7

I can now rename the columns to Project, Year and Duration inside the Query Editor and then load the data into a PivotTable or PivotChart.

Learn more

We recently published a series of blog posts on our TechNet blog, beginning with Get & Transform Data in Excel 2016, that walk you through a variety of scenarios and magical transformations that can take ANY kind of a table or range in Excel and unpivot it into the desired structure for PivotTables and PivotCharts.

If you are familiar with the Unpivot functionality and want to test your skills, read this post. Even simple tables such as a class schedule may require some cunning approach.

Learn how to unpivot static tables in Excel 2016 8

The most common scenario includes nested tables with hierarchical date information such as years, quarters and months. Read here how to transform these tables.

Learn how to unpivot static tables in Excel 2016 1

And if you wish to apply your magic on ANY nested table, read this post that will first show you how to unpivot three levels of nested rows and columns. It is so simple.

Learn how to unpivot static tables in Excel 2016 9

On many occasions your data contains comma-separated values, like a table of events in which all participants are listed on a single column. You can learn here how to split such data and unpivot it.

Learn how to unpivot static tables in Excel 2016 - comma-separated values

Finally, you can learn here how to transform and unpivot all these challenging tables in Power BI Desktop, and build amazing dashboards in Power BI.

Читайте также: