Обновление power query excel 2016

 

artyrH

Пользователь

Сообщений: 2054
Регистрация: 01.07.2018

#1

21.06.2019 13:16:06

добрый день. хотел бы узнать как обновить Power Query в Excel 2016?
у меня стоит Excel 2016 (вариант для бедных, т.е. без оплаченой лицензии) с версией PQ — 2.24.4065.1401. уже несколько раз приходилось переделывать запросы из за отсутствия некоторых функций. так же у меня стоит Excel 2010, но с ней легче, так как надстройка PQ скачивается отдельно. а вот что делать с PQ в Excel2016?

  • Remove From My Forums
  • General discussion

  • Hi guys,

    how do you update Powerquery add-in in Excel 2016? When I download it from here: https://www.microsoft.com/en-us/download/details.aspx?id=39379

    I am able to install the latest version over the older one in Excel 2013 but not in Excel 2016.

    When I try 2016, I get message that «I already have the latest version» which is certainly not the case since I dont see some new features which can be seen in the 2013 version.

    DZ

    • Edited by

      Tuesday, June 21, 2016 2:29 PM

The monthly update cycle for Excel’s Power Query sure keeps us on our toes.

Power Query Updates for Excel 2010 and 2013

If you’re using Excel 2010, 2013 then you update Power Query by going to the Power Query download page and getting the latest copy and reinstalling it. No need to uninstall first, just download and install again.

Power Query Updates for Excel 2016 (non-subscription)

For Excel 2016 users who aren’t on an Office 365 subscription there’s bad news and good news. The bad news is you don’t get updates, the good news is you don’t have to re-learn how to do things in Power Query because Microsoft changed something!

That’s not to say the good outweighs the bad 😉

Power Query Updates for Excel 2016 Office 365

For Excel 2016 users with an Office 365 subscription your updates come at different intervals depending on your update channel. By default, Office 365 is installed on the Deferred Channel. This is often up to 6 months behind the Current Channel.

To find what Channel you’re on go to the File tab > Account. Below the Version number in the Product Information you’ll see the channel details. For example, this is what mine looks like:

MS Office product information

You can see I’m on a ‘special’ Office Insider Slow channel, the standard channels are Deferred and Current. You can find the updates available for the various channels on this page (change the radio buttons on the left-hand side to view the details for the different channels).

And this page explains how to switch to the current channel.

Updating Power Query Course

On my short-term to-do list is updating the Power Query course for the Excel 2016 menu (remember it’s only the Excel ribbon/menu, not the Power Query Editor menu itself), however with the constant changes it’s a moving target. For example, for non-updating versions of Excel 2016 the menu looks like this:

updating Power Query course

But recently my Excel 2016 Power Query menu has changed again and now looks like this:

Power Query menu 2016

Where do you think you’d click if you now wanted a ‘New Query’? If you said ‘Get Data’ you’d be right.

Did you also notice the old ‘Get External Data’ group has gone? It’s now hidden and only recoverable by changing the settings in Excel Options (via File tab):

Excel Options settings

Microsoft hid the old Get External Data menu because Power Query is the new Get data tool and it’s light years ahead of the legacy data import processes.

So, as Excel users these days we need to get used to Microsoft moving our menus around as they continue to develop and improve our beloved Excel.

And, as I’ve said before, when we’re learning we need to be prepared to go looking for icons and tools that look one way in a video, book or blog post, and are different in the latest version of the software we now have at our fingertips. To help us locate rogue icons we must comprehend the task, we can’t just copy clicks and learn by rote. Because when we comprehend the task we can use our understanding to bridge the gap between what we see in the video, book or blog post and the menus we have on our PC.

Of course, if you get stuck, our Excel Forum is where you can go for help.

Learn Power Query

Power Query is the most important Excel skill you can learn this year. It’s going to give you the most bang for your training buck because it’s for every Excel user. I can’t think of an Excel job that doesn’t involve getting data from somewhere, cleaning that data, adding columns and calculations to that data, and all before we can use it for reporting, or further analysis.

