Как соединить два листа в Excel, как в SQL?

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

Я хочу использовать 2-й Список для фильтрации первого. Кроме того, я хочу, чтобы результаты включали другие поля из главного листа вместе с поля адреса со второго листа. Я знаю, как я мог бы сделать это очень легко с внутренним соединением базы данных, но я менее ясен в том, как это сделать эффективно в Excel. Как соединить два листа в Excel? Бонусные очки за то, что они показывают, как делать внешние соединения, и я бы предпочел знать, как это сделать без макроса.

12
задан Joel Coehoorn
14.02.2023 11:13 Количество просмотров материала 3135
Распечатать страницу

10 ответов

для 2007+ использовать Data > From Other Sources > From Microsoft Query:

  1. выбрать Excel File и выберите свой 1-й excel
  2. выбрать столбцы

    (если вы не видите список столбцов, проверьте Options > System Tables)
  3. на Data > Connections > [выбрать соединение просто создан] > Properties > Definition > Command text

теперь вы можете редактировать этот Command text как SQL. Не знаю, какой синтаксис поддерживается, но я пробовал неявный присоединяется, "внутреннее присоединяется", "левое присоединяется" и союзы, которые все работают. Вот пример запроса:

SELECT *
FROM `C:\Users\Peter\Documents\Excel-to-excel\Source_1.xlsx`.`Sheet1$` a
LEFT JOIN `C:\Users\Peter\Documents\Excel-to-excel\Source_2.xlsx`.`Sheet1$` b
ON a.col2 = b.col2
151
отвечен Aprillion 2023-02-15 19:01

поддержите принятый ответ. Я просто хочу подчеркнуть: "выберите столбцы (если вы не видите списка столбцов, не забудьте проверить Options > System Tables)"

после того, как вы выберите файл Excel, очень вероятно, вы увидите this data source contains no visible tables подскажите, а имеющиеся вкладки и столбцы нет. Microsoft признал, что это ошибка что вкладки в файлах excel рассматриваются как" системные таблицы", а параметр" системные таблицы " по умолчанию не выбран. Так что не паникуйте на этом шаге вам просто нужно нажать " option "и проверить" системные таблицы", затем вы увидите доступные столбцы.

11
отвечен Ben Lin 2023-02-15 21:18

VLOOKUP и HLOOKUP можно использовать для поиска соответствующих первичных ключей (хранящихся вертикально или горизонтально) и возвращаемых значений из столбцов/строк "атрибут".

8
отвечен Reuben L. 2023-02-15 23:35

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

в Excel, Как говорит Рубен, формулы, которые, вероятно, будут работать лучше всего VLOOKUP и HLOOKUP. В обоих случаях вы совпадаете по уникальной строке, и она возвращает значение данного столбца\строки влево\вниз от найденного идентификатора.

если вы хотите добавить только пару дополнительных полей во второй список, добавьте формулы ко второму списку. Если вам нужна таблица стилей "внешнее соединение", добавьте VLOOKUP формула в первый список с ISNA чтобы проверить, если запрос был найден. Если в справке Excel недостаточно сведений об их использовании в конкретном экземпляре, сообщите нам об этом.

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

4
отвечен mischab1 2023-02-16 01:52

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

самый простой способ, чтобы ваши 2 листа Excel, как таблицы Excel. Затем в Excel перейдите на вкладку ленты Power Query и нажмите кнопку "из Excel". После того, как вы импортировали обе таблицы в Power Query, выберите одну и нажмите "Объединить".

4
отвечен anotherfred 2023-02-16 04:09

At XLTools.net мы создали хорошую альтернативу MS Query для работы, особенно с SQL-запросами к таблицам Excel. Она называется запросы SQL XLTools. Это намного проще в использовании, а не Ms Query и работает очень хорошо, если вам просто нужно создать и запустить SQL - нет VBA, никаких сложных манипуляций с MS Query...

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

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

вот пример:

XLTools SQL Queries - Query Builder

3
отвечен Peter Liapin 2023-02-16 06:26

Для Пользователя Excel 2007: Данные > из других источников > из Microsoft Query > перейти к файлу Excel

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

определить ваше соединение: Microsoft Диалоговое окно запроса > меню таблицы > соединения...

чтобы вернуть данные на исходный лист Excel, выберите "возврат данных на лист Excel"из меню Microsoft Query dialog > File.

2
отвечен Clark 2023-02-16 08:43

хотя я думаю, что ответ Aprillion с помощью Microsoft Query превосходен, он вдохновил меня использовать Microsoft Access присоединиться к datasheets которые я нашел гораздо легке.

вы должны иметь MS Access установлен, конечно.

действия:

  • создайте новую базу данных Access (или используйте временную базу данных).
  • использовать Get External Data импортировать данные Excel как новые таблицы.
  • использовать Relationships чтобы показать, как ваши столы соединенный.
  • выберите тип связи соответствует тому, что вы хотите (представляющих левую присоединиться и т. д.)
  • создать новый запрос, объединяющий таблицы.
  • использовать External Data->Export to Excel для генерации результатов.

Я действительно не смог бы сделать этого без великого ответа Априллиона.

2
отвечен Dizzley 2023-02-16 11:00

Если вы достаточно знакомы с базами данных, вы можете использовать SQL Server для подключения обоих листов в качестве связанных серверов, а затем использовать T-SQL для выполнения серверной работы с данными. Затем завершите, подключив Excel обратно к SQL и извлеките данные в таблицу (обычную или сводную). Можно также рассмотреть возможность использования Powerpivot; это позволит объединять любые источники баз данных, включая Excel, используемые в качестве плоских баз данных.

0
отвечен dav 2023-02-16 13:17

ищу ту же проблему, с которой столкнулся RDBMerge Я думаю, что это удобный способ объединения данных из нескольких книг Excel, CSV и XML-файлы в резюме книги.

0
отвечен lalthomas 2023-02-16 15:34

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх