Что такое excel query table

Программирование в Excel

265

Для большинства практических задач вполне хватает возможностей объектов

Application, Workbook, Worksheet и Range. Например, для вставки информации из базы данных вы можете пройти циклом по объекту ADO.Recordset и вставить все нужные записи в лист Excel, а затем средствами VBA прописать в нижние строки итоги по вставленным данным. Однако в Excel встроено несколько специальных объектов, которые могут сильно упростить работу в различных ситуациях. Например, ту же операцию по вставке информации из базы данных удобнее будет провести при помощи специального объекта QueryTable, который будет рассматриваться в этом разделе. Еще два таких специальных объекта PivotTable и Chart будут рассматриваться в разд. 11.8

и 11.9.

Основное назначение объекта QueryTable — работа с набором значений, возвращаемых из базы данных. Этот объект доступен в Excel из графического интерфейса через меню Данные | Импорт внешних данных | Импортиро-

вать данные. При помощи объектов QueryTable вы можете разместить набор записей, полученных с источника данных, на листе Excel для выполнения с ним различных операций (например, анализа при помощи богатой библиотеки функций, для построения диаграмм, отчетов и т. п.). QueryTable удобно использовать для «односторонней» работы с источником данных, когда данные только скачиваются с источника в Excel, но изменять данные и сохранять изменения на источнике не нужно. В принципе, в Excel такую возможность синхронизации изменений реализовать можно (например, при помощи перехвата события Change объекта Worksheet), но намного проще и правильнее будет использовать для этой цели возможности Access. В этом разделе мы будем рассматривать только такую «однонаправленную» передачу данных из базы в Excel.

Как обычно, для того чтобы создать объект QueryTable и разместить его на листе, нужно использовать специальную коллекцию QueryTables, которая принадлежит рабочему листу (объекту Worksheet) и доступна через его одноименное свойство. Свойства и методы объекта QueryTables стандартные, как у большинства рассмотренных нами коллекций. Подробного рассмотрения заслуживает только метод Add(), при помощи которого и создается объект QueryTable (с одновременным добавлением в коллекцию). Этот метод принимает три параметра:

Connection — источник данных для QueryTable (в виде объекта типа Variant). В качестве источника данных можно использовать:

строку подключения OLE DB или ODBC (см. гл. 9);

готовый объект Recordset, созданный стандартными средствами ADO или DAO. При этом можно изменять Recordset, на который ссылается

QueryTable и обновлять QueryTable. По многим причинам это самый удобный вариант при работе с QueryTable;

другой объект QueryTable (вместе со строкой подключения и текстом запроса);

текстовый файл;

результаты Web-запроса или запроса Microsoft Query (в виде файла DQY или IQY). Создать такой файл запроса можно при помощи графи-

ческих средств Excel в меню Данные | Импорт внешних данных | Создать запрос.

Destination — куда вставлять полученную QueryTable. Передается объект Range, и вставка производится, начиная с верхнего левого угла диапазона.

SQL — при помощи этого необязательного параметра можно определить SQL-запрос, который будет выполняться на источнике данных ODBC. Этот же запрос можно определить при помощи одноименного свойства объекта QueryTable.

Конечно, правильнее всего при создании QueryTable использовать готовый объект Recordset. В этом случае у нас будут и самые полные возможности настройки подключения и курсора, и возможность эффективного промежуточного хранения данных в оперативной памяти (в объекте Recordset), куда можно вносить изменения, и все удобные свойства и методы объекта Recordset. Код на создание объекта QueryTable на листе Excel может выглядеть так (мы используем тот же Recordset на основе таблицы

Northwind.Customers, что и в разд. 9.5):

Dim cn As ADODB.Connection

Set cn = CreateObject(«ADODB.Connection») cn.Provider = «SQLOLEDB»

cn.ConnectionString = «User ID=SA;Password=password;» _ & «Data Source = LONDON1;Initial Catalog = Northwind»

cn.Open

Dim rs As ADODB.Recordset

Set rs = CreateObject(«ADODB.Recordset») rs.Open «select * from dbo.customers», cn Dim QT1 As QueryTable

Set QT1 = QueryTables.Add(rs, Range(«A1»)) QT1.Refresh

Программирование в Excel

267

Непосредственно помещение объекта QueryTable на лист производится при помощи метода QueryTable.Refresh(). Без него объект QueryTable будет создан только в оперативной памяти.

Информация о самых важных свойствах и методах объекта QueryTable представлена далее.

BackgroundQuery — определяет, может ли выполнение запроса производиться в фоновом режиме, пока пользователь совершает в Excel другие действия. По умолчанию установлено в True. В False следует переводить только тогда, когда пользователь своими действиями в Excel может как-то помешать нормальной работе приложения.

CommandText — текст команды SQL, т. е. текст запроса, который передается на источник. Существует совместно с аналогичным свойством SQL (которое оставлено для обратной совместимости) и имеет перед ним приоритет. При передаче QueryTable готового Recordset это свойство недоступно.

CommandType — тип передаваемой в CommandText команды (вся таблица, SQL-запрос, имя куба OLAP и т. п.). При работе с готовым Recordset также недоступно.

Connection — строка подключения, которую можно передать при вызове метода Add() коллекции QueryTables. Также при работе с готовым Recordset недоступно.

Destination — второй параметр, который передается методу Add(). Возвращает объект Range, представляющий верхнюю левую ячейку диапазона, занимаемого на листе объектом QueryTable. После создания QueryTable доступен только для чтения.

EnableEditing — определяет, может ли пользователь изменять на графическом экране свойства объекта QueryTable. По умолчанию установлено в True. Если перевести в False, то пользователь сможет только обновлять

QueryTable.

EnableRefresh — определяет, может ли пользователь обновлять QueryTable, получая заново данные (с источника или из Recordset).

FetchedRowOverflow — это свойство принимает значение True, если записи, полученные с источника, не поместились на листе Excel (т. е. было скачано больше, чем 65 536 записей). Ошибки в такой ситуации не возникает, поэтому если вы работаете с большими наборами записей, имеет смысл реализовать соответствующие проверки.

FieldNames — очень полезное свойство. Позволяет отключить вставку полученных с источника названий столбцов в первую строку QueryTable. По умолчанию True — вставлять названия столбцов.

MaintainConnection — определяет, будет ли соединение с источником открыто все время до закрытия листа. По умолчанию True — оптимизировано для выполнения частых обновлений. Если переставить в False, можно сэкономить оперативную память на клиенте за счет уменьшения скорости обновления данных.

Name — имя объекта QueryTable (на графическом экране его можно посмотреть, если на панели управления Внешние данные нажать кнопку

Свойства диапазона данных). По умолчанию задается как ExternalData_

номер.

Parameters — позволяет получить доступ к коллекции Parameters (набор параметров запроса). Возможности практически такие же, как у параметров объекта Recordset.

PreserveColumnInfo и PreserveFormatting — определяют, сохранять ли ин-

формацию о столбцах (сортировке, фильтрации и т. п.) и форматировании после обновления QueryTable. По умолчанию все сохраняется.

QueryType — позволяет выяснить, что использовалось при создании QueryTable: Recordset, прямой доступ к таблице, SQL-запрос и т. п. Свойство доступно только для чтения.

Recordset — возвращает ссылку на объект Recordset, который использовался для создания QueryTable, или позволяет заменить его для объекта QueryTable на другой (изменения вступят в силу только после вызова ме-

тода Refresh()).

Refreshing — это свойство принимает значение True на момент выполнения фонового запроса к источнику. Если выполнение запроса слишком затянулось, его можно прервать при помощи метода CancelRefresh().

RefreshOnFileOpen — определяет, обновлять ли данные автоматически при открытии листа или можно обойтись уже скачанными значениями (по умолчанию).

RefreshPeriod — определяет, через какие интервалы времени автоматически будет обновляться информация в QueryTable данными с источника. По умолчанию задан 0, т. е. автоматическое обновление отключено.

RefreshStyle — определяет, что делать с существующими ячейками, на место которых вставляются ячейки QueryTable при обновлении.

ResultRange — это, наверное, самое важное свойство объекта QueryTable. Как правило, данные из базы перекачиваются в Excel для дальнейшей обработки. Это свойство позволяет получить диапазон, который включает в себя все ячейки, вставленные на лист из объекта QueryTable, чтобы потом применить к ним различные функции (обычно по столбцам или по строкам). Чтобы этот метод сработал, обязательно нужно провести вставку

Программирование в Excel

269

данных QueryTable на лист при помощи метода Refresh(). После этого можно будет использовать то, что возвращает это свойство, как обычный диапазон. Самый простой способ продемонстрировать работу этого метода — воспользоваться кодом:

QT1.ResultRange.Select

А следующий пример генерирует под первым столбцом QueryTable формулу с суммированием значений этого столбца:

Set c1 = Sheets(«Лист1»).QueryTables(1).ResultRange.Columns(1) c1.Name = «Column1»

c1.End(xlDown).Offset(1, 0).Formula = «=SUM(Column1)»

RowNumbers — свойство, которое может сильно упростить работу с данными, полученными при помощи QueryTable. Позволяет сгенерировать еще один столбец в QueryTable (слева), который будет состоять из номеров записей, полученных через QueryTable.

SaveData — определяет, сохранять ли данные, полученные через QueryTable, вместе с книгой Excel. По умолчанию задано True. В False имеет смысл переводить это свойство для того, чтобы изначально гарантировать работу пользователя только с самыми последними данными, полученными из источника.

SavePassword — определяет, сохранять ли пароль вместе со строкой подключения (это свойство можно использовать только для источников ODBC). Если переставить его в False, то можно повысить уровень безопасности вашего приложения.

SourceDataFile — полный путь и имя файла источника (для Access, DBF и других настольных СУБД). Для клиент-серверных систем (таких как SQL Server) возвращает Null.

Свойства с префиксом Text… — определяют параметры текстового файла, если этот файл был выбран в качестве источника для QueryTable.

Свойства с префиксом Web… — определяют параметры данных, получаемых от запроса к Web-источнику.

Методы Refresh(), CancelRefresh() и Delete() объекта QueryTable очевидны и каких-либо комментариев не требуют. Метод ResetTimer() позволяет обнулить таймер автоматического обновления, а метод SaveAsODC() — сохранить определение источника данных в виде файла Microsoft Query (если источником был объект Recordset, то этот метод вернет ошибку).

У объекта QueryTable есть также два события: BeforeRefresh и AfterRefresh.

Они срабатывают соответственно перед началом загрузки данных с источника и после окончания загрузки.

11.8. Работа со сводными таблицами

(объект PivotTable)

В процессе работы большинства предприятий накапливаются так называемые необработанные данные (raw data) о деятельности. Например, для торгового предприятия могут накапливаться данные о продажах товаров (по каждой покупке отдельно), для предприятий сотовой связи — статистика нагрузки на базовые станции и т. п. Очень часто менеджменту предприятия необходима аналитическая информация, которая генерируется на основе необработанных данных, например, посчитать вклад каждого вида товара в доходы предприятия или качество обслуживания в зоне данной станции. Из необработанной информации такие сведения извлечь очень тяжело: нужно выполнять сложные SQL-запросы, которые обрабатываются долго и часто мешают текущей работе. Поэтому все чаще в настоящее время необработанные данные сводятся вначале в хранилище архивных данных Data Warehouse, а затем — в кубы OLAP, которые очень удобны для интерактивного анализа. Проще всего представить себе кубы OLAP как многомерные таблицы, в которых вместо стандартных двух измерений (столбцы и строки, как в обычных таблицах) измерений может быть очень много. Обычно для описания измерений в кубе используется термин «в разрезе». Например, отделу маркетинга может быть нужна информация во временном разрезе, в региональном разрезе, в разрезе типов продукта, в разрезе каналов продаж и т. п. При помощи кубов (в отличие от стандартных SQL-запросов) очень просто получать ответы на такие вопросы, как «сколько товаров такого-то типа было продано в четвертом квартале прошлого года в Северо-Западном регионе через региональных дистрибьюторов».

Конечно, в обычных базах данных такие кубы не создать. Для работы с кубами OLAP требуются специализированные программные продукты. Вместе с SQL Server поставляется база данных OLAP от Microsoft, которая называется

Analysis Services. Есть OLAP-решения от Oracle, IBM, Sybase и других фирм.

Для работы с такими кубами в Excel встроен специальный клиент. По-русски он называется Сводная таблица (на графическом экране он доступен через меню Данные | Сводная таблица), а по-английски — Pivot Table. Соответственно, объект, который представляет этот клиент, называется PivotTable. Необходимо отметить, что он умеет работать не только с кубами OLAP, но и с обычными данными в таблицах Excel или в базах данных, но многие возможности при этом теряются.

Сводная таблица и объект PivotTable — это программные продукты фирмы Panorama Software, которые были приобретены Microsoft и интегрированы в Excel. Поэтому работа с объектом PivotTable несколько отличается от работы

Программирование в Excel

271

с другими объектами Excel. Догадаться, что нужно сделать, часто бывает непросто. Поэтому рекомендуется для получения подсказок активно использовать макрорекордер. В то же время при работе со сводными таблицами пользователям часто приходится выполнять одни и те же повторяющиеся операции, поэтому автоматизация во многих ситуациях необходима.

При работе со сводной таблицей первое, что нам потребуется сделать, — это создать объект PivotCache, который будет представлять собой набор записей, полученных с источника OLAP. Очень условно этот объект PivotCache можно сравнить с QueryTable. Для каждого объекта PivotTable можно использовать только один объект PivotCache. Создание объекта PivotCache производится при помощи метода Add() коллекции PivotCaches:

Dim PC1 As PivotCache

Set PC1 = ActiveWorkbook.PivotCaches.Add(xlExternal)

PivotCaches — стандартная коллекция, из ее методов, которые заслуживают подробного рассмотрения, можно назвать только метод Add(). Этот метод принимает два параметра:

SourceType — обязательный, определяет тип источника данных для сводной таблицы. Можно указать создание PivotTable на основе диапазона в Excel, данных из базы данных, во внешнем источнике данных, другой PivotTable и т. п. На практике OLAP имеет смысл использовать только тогда, когда данных много — нужно специализированное внешнее хранилище (например, Microsoft Analysis Services). В этой ситуации выбирается значение xlExternal.

SourceData — обязательный во всех случаях, кроме тех, когда значение первого параметра равно xlExternal. Определяет тот диапазон данных, на основе которого и будет создаваться PivotTable. Обычно принимает в качестве значения объект Range.

Следующая задача — это настроить параметры объекта PivotCache. Как уже говорилось, этот объект очень напоминает QueryTable, и набор свойств и методов у него очень похожий. Некоторые наиболее важные свойства и методы представлены далее.

ADOConnection — возвращает объект ADO.Connection, который автоматически создается при подключении к внешнему источнику данных. Используется для дополнительной настройки свойств подключения.

Connection — работает точно так же, как и одноименное свойство объекта QueryTable. Может принимать строку подключения, готовый объект Recordset, текстовый файл, Web-запрос, файл Microsoft Query. Чаще всего при работе с OLAP строка подключения прописывается напрямую (по-

скольку получать объект Recordset, например, для изменения данных смысла нет — источники данных OLAP практически всегда доступны только для чтения). Настройка этого свойства для подключения к базе данных FoodMart (учебная база данных Analysis Services) на сервере LONDON может выглядеть так:

PC1.Connection = «OLEDB;Provider=MSOLAP.2;Data Source=LONDON1;» _ & «Initial Catalog = FoodMart 2000»

CommandType и CommandText — описывают тип команды, которая передается на сервер баз данных, и текст самой команды. Например, чтобы обратиться к кубу Sales и получить его целиком в кэш на клиенте, можно использовать код типа:

PC1.CommandType = xlCmdCube

PC1.CommandText = Array(«Sales»)

LocalConnection — позволяет подключиться к локальному кубу (файлу cub), созданному средствами Excel. Конечно, такие файлы для работы с «производственными» объемами данных использовать очень не рекомендуется — только для целей создания макетов и т. п.

MemoryUsed — возвращает количество оперативной памяти, используемой

PivotCache. Если PivotTable на основе этого PivotCache еще не создана и не открыта, то возвращается 0. Можно использовать для проверки, если ваше приложение будет работать на слабых клиентах.

OLAP — возвращает True, если PivotCache подключен к серверу OLAP.

OptimizeCache — позволяет оптимизировать структуру кэша. Изначальная загрузка данных будет производиться дольше, но потом скорость работы может существенно возрасти. Для источников OLE DB эта оптимизация не работает.

Остальные свойства объекта PivotCache совпадают с аналогичными свойствами объекта QueryTable, и поэтому здесь рассматриваться не будут.

Главный метод объекта PivotCache — это метод CreatePivotTable(). С его помощью и производится следующий этап — создание сводной таблицы (объекта PivotTable). Этот метод принимает четыре параметра:

TableDestination — единственный обязательный параметр. Принимает объект Range, в верхний левый угол которого будет помещена сводная таблица.

TableName — имя сводной таблицы. Если не указано, то автоматически сгенерируется имя типа «СводнаяТаблица1».

Программирование в Excel

273

ReadData — если установить в True, то все содержимое куба будет автоматически помещено в кэш. С этим параметром нужно быть очень осторожным, поскольку неправильное его применение может резко увеличить нагрузку на клиента.

DefaultVersion — это свойство обычно не указывается. Позволяет определить версию создаваемой сводной таблицы. По умолчанию задается наиболее свежая версия.

Создание сводной таблицы в первой ячейке первого листа книги может выглядеть так:

PC1.CreatePivotTable Range(«A1»)

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

область столбцов — в нее помещаются те измерения («разрез», в котором будут анализироваться данные), записей в которых меньше;

область строк — те измерения, записей в которых больше;

область страницы — те измерения, по которым нужно только проводить фильтрацию (например, показать данные только по такому-то региону или только за такой-то год);

область данных — центральная часть таблицы. Те числовые данные (например, сумма продаж), которые мы будем анализировать.

Полагаться на пользователя в том, что он правильно разместит элементы во всех четырех областях, не стоит. Кроме того, это может занять определенное время. Поэтому часто требуется расположить данные в сводной таблице программным образом. Эта операция производится при помощи объекта CubeField. Главное свойство этого объекта — Orientation, оно определяет, где будет находиться то или иное поле. Например, помещаем измерение Customers в область столбцов:

PT1.CubeFields(«[Customers]»).Orientation = xlColumnField

измерение Time — в область строк:

PT1.CubeFields(«[Time]»).Orientation = xlRowField

измерение Product — в область страницы:

PT1.CubeFields(«[Product]»).Orientation = xlPageField

и, наконец, показатель Unit Sales (числовые данные для анализа):

PT1.CubeFields(«[Measures].[Unit Sales]»).Orientation = xlDataField

Содержание

  1. Create, load, or edit a query in Excel (Power Query)
  2. SQL запросы в Microsoft Excel
  3. Создание SQL запроса в Excel
  4. Способ 1: использование надстройки
  5. Способ 2: использование встроенных инструментов Excel
  6. Способ 3: подключение к серверу SQL Server

Create, load, or edit a query in Excel (Power Query)

Power Query offers several ways to create and load Power queries into your workbook. You can also set default query load settings in the Query Options window.

Tip To tell if data in a worksheet is shaped by Power Query, select a cell of data, and if the Query context ribbon tab appears, then the data was loaded from Power Query.

Know which environment you’re in Power Query is well-integrated into the Excel user interface, especially when you import data, work with connections, and edit Pivot Tables, Excel tables, and named ranges. To avoid confusion, it’s important to know which environment you are currently in, Excel or Power Query, at any point in time.

The familiar Excel worksheet , ribbon, and grid

The Power Query Editor ribbon and data preview

For example, manipulating data in an Excel worksheet is fundamentally different than Power Query. Furthermore, the connected data that you see in an Excel worksheet, may or may not have Power Query working behind the scenes to shape the data. This only occurs when you load the data to a worksheet or Data Model from Power Query.

Rename worksheet tabs It’s a good idea to rename worksheet tabs in a meaningful way, especially if you have a lot of them. It’s particularly important to clarify the difference between a worksheet of data, and a worksheet loaded from the Power Query Editor. Even if you have only two worksheets, one with an Excel table, called Sheet1, and the other a query created by importing that Excel table, called Table1, it’s easy to get confused. It’s always good practice to change the default names of worksheet tabs to names that make more sense to you. For example, rename Sheet1 to DataTable and Table1 to QueryTable. Now it’s clear which tab has the data and which tab has the query.

You can either create a query from imported data or create a blank query.

Create a query from imported data

This is the most common way to create a query.

Import some data. For more information, see Import data from external data sources.

Select a cell in the data and then select Query > Edit.

Create a blank query

You may want to just start from scratch. There are two ways to do this.

Select Data > Get Data > From Other Sources > Blank Query.

Select Data > Get Data > Launch Power Query Editor.

At this point, you can manually add steps and formulas if you know the Power Query M formula language well.

Or you can select Home and then select a command in the New Query group. Do one of the following.

Select New Source to add a data source. This command is just like the Data > Get Data command in the Excel ribbon.

Select Recent Sources to select from a data source you have been working with. This command is just like the Data > Recent Sources command in the Excel ribbon.

Select Enter Data to manually enter data. You might choose this command to try out the Power Query Editor independent of an external data source.

Assuming your query is valid and has no errors, you can load it back to a worksheet or Data Model.

Load a query from the Power Query Editor

In the Power Query Editor, do one of the following:

To load to a worksheet, select Home > Close & Load > Close & Load.

To load to a Data Model, select Home > Close & Load > Close & Load To.

In the Import Data dialog box, select Add this data to the Data Model .

Tip Sometimes the Load To command is dimmed or disabled. This can occur the first time you create a query in a workbook. If this occurs, select Close & Load, in the new worksheet, select Data > Queries & Connections > Queries tab, right click the query, and then select Load To. Alternatively, on the Power Query Editor ribbon select Query > Load To.