Power Query simplifies and automates these repetitive tasks with point and click ease.

If you haven’t got yourself up to speed with Power Query yet, then please check out my Power Query course.

  • Remove From My Forums
  • General discussion

  • Hi guys,

    how do you update Powerquery add-in in Excel 2016? When I download it from here: https://www.microsoft.com/en-us/download/details.aspx?id=39379

    I am able to install the latest version over the older one in Excel 2013 but not in Excel 2016.

    When I try 2016, I get message that «I already have the latest version» which is certainly not the case since I dont see some new features which can be seen in the 2013 version.

    DZ

    • Edited by

      Tuesday, June 21, 2016 2:29 PM

Хитрости »

12 Январь 2023              920 просмотров


С выходом Power Query в массы все чаще стал появляться вопрос: как обновить запросы один за другим в заданном порядке?

Если еще не работали с этой надстройкой и не знаете что это такое, то для начала лучше ознакомиться со статьей: Power Query — что такое и почему её необходимо использовать в работе?
Описание проблемы

В книге может быть десять и более запросов. И только 4 из них надо обновлять постоянно, да еще и в заданном порядке. Например, у нас есть с десяток запросов по продажам, отгрузкам и прочей аналитике, но только 4 из них нам надо обновить. При этом обновить надо в строгой последовательности:

«Запрос — Отделы», «Запрос — Сотрудники», «Заказы и Продажи», «Запрос — Бюджет»

. При этом обязательно необходимо, чтобы «Запрос — Бюджет» обновился последним, т.к. он зависит от всех остальных.

Какие есть варианты решения?

  • Вручную
  • Кнопка Обновить все(Refresh All)
  • Написать собственный порядок обновления через Visual Basic for Applications

 
Что еще может пригодиться в решении задачи:

  • Вывести список имен имен всех подключений на лист

Обновление вручную

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


Данные -Обновить все

Кнопка Данные(Data)Обновить все(Refresh All) не просто обновляет все без исключения запросы в книге, но и порядок запросов при этом никак не определить, следовательно мы не можем быть уверены в том, что обновление произошло именно в нужном нам порядке. Но все же не станем отбрасывать этот вариант как не рабочий — если проблема лишь в порядке обновления, то решение все же есть.
На самом деле, если мы имеем дело с Power Query, то правильнее всего выстраивать все взаимосвязи уже на стадии создания этих запросов в любом случае. Т.е. создавать их в правильной последовательности и «затягивать» данные в основной запрос в самую последнюю очередь, ориентируясь на результаты вспомогательных запросов. Это оптимальный вариант, т.к. в этом случае достаточно будет просто обновить нужный запрос, а Power Query сама определит какие вспомогательные запросы необходимо обновить для корректного результата. При этом встроенный механизм Power Query достаточно хорошо справляется с кешированием данных и даже если обновление происходит через кнопку Обновить все(Refresh All), то даже если на один и тот же вспомогательный запрос будет завязано несколько других — он будет обновлен лишь один раз, а не при обновлении каждого запроса.
Но здесь у нас опять же возникает проблема — если нам не надо обновлять все запросы в книге — как Power Query узнает, какие из них надо обновлять, а какие нет? Ответ — никак. Поэтому хоть и следует всегда стараться выстраивать цепочки взаимодействий запросов в «правильном» порядке — нашу проблему с обновлением только части запросов это никак не решит. В этом случае можно создать мастер запрос, в который просто через объединение запросов собирать все нужные. И обновление этого запроса должно инициировать обновление всех указанных в нем запросов со всеми их цепочками. Как создать подобный мастер запрос:

Все, запрос готов. Теперь достаточно обновить только его, чтобы все связанные запросы обновились. Правда, есть одна проблема: если данных много, то такой запрос их увеличит вдвое — ведь мы в один запрос собираем все остальные…


Собственный порядок обновления через Visual Basic for Applications

В решении через мастер-запрос есть одна проблема — запросы могут быть не только Power Query, но и более старых версий. Здесь вариантов вообще не остается — только Visual Basic for Applications. Да и в случае, если запросы уже созданы ранее кем-то еще или навыков создать мастер-запрос нет.

'---------------------------------------------------------------------------------------
' Author : Щербаков Дмитрий(The_Prist)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
'          https://www.excel-vba.ru
'          info@excel-vba.ru
' Purpose: Код обновляет поочередно указанные запросы в заданном порядке
'---------------------------------------------------------------------------------------
Sub RefreshConnections()
    Dim oc, xQuery, aConnections, xConName
    Dim IsBG_Refresh As Boolean
    'создаем перечисление всех запросов, которые надо обновить
    'располагаем их в том порядке, в котором необходимо обновлять
    aConnections = Array("Запрос — Отделы", "Запрос — Сотрудники", "Заказы и Продажи", "Запрос — Бюджет")
    'перебираем и обновляем все запросы поочередно
 
    For Each xConName In aConnections
        Set oc = ActiveWorkbook.Connections(xConName)
        Set xQuery = Nothing
        Select Case oc.Type
        Case Excel.XlConnectionType.xlConnectionTypeODBC
            Set xQuery = oc.ODBCConnection
        Case Excel.XlConnectionType.xlConnectionTypeOLEDB
            Set xQuery = oc.OLEDBConnection
        Case Else
            'запрос выгружен в таблицу на листе
            If oc.Ranges.Count > 0 Then
                Set xQuery = oc.Ranges(1).QueryTable
            End If
        End Select
        'непосредственно обновление запроса с ожиданием окончания обновления
        If Not xQuery Is Nothing Then
            'запоминаем значение обновления в фоне для запроса
            IsBG_Refresh = xQuery.BackgroundQuery
            'выставляем принудительно ждать завершения запроса
            xQuery.BackgroundQuery = False
            'обновляем запрос
            xQuery.Refresh
            'возвращаем обновление в фоне в первоначальное состояние
            xQuery.BackgroundQuery = IsBG_Refresh
        End If
    Next
End Sub

Как использовать: Для начала надо убедиться, что разрешены макросы и при необходимости включить их: почему не работает макрос. Затем копируем код выше, из Excel переходим в редактор VBA(Alt+F11) —InsertModule. Вставляем туда скопированный код. Теперь код можно вызывать нажатием клавиш Alt+F8 -выделяем RefreshConnectionsВыполнить(Run).
Чтобы использовать приведенный код для своих запросов достаточно в строке:

aConnections = Array("Запрос — Отделы", "Запрос — Сотрудники", "Заказы и Продажи", "Запрос — Бюджет")

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


Вывести список всех запросов в книге на лист

Что делать, если

я не знаю, как правильно называются запросы

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

'---------------------------------------------------------------------------------------
' Author : Щербаков Дмитрий(The_Prist)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
'          https://www.excel-vba.ru
'          info@excel-vba.ru
' Purpose: Код выводит на лист все запросы в текущей книге
'---------------------------------------------------------------------------------------
Sub GetAllConnections()
    Dim ws As Worksheet
    Dim lr As Long
    Dim oc, aList()
    'создаем массив для запоминания имен всех запросов
    ReDim aList(1 To ActiveWorkbook.Connections.Count, 1 To 1)
    For Each oc In ActiveWorkbook.Connections
        lr = lr + 1 'увеличиваем счетчик
        aList(lr, 1) = oc.Name
    Next
    'создаем новый лист, в который записываем имена всех запросов
    Set ws = ActiveWorkbook.Worksheets.Add(before:=ActiveWorkbook.Worksheets(1))
    'оформляем заголовок(для эстетики)
    ws.Cells(1, 1).Value = "Имя запроса"
    ws.Cells(1, 1).Font.Bold = True
    'записываем имена всех запросов
    ws.Cells(2, 1).Resize(lr, 1).Value = aList
End Sub

Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Понравилась статья? Поделить с друзьями:
  • Обновление office 2007 word
  • Обновление excel до xlsx
  • Обновить ячейки excel после изменения формата
  • Обновить формулы на листе excel
  • Обновить формул в excel формула