Как я могу использовать запросы SQL в Excel, чтобы объединить две таблицы на разных листах в одной книге? - PullRequest
0 голосов
/ 03 октября 2019

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

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

По сути, я хочуExcel для выполнения этого оператора SQL:

create table joined_table as 
select id, property_1 from [Sheet1$A1B100] as a
left join id, property_2 from [Sheet2$A1B50] as b
on a.id=b.id

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

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Это выполнимо, но не просто.

Допустим, ваши таблицы находятся на отдельных листах 'table1' и 'table2'. Первый шаг от здесь

  • Нажмите «Данные» на ленте Excel. Нажмите значок «Из других источников» в разделе «Получение внешних данных». Нажмите «Из запроса Microsoft» в раскрывающемся меню
  • Выберите файл Excel (текущий файл Excel)
  • Если вы не видите таблиц, см. эту ссылку
  • При добавлении таблиц в список вы, вероятно, увидите ошибку, из-за которой Microsoft Query не смог автоматически объединить таблицы. Нажмите ok.
  • Добавить запрос (view-> SQL)

Запрос (обратите внимание на галочки):

SELECT table1$.id, table1$.property_1, table2$.property_2 
FROM {oj `C:\yourpath\yourfile.xlsx`.`table1$` `table1$`
LEFT OUTER JOIN `C:\yourpath\yourfile.xlsx`.`table2$` `table2$`
ON  table2$.id =table1$.id}
  • Файл -> Возвратданные в excel
0 голосов
/ 03 октября 2019

Вы можете использовать ADO для подключения к файлу Excel и использовать рабочий лист в качестве таблицы базы данных. Но это сложно в 64-битном офисе и предполагает, что у вас установлены драйверы ADO для Excel. Данные должны храниться в файле формата XLSX, с одной таблицей на лист, и по умолчанию предполагается, что имена полей находятся в первой строке с данными ниже. (У меня нет драйверов, и я нахожусь в 64-битном офисе, поэтому я не могу дать вам пример, но Это может помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...