Load a query from the Queries and Connections pane

In Excel, you may want to load a query into another worksheet or Data Model.

In Excel, select Data > Queries & Connections, and then select the Queries tab.

In the list of queries, locate the query, right click the query, and then select Load To. The Import Data dialog box appears.

Decide how you want to import the data, and then select OK. For more information about using this dialog box, select the question mark (?).

There are several ways to edit a query loaded to a worksheet.

Edit a query from data in Excel worksheet

To edit a query, locate one previously loaded from the Power Query Editor, select a cell in the data, and then select Query > Edit.

Edit a query from the Queries & Connections pane

You may find the Queries & Connections pane is more convenient to use when you have many queries in one workbook and you want to quickly find one.

In Excel, select Data > Queries & Connections, and then select the Queries tab.

In the list of queries, locate the query, right click the query, and then select Edit.

Edit a query from the Query Properties dialog box

In Excel, select Data > Data & Connections > Queries tab, right click the query and select Properties, select the Definition tab in the Properties dialog box, and then select Edit Query.

Tip If you are in a worksheet with a query, select Data > Properties, select the Definition tab in the Properties dialog box, and then select Edit Query.

A Data Model typically contains several tables arranged in a relationship. You load a query to a Data Model by using the Load To command to display the Import Data dialog box, and then selecting the Add this data to the Data Model check box. For more information about Data Models, see Find out which data sources are used in a workbook data model, Create a Data Model in Excel, and Use multiple tables to create a PivotTable.

To open the Data Model, select Power Pivot > Manage.

At the bottom of the Power Pivot window, select the worksheet tab of the table you want.

Confirm that the correct table displays. A Data Model can have many tables.

Note the name of the table.

To close the Power Pivot window, select File > Close. It may take a few seconds to reclaim memory.

Select Data > Connections & Properties > Queries tab, right click the query, and then select Edit.

When finished making changes in the Power Query Editor, select File > Close & Load.

The query in the worksheet and the table in the Data Model are updated.

If you notice that loading a query to a Data Model takes much longer than loading to a worksheet, check your Power Query steps to see if you are filtering a text column or a List structured column by using a Contains operator. This action causes Excel to enumerate again through the entire data set for each row. Furthermore, Excel can’t effectively use multithreaded execution. As a workaround, try using a different operator such as Equals or Begins With.

Microsoft is aware of this problem and it is under investigation.

You can load a Power Query:

To a worksheet. In the Power Query Editor, select Home > Close & Load > Close & Load.

To a Data Model. In the Power Query Editor, select Home > Close & Load > Close & Load To.

By default, Power Query loads queries to a new worksheet when loading a single query, and loads multiple queries at the same time to the Data Model. You can change the default behavior for all your workbooks or just the current workbook. When setting these options, Power Query doesn’t change query results in the worksheet or the Data Model data and annotations.

You can also dynamically override the default settings for a query by using the Import dialog box which displays after you select Close & Load To.

Global settings that apply to all your workbooks

In the Power Query Editor, select File > Options and settings > Query Options.

In the Query Options dialog box, on the left side, under the GLOBAL section, select Data Load.

Under the Default Query Load Settings section, do the following:

Select Use standard load settings.

Select Specify custom default load settings, and then select or clear Load to worksheet or Load to Data Model.

Tip At the bottom of the dialog box, you can select Restore Defaults to conveniently return to the default settings.

Workbook settings that only apply to the current workbook

In the Query Options dialog box, on the left side, under the CURRENT WORKBOOK section, select Data Load.

Do one or more of the following:

Under Type Detection, select or clear Detect column types and headers for unstructured sources.

The default behavior is to detect them. Clear this option if you prefer to shape the data yourself.

Under Relationships, select or clear Create relationships between tables when adding to the Data Model for the first time.

Before loading to the Data Model, the default behavior is to find existing relationships between tables, such as foreign keys in a relational database and import them with the data. Clear this option if you prefer to do this on your own.

Under Relationships, select or clear Update relationships when refreshing queries loaded to the Data Model.

The default behavior is to not update relationships. When refreshing queries already loaded to the Data Model, Power Query finds existing relationships between tables such as foreign keys in a relational database and updates them. This might remove relationships created manually after the data was imported or introduce new relationships. However, if you want to do this, select the option.

Under Background Data, select or clear Allow data previews to download in the background.

The default behavior is to download data previews in the background. Clear this option if you can want to see all the data right away.

Источник

SQL запросы в Microsoft Excel

SQL – популярный язык программирования, который применяется при работе с базами данных (БД). Хотя для операций с базами данных в пакете Microsoft Office имеется отдельное приложение — Access, но программа Excel тоже может работать с БД, делая SQL запросы. Давайте узнаем, как различными способами можно сформировать подобный запрос.

Создание SQL запроса в Excel

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

Способ 1: использование надстройки

Но для начала давайте рассмотрим вариант, когда из Экселя можно создать SQL запрос не с помощью стандартного инструментария, а воспользовавшись сторонней надстройкой. Одной из лучших надстроек, выполняющих эту задачу, является комплекс инструментов XLTools, который кроме указанной возможности, предоставляет массу других функций. Правда, нужно заметить, что бесплатный период пользования инструментом составляет всего 14 дней, а потом придется покупать лицензию.

    После того, как вы скачали файл надстройки xltools.exe, следует приступить к его установке. Для запуска инсталлятора нужно произвести двойной щелчок левой кнопки мыши по установочному файлу. После этого запустится окно, в котором нужно будет подтвердить согласие с лицензионным соглашением на использование продукции компании Microsoft — NET Framework 4. Для этого всего лишь нужно кликнуть по кнопке «Принимаю» внизу окошка.

В правой области окна, которая занимает его большую часть, располагается сам редактор SQL запросов. В нем нужно писать программный код. Наименования столбцов выбранной таблицы там уже будут отображаться автоматически. Выбор столбцов для обработки производится с помощью команды SELECT. Нужно оставить в перечне только те колонки, которые вы желаете, чтобы указанная команда обрабатывала.

Далее пишется текст команды, которую вы хотите применить к выбранным объектам. Команды составляются при помощи специальных операторов. Вот основные операторы SQL:

  • ORDER BY – сортировка значений;
  • JOIN – объединение таблиц;
  • GROUP BY – группировка значений;
  • SUM – суммирование значений;
  • DISTINCT – удаление дубликатов.

Кроме того, в построении запроса можно использовать операторы MAX, MIN, AVG, COUNT, LEFT и др.

В нижней части окна следует указать, куда именно будет выводиться результат обработки. Это может быть новый лист книги (по умолчанию) или определенный диапазон на текущем листе. В последнем случае нужно переставить переключатель в соответствующую позицию и указать координаты этого диапазона.

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

Способ 2: использование встроенных инструментов Excel

Существует также способ создать SQL запрос к выбранному источнику данных с помощью встроенных инструментов Эксель.

  1. Запускаем программу Excel. После этого перемещаемся во вкладку «Данные».
  2. В блоке инструментов «Получение внешних данных», который расположен на ленте, жмем на значок «Из других источников». Открывается список дальнейших вариантов действий. Выбираем в нем пункт «Из мастера подключения данных».
  3. Запускается Мастер подключения данных. В перечне типов источников данных выбираем «ODBC DSN». После этого щелкаем по кнопке «Далее».
  4. Открывается окно Мастера подключения данных, в котором нужно выбрать тип источника. Выбираем наименование «MS Access Database». Затем щелкаем по кнопке «Далее».
  5. Открывается небольшое окошко навигации, в котором следует перейти в директорию расположения базы данных в формате mdb или accdb и выбрать нужный файл БД. Навигация между логическими дисками при этом производится в специальном поле «Диски». Между каталогами производится переход в центральной области окна под названием «Каталоги». В левой области окна отображаются файлы, расположенные в текущем каталоге, если они имеют расширение mdb или accdb. Именно в этой области нужно выбрать наименование файла, после чего кликнуть на кнопку «OK».
  6. Вслед за этим запускается окно выбора таблицы в указанной базе данных. В центральной области следует выбрать наименование нужной таблицы (если их несколько), а потом нажать на кнопку «Далее».
  7. После этого открывается окно сохранения файла подключения данных. Тут указаны основные сведения о подключении, которое мы настроили. В данном окне достаточно нажать на кнопку «Готово».
  8. На листе Excel запускается окошко импорта данных. В нем можно указать, в каком именно виде вы хотите, чтобы данные были представлены:
    • Таблица;
    • Отчёт сводной таблицы;
    • Сводная диаграмма.

Выбираем нужный вариант. Чуть ниже требуется указать, куда именно следует поместить данные: на новый лист или на текущем листе. В последнем случае предоставляется также возможность выбора координат размещения. По умолчанию данные размещаются на текущем листе. Левый верхний угол импортируемого объекта размещается в ячейке A1.

После того, как все настройки импорта указаны, жмем на кнопку «OK».

  • Как видим, таблица из базы данных перемещена на лист. Затем перемещаемся во вкладку «Данные» и щелкаем по кнопке «Подключения», которая размещена на ленте в блоке инструментов с одноименным названием.
  • После этого запускается окно подключения к книге. В нем мы видим наименование ранее подключенной нами базы данных. Если подключенных БД несколько, то выбираем нужную и выделяем её. После этого щелкаем по кнопке «Свойства…» в правой части окна.
  • Запускается окно свойств подключения. Перемещаемся в нем во вкладку «Определение». В поле «Текст команды», находящееся внизу текущего окна, записываем SQL команду в соответствии с синтаксисом данного языка, о котором мы вкратце говорили при рассмотрении Способа 1. Затем жмем на кнопку «OK».
  • После этого производится автоматический возврат к окну подключения к книге. Нам остается только кликнуть по кнопке «Обновить» в нем. Происходит обращение к базе данных с запросом, после чего БД возвращает результаты его обработки назад на лист Excel, в ранее перенесенную нами таблицу.
  • Способ 3: подключение к серверу SQL Server

    Кроме того, посредством инструментов Excel существует возможность соединения с сервером SQL Server и посыла к нему запросов. Построение запроса не отличается от предыдущего варианта, но прежде всего, нужно установить само подключение. Посмотрим, как это сделать.

    1. Запускаем программу Excel и переходим во вкладку «Данные». После этого щелкаем по кнопке «Из других источников», которая размещается на ленте в блоке инструментов «Получение внешних данных». На этот раз из раскрывшегося списка выбираем вариант «С сервера SQL Server».
    2. Происходит открытие окна подключения к серверу баз данных. В поле «Имя сервера» указываем наименование того сервера, к которому выполняем подключение. В группе параметров «Учетные сведения» нужно определиться, как именно будет происходить подключение: с использованием проверки подлинности Windows или путем введения имени пользователя и пароля. Выставляем переключатель согласно принятому решению. Если вы выбрали второй вариант, то кроме того в соответствующие поля придется ввести имя пользователя и пароль. После того, как все настройки проведены, жмем на кнопку «Далее». После выполнения этого действия происходит подключение к указанному серверу. Дальнейшие действия по организации запроса к базе данных аналогичны тем, которые мы описывали в предыдущем способе.

    Как видим, в Экселе SQL запрос можно организовать, как встроенными инструментами программы, так и при помощи сторонних надстроек. Каждый пользователь может выбрать тот вариант, который удобнее для него и является более подходящим для решения конкретно поставленной задачи. Хотя, возможности надстройки XLTools, в целом, все-таки несколько более продвинутые, чем у встроенных инструментов Excel. Главный же недостаток XLTools заключается в том, что срок бесплатного пользования надстройкой ограничен всего двумя календарными неделями.

    Источник

    Термины «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.png

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

    Принципиальной особоенностью 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.

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

    powerview.gif

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

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

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

    Power BI

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

    1. Power BI Desktop — программа для анализа и визуализации данных, включающая в себя, помимо прочего, весь функционал надстроек Power Query и Power Pivot + улучшенные механизмы визуализации из Power View и Power Map. Скачать и установить её можно совершенно бесплатно с сайта Microsoft.

    Сайт 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

    3. Power BI Mobile — приложение для iOS / Android / Windows для подключения к Power BI Service и удобного просмотра (не редактирования) созданных отчетов и дашбордов прямо на экране телефона или планшета. Скачать его (совершенно бесплатно) можно тут.

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

    Отчет в Power BI Mobile

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

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

    Ссылки по теме

    • Проектная диаграмма Ганта в Excel с помощью Power Query
    • Как создать в Excel базу данных с помощью Power Pivot
    • Визуализация движения по маршруту на карте в Power Map

    Время на прочтение
    7 мин

    Количество просмотров 194K

    image

    В данной статье я хочу рассказать о некоторых возможностях бесплатной и крайне полезной, но пока еще мало известной надстройки над MS Excel под названием Power Query.

    Power Query позволяет забирать данные из самых разных источников (таких как csv, xls, json, текстовых файлов, папок с этими файлами, самых разных баз данных, различных api вроде Facebook opengraph, Google Analytics, Яндекс.Метрика, CallTouch и много чего еще), создавать

    повторяемые последовательности обработки

    этих данных и загружать их внутрь таблиц Excel или самого data model.

    И вот под катом вы можете найти подробности всего этого великолепия возможностей.

    Совместимость и технические подробности

    Power Query доступен бесплатно для всех версий Windows Excel 2010, 2013 и встроен по умолчанию в Windows Excel 2016. Для пользователей MacOS X Power Query недоступен (впрочем, даже без этого маковский Excel отвратителен на ощупь и продвинутые пользователи, включая меня, чаще всего работают с нормальным Excel через Parallels или запуская его на удаленной виндовой машинке).

    Также, Power Query встроен в новый продукт для бизнес аналитики — Power BI, а еще, ходят слухи, что Power Query будет появляться и в составе других продуктов от Microsoft. Т.е. Power Query ждет светлое будущее и самое время для адептов технологий Microsoft (и не только) заняться его освоением.

    Как оно работает

    После установки Power Query в интерфейсе Excel 2010–2013 появляется отдельная одноименная вкладка.

    В новом Excel 2016 функционал Power Query доступен на вкладке Data (данные), в блоке “Get & Transform”.

    Сначала, в интерфейсе Excel мы выбираем конкретный источник данных, откуда нам их нужно получить, и перед нами открывается окошко самого Power Query с предпросмотром первых строчек загруженных данных (область 1). В верхней части окошка располагается Ribbon с командами по обработке данных (область 2). И в правой части экрана (область 3) у нас расположена панель с последовательностью всех действий, которые применяются к данным.

    Возможности Power Query

    У Power Query очень много возможностей и я хочу остановиться на некоторых из числа моих любимых.

    Как я уже писал выше, Power Query замечателен тем, что позволяет подключаться к самым разным источникам данных. Так он позволяет загружать данные из CSV, TXT, XML, json файлов. Притом процесс выбора опций загрузки тех-же CSV файлов гибче и удобнее, чем он реализован штатными средствами Excel: кодировка автоматически выбирается часто правильно и можно указать символ разделителя столбцов.

    Объединение файлов лежащих в папке

    Power Query умеет забирать данные из указанной папки и объединять их содержимое в единые таблицы. Это может быть полезно, например, если вам периодически приходят какие-то специализированные отчеты за отдельный промежуток времени, но данные для анализа нужны в общей таблице. Гифка

    Текстовые функции

    К столбцам из текста в Power Query по нажатию на кнопки на Ribbon можно применять такие функции как:

    1. Разделить столбец по символу или по количеству символов. И в отличие от Excel можно задать максимальное количество столбцов, а также направление откуда нужно считать символы — слева, справа.
    2. Изменить регистр ячеек в столбце
    3. Подсчитать количество символов в ячейках столбца.

    Числовые функции

    К столбцам с числовыми значениями по нажатию на кнопки на Ribbon можно применять:

    1. Арифметические операции
    2. Возводить в степени, вычислять логарифмы, факториалы, корни
    3. Тригонометрические операции
    4. Округлять до заданных значений
    5. Определять четность и т.д.

    Функции для работы с датами, временем и продолжительностью

    К столбцам со значениями даты и времени по нажатию на кнопки на Ribbon можно применять:

    1. Автоматическое определение формата вписанной даты (в excel c этим большая боль)
    2. Извлекать в один клик номер месяца, дня недели, количество дней или часов в периоде и т.п.

    Unpivot — Pivot

    В интерфейсе Power Query есть функция “Unpivot”, которая в один клик позволяет привести данные с одной метрикой разложенные по столбцам по периодам к форме, которая будет удобна для использования в сводных таблицах (понимаю что трудно написал — смотрите пример). Также, есть функция с обратным действие Pivot. Гифка

    Операция Merge — смерть ВПР

    Функция ВПР (VLOOKUP) одна из наиболее используемых функций в MS Excel. Она позволяет подтягивать данные в одну таблицу из другой таблицы по единому ключу. И вот как раз для этой функции в Power Query есть гораздо более удобная альтернатива — операция Merge. При помощи этой операции соединение таблиц нескольких таблиц в одну по ключу (по простому или по составному ключу, когда соответствие нужно находить по нескольким столбцам) выполняется буквально в 7 кликов мыши без ввода с клавиатуры.

    Операция Merge — это аналог join в sql, и ее можно настроить чтобы join был разных типов — Inner (default), Left Outer, Right Outer, Full Outer.

    Upd.Мне тут подсказали, что Power Query не умеет делать Aproximate join, а впр умеет. Чистая правда, из коробки альтернатив нет. Гифка

    Подключение к различным базам данных. Query Folding.

    Power Query также замечателен тем, что умеет цепляться к самым разным базам данных — от MS SQL и MySQL до Postgres и HP Vertica. При этом, вам даже не нужно знать SQL или другой язык базы данных, т.к. предпросмотр данных отображается в интерфейсе Power Query и все те операции, которые выполняются в интерфейсе прозрачно транслируются в язык запросов к базе данных.

    А еще в Power Query есть понятие Query Folding: если вы подключены к совместимой базе данных (на текущий момент это MS SQl), то тяжелые операции по обработке данных Power Query будет стараться выполнить на серверной стороне и забирать к себе лишь обработанные данные. Эта возможность радикально улучшает быстродействие многих обработок.

    Язык программирования “М”

    Надстройка Power Query — это интерпретатор нового, скриптового, специализированного для работы с данными, языка программирования М.

    На каждое действие, которое мы выполняем с данными в графическом интерфейсе Power Query, в скрипт у нас пишется новая строчка кода. Отражая это, в панели с последовательностью действий (область 3), создается новый шаг с говорящим названием. Благодаря этому, используя панель с последовательностью действий, мы всегда можем посмотреть как выглядят у нас данные на каждом шаге обработки, можем добавить новые шаги, изменить настройки применяемой операции на конкретном шаге, поменять их порядок или удалить ненужные шаги. Гифка

    Также, мы всегда можем посмотреть и отредактировать сам код написанного скрипта. И выглядеть будет он примерно так:

    Язык M, к сожалению, не похож ни на язык формул в Excel, ни на MDX и, к счастью, не похож на Visual Basic. Однако, он очень прост в изучении и открывает огромные возможности по манипуляции данными, которые недоступны с использованием графического интерфейса.

    Загрузка данных из Яндекс.Метрики, Google Analytics и прочих Api

    Немного овладев языком “M” я смог написать программки в Power Query, которые умеют подключаться к API Яндекс.Метрики и Google Analytics и забирать оттуда данные с задаваемыми настройками. Программки PQYandexMetrika и PQGoogleAnalytics я выложил в опенсорс на гитхаб под лицензией GPL. Призываю пользоваться. И я буду очень рад, если эти программы будут дорабатываться энтузиастами.

    Для Google Analytics подобного рода экспортеров в разных реализациях достаточно много, но вот для Яндекс.Метрики, насколько я знаю, мой экспортер был первым публично доступным, да еще и бесплатным :)

    Power Query умеет формировать headers для post и get запросов и забирать данные из интернета. Благодаря этому, при должном уровне сноровки, Power Query можно подключить практически к любым API. В частности, я для своих исследований дергаю данные по телефонным звонкам клиентов из CallTouch API, из API сервиса по мониторингу активности за компьютером Rescuetime, занимаюсь парсингом нужных мне веб-страничек на предмет извлечения актуальной информации.

    Еще раз про повторяемость и про варианты применения

    Как я уже писал выше, скрипт Power Query представляет собой повторяемую последовательность манипуляций, применяемых к данным. Это значит, что однажды настроив нужную вам обработку вы сможете применить ее к новым файлам изменив всего один шаг в скрипте — указав путь к новому файлу. Благодаря этому можно избавиться от огромного количества рутины и освободить время для продуктивной работы — анализа данных.

    Я занимаюсь веб-аналитикой и контекстной рекламой. И так уж получилось, что с момента, как я познакомился с Power Query в ее интерфейсах я провожу больше времени, чем в самом Excel. Мне так удобнее. Вместе с тем возросло и мое потребление другой замечательной надстройки в MS Excel — PowerPivot.

    Вот часть задач, которые я делаю с использованием Power Query:

    1. разбираю семантику для Толстых проектов,
    2. Делаю частотные словари,
    3. Создаю веб-аналитические дашборды и отчеты для анализа конкретных срезов,
    4. Восстанавливаю достижение целей в системах веб-аналитики, если они не настроены на проекте,
    5. Сглаживаю прогноз вероятности методами Андрея Белоусова (+Байеса:),
    6. Делаю аудит контекстной рекламы на данных из K50 статистика,
    7. И много других разных ad-hoc analysis задач, которые нужно сделать лишь однажды

    Вот bi систему, про которую я рассказывал на Yac/M 2015 (видео) я делал полнстью при помощи Power Query и загружал данные внутрь PowerPivot.

    Пару слов про локализацию

    На сайте Microsoft для пользователей из России по умолчанию скачивается Power Query с переведенным на русским язык интерфейсом. К счастью, локализаторы до перевода на русский языка программирования (как это сделано с языком формул в excel) не добрались, однако жизнь пользователям неоднозначными переводами сильно усложнили. И я призываю вас скачивать, устанавливать и пользоваться английской версией Power Query. Поверьте, она будет гораздо понятнее.

    Ссылки по теме

    Официальные ресурсы на английском:

    1. Скачать Английскую версию Power Query
    2. Справка по формулам языка M
    3. Ветка Форума Microsoft Technet про Power Query

    На момент написания статьи на русском языке информации по Power Query практически нет, и то что мной найдено приведено ниже:

    1. Импорт данных из таблиц в Google Spreadsheets
    2. Power BI. Получаем данные из REST API
    3. Сообщество продвинутых пользователей Excel, Power Pivot и Power Query в Facebook
    4. Обновляемая страничка в Marketing-wiki про Power Query

    На английском:

    1. Видео с демонстрацией возможностей Power Query на конференции TechEd North America
    2. Блог Chris Webb, пожалуй наиболее полный ресурс с примерами использования Power Query
    3. Книга Chris Webb — Power Query for Power BI and Excel
    4. Блог Ken Puls
    5. Курс «Excel для интернет-маркетинга»
    6. Курс «Power BI для интернет-маркетинга»
    7. Книга Ken Puls и Miguel Escobar — M is for Data Monkey



    Что это?
    Power Query – это бесплатная надстройка для продуктов «Майкрософт», которая значительно облегчает работу с данными: сбор, подготовку, преобразование. Ее не нужно скачивать и как-то специально настраивать.



    Как использовать?
    Интерфейс PQ интуитивно понятен, разобраться в нём не составит труда. Чтобы понять, на что способна эта надстройка, и получить базовые навыки работы в ней, читайте наш материал.

    В статье рассказывается:

    1. Возможности Power Query
    2. Подключение к данным в Power Query
    3. Предварительная настройка Power Query
    4. Редактор запросов Power Query
    5. Преобразование данных в Power Query
    6. Строка формул и расширенный редактор
    7. Типы данных Power Query
    8. Импорт данных из Power Query
    9. Использование Power Query в продуктах и службах «Майкрософт»
    10. Пройди тест и узнай, какая сфера тебе подходит:
      айти, дизайн или маркетинг.

      Бесплатно от Geekbrains

    В статьях о MS Excel в последнее время часто встречаются малопонятные термины, начинающиеся со слова Power. Из контекста этих материалов не всегда получается понять, что подразумевается под Power Query, Power Pivot, Power BI и т. п. Самое главное — неясно, каким образом эти понятия связаны между собой и какую пользу они приносят простому пользователю табличного редактора.

    Возможности Power Query

    Возможности Power Query

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

    • Загрузка данных в таблицу Excel

    Экспортировать данные можно из почти 40 сторонних форматов: SQL, Oracle, MS Access, Teradata, целый ряд корпоративных систем ERP (SAP, Microsoft Dynamics, 1C и др.), а также источники из интернета (почти все сайты, сервисы Facebook и Google Analytics).

    • Сбор информации из файлов всех основных типов данных

    Среди поддерживаемых типов — XLSX, TXT, CSV, JSON, HTML, XML. При этом возможно групповое извлечение данных сразу из нескольких файлов, находящихся в одной папке. Доступна автоматическая загрузка информации из всех листов Excel.

    Скачать файл

    • Очищение полученных данных от лишних элементов

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

    • Приведение данных к нужному виду

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

    • Приведение таблицы к нужному виду

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

    • Подстановка значений из одной таблицы в другую

    Эта операция выполняется по совпадению одного или нескольких параметров. Таким образом, она является полной заменой встроенной в Excel функции ВПР (VLOOKUP) и ее аналогов.

    Надстройка представлена в двух вариантах: как отдельный модуль, доступный для скачивания с официального сайта Microsoft (для Excel 2010-13), и как сервисная функция в составе редактора (для Excel 2016). В первом варианте установка PQ добавляет в таблицу новую вкладку. Во втором же случае весь функционал надстройки уже имеется в табличном редакторе по умолчанию — он доступен как группа Get & Transform (Получить и преобразовать) во вкладке Data (Данные).

    Оба варианта имеют абсолютно одинаковые возможности.

    Power Query обладает отличительной особенностью: все совершенные операции сохраняются как запрос из совокупности шагов, представленный на внутреннем языке программирования M. Каждый шаг может редактироваться и повторяться неограниченное число раз. При этом происходит обновление запроса.

    Многие пользователи считают эту надстройку самой полезной в Excel. С ее помощью значительно облегчается выполнение многих рутинных задач. В прежние времена для автоматизации действий писались сложные макросы, теперь же это легко выполняется в PQ. К тому же этот инструмент абсолютно бесплатен, что делает его лидером среди возможных конкурентов. Сегодня он должен иметься в арсенале каждого пользователя Excel, обладающего навыками работы выше среднего.

    Подключение к данным в Power Query

    Как упоминалось ранее, подключаться могут данные из большого количества различных источников. Это и другие Excel-таблицы, и базы данных популярных форматов, и данные из OData, и даже документы PDF. Также доступна загрузка информации из Power BI с последующим написанием запроса с нуля.

    Как получить полный список источников, с которыми может работать Power Query? Excel позволяет увидеть в разделе «Получить данные» («Создать запрос»), находящемся во вкладке «Данные».

    Подключение к данным в Power Query

    Подключение к данным в Power Query

    Разберем этот процесс на примере переноса значений из обычной таблицы.

    Сперва необходимо выделить таблицу и перейти в меню «Из таблицы». В разных версиях редактора это делается по-разному:

    • Excel 2010-13 — через вкладку «Power Query».
    • Excel 2016 и выше — через меню Данные.

    Подключение к данным в Power Query

    Подключение к данным в Power Query

    Откроется окно, в котором нужно поставить галочку «Таблица с заголовками».

    После этого произойдет преобразование обычной таблицы в «умную». Останется перейти во вкладку «Главная» и нажать «Закрыть и загрузить».

    Подключение к данным в Power Query

    Подключение к данным в Power Query

    Далее для данного файла полезно посмотреть запросы Power Query. Списки их доступны во вкладке «Данные» в разделе «Запросы и подключения».

    Предварительная настройка Power Query

    Редактор запросов в Excel открывается следующим образом:

    • Вкладка «Данные» — раздел «Получить и преобразовать данные» — пункт «Получить данные» — «Запустить редактор запросов»

    pdf иконка

    Топ-30 самых востребованных и высокооплачиваемых профессий 2023

    Поможет разобраться в актуальной ситуации на рынке труда

    doc иконка

    Подборка 50+ ресурсов об IT-сфере

    Только лучшие телеграм-каналы, каналы Youtube, подкасты, форумы и многое другое для того, чтобы узнавать новое про IT

    pdf иконка

    ТОП 50+ сервисов и приложений от Geekbrains

    Безопасные и надежные программы для работы в наши дни

    Уже скачали 20433 pdf иконка

    Далее в открывшемся окне выполняются следующие действия: «Файл» — «Параметры и настройки» — «Параметры запроса» — «Редактор Power Query». Здесь напротив пункта «Отобразить редактор запросов» должна быть поставлена галочка.

    Теперь необходимо перейти в пункт «Конфиденциальность» и включить опцию «Всегда игнорировать уровни конфиденциальности». После нажатия на кнопку ОК нужно перезапустить редактор.

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

    Открыть редактор также можно путем двойного клика по имени запроса на вкладке «Запросы и подключения». Рассмотрим интерфейс более подробно.

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

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

    Редактор запросов состоит из следующих функциональных блоков:

    • Лента для вкладок «Главная», «Преобразование», «Добавить столбец» и «Просмотр».
    • Список созданных запросов (может быть свернут).
    • Строка для ввода формул.
    • Имя открытого запроса.
    • История выполненных операций над запросом и данными (доступны редактирование шагов, изменение их последовательности выполнения, добавление новых или удаление существующих шагов).

      Анализ данных в Еxcel: активация функций, возможности ПО

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

    • Область предварительного просмотра, позволяющая просматривать в реальном времени результат изменений на каждом шаге.
    • Меню операций с данными (может быть открыто кликом правой клавишей мыши).
    • Контекстное меню каждого шага (в случае выбора этого шага правой клавишей мыши).

    Преобразование данных в Power Query

    Полезно подробнее изучить, каким образом преобразовывать данные посредством Power Query. Пример, рассмотренный ниже, наглядно продемонстрирует достаточно простую работу с надстройкой.

    Итак, имеется таблица расходов, разбитых по месяцам, а также разделенных на две категории.

    Только до 20.04

    Скачай подборку тестов, чтобы определить свои самые конкурентные скиллы

    Список документов:

    Тест на определение компетенций

    Чек-лист «Как избежать обмана при трудоустройстве»

    Инструкция по выходу из выгорания

    Чтобы получить файл, укажите e-mail:

    Подтвердите, что вы не робот,
    указав номер телефона:


    Уже скачали 7503

    Общеизвестно, что такое форматирование данных не позволит построить сводную таблицу. Для приведения значений к нужной структуре используем функционал PQ. Последовательность действий будет следующей:

    • Выделение всей таблицы либо одной ячейки.
    • Выбор пункта «Из таблицы» (или « Из таблицы/диапазона») во вкладке «Данные».
    • Активация опции «Таблица с заголовками» в открывшемся окне.
    • Выделение столбцов с месяцами (например, май и июнь) путем одновременного нажатия Ctrl и левой клавиши мыши по соответствующим названиям столбцов внутри редактора запросов.
    • Преобразование таблицы (меню «Преобразование» — «Заполнить» — «Вниз») с заполнением пустых строк значениями верхних ячеек.

    Преобразование данных в Power Query

    Преобразование данных в Power Query

    Все действия, выполняемые с использованием надстройки, автоматически фиксируются. Они отображены в правой части рабочего пространства («Параметры запроса» — «Примененные шаги»).

    Как уже упоминалось, шаги запроса доступны для редактирования. Для этого необходимо выбрать конкретное действие указателем мыши и изменить это действие. Изменение сразу же отобразится в панели предварительного просмотра. Перемещение или добавление шагов также осуществляется мышью.

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

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

    Строка формул и расширенный редактор

    В работе с графическим редактором рано или поздно возникают ситуации, когда штатными средствами грамотно преобразовать данные не представляется возможным. Это требует особой конфигурации программы с применением параметров, не поддерживаемых графическим интерфейсом. Для таких случаев существуют специальные формулы Power Query, являющиеся частью встроенного языка M. Подсистема позволяет выполнять скрипты преобразований в фоновом режиме.

    Язык преобразования данных M обрабатывает каждое событие, происходящее внутри запроса. Однако для использования расширенного функционала PQ лучше использовать соответственно расширенный редактор.

    Он предоставляет полный доступ к скрипту запроса для последующей модификации. Другими словами, если функции пользовательского интерфейса не обеспечивают требуемую точность, следует воспользоваться расширенным редактором и инструментами языка M для гибкой настройки функций и преобразований.

    При этом глубоко разбираться в коде необязательно. Большая часть операций выполняется мышью по пунктам меню.

    Для ввода формул используется соответствующая строка, которая по умолчанию скрыта. Для ее включения необходимо перейти во вкладку «Просмотр» и активировать пункт «Строка формул».

    Строка формул и расширенный редактор

    Строка формул и расширенный редактор

    Ознакомиться с доступными формулами можно в этом же блоке, нажав на кнопку «Расширенный редактор». Откроется окно, в котором отобразится полный текст запроса.

    Типы данных Power Query

    Типы данных — это неотъемлемая составляющая любого запроса PQ. Поэтому их обязательно нужно определять. Как правило, типы данных задаются после всех выполненных преобразований. Делается это одним из трех способов:

    • через вкладку «Главная», далее «Тип данных» («Преобразование»), далее «Определить тип данных»;
    • через клик указателем мыши по значку типа данных в названии столбца;
    • через вкладку «Преобразование», далее «Дата», далее «Выполнить анализ».

    Какие возможности Еxcel вы еще не используете

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

    Проверку правильности задания типов данных нужно проводить перед каждым сохранением запроса. При этом рекомендуется вручную удалять автоматически добавляемый шаг «Измененный тип».

    Импорт данных из Power Query

    Что делать с данными после преобразования в Power Query? Как добавить их в другие программы? Разберем несколько доступных вариантов импорта данных.

    Для начала следует определить подходящие способы в процессе сохранения запроса («Главная» — «Закрыть и загрузить в…»). В сохраненном запросе параметры импорта задаются на вкладке «Запросы и подключения» путем клика правой клавишей мыши по названию запроса и выбора «Загрузить в…».

    В редакторе Excel предлагается импортировать преобразованные данные одним из нескольких способов:

    • Выгрузка на лист

    Сперва задаем способ представления данных, затем переходим во вкладку «Таблица», далее вставляем данные на лист. При этом автоматически создается смарт-таблица.

    • Сводная таблица (диаграмма)

    Здесь после определения способа представления нужно перейти в «Отчет сводной таблицы» («Сводная таблица»). Импорт данных будет выполнен в соответствующем виде.

    • Только подключение

    Для сохранения запроса следует выбрать пункт «Только создать подключение».

    • Добавление данных в модель данных

    Активация пункта «Добавить эти данные в модель данных» приводит к добавлению выбранных данных в модель Power Pivot.

    Использование Power Query в продуктах и службах «Майкрософт»

    Различные продукты от Microsoft могут так или иначе поддерживать Power Query. Таблица, приведенная ниже, демонстрирует наличие либо отсутствие этой настройки в конкретном ПО.

    Продукт M engine1 Power Query
    Desktop2
    Power Query
    Online3
    Потоки данных 4
    Excel для Windows + +
    Excel для Mac +
    Power BI + + + +
    Power Apps + + +
    Power Automate + +
    Сервер отчетности Power BI + +
    Облачная платформа Azure + + +
    Сервисы интеграции SQL Server +
    Сервисы аналитики SQL Server + +
    Dynamics 365 Customer Insights + + +
    Mengine Используется язык M для базового механизма выполнения запросов.
    Power Query Desktop Интерфейс PQ используется в классических приложениях.
    Power Query Online Интерфейс PQ используется в веб-приложениях.
    Dataflows PQ представлен в качестве облачного сервиса, не зависящего от конкретного продукта. Результаты преобразований данных используются другими приложениями.

    Итак, Power Query обладает внушительным арсеналом средств для автоматизации рутинных действий, связанных с обработкой данных из различных источников. У каждого опытного пользователя MS Excel эта надстройка должна быть подключена, изучить ее возможности под силу практически каждому.

    Like this post? Please share to your friends:
  • Что такое excel project
  • Что такое excel preview
  • Что такое excel power view
  • Что такое excel power pivot
  • Что такое excel plot