2012-05-04 16:20:11 +0000 2012-05-04 16:20:11 +0000
123
123
Advertisement

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

Advertisement

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

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

Advertisement

Ответы (10)

158
158
158
2012-05-07 09:37:24 +0000

Для 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. Не уверен, что синтаксис suported, но я пробовал неявные соединения, “внутреннее соединение”, “левое соединение” и союзов, которые все работают. Вот пример запроса:

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
```.
11
11
11
2013-12-09 18:20:43 +0000

Поддержите принятый ответ. Я просто хочу подчеркнуть, что “выберите столбцы (если вы не видите никакого списка столбцов, проверьте "Параметры > Системные таблицы”)“

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

9
Advertisement
9
9
2012-05-04 16:22:05 +0000

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

7
7
7
2017-05-17 14:09:42 +0000

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

Самый простой способ - использовать 2 листа Excel в качестве таблиц Excel. Затем в Excel перейдите на вкладку “Лента запроса Power Query” и нажмите кнопку “Из Excel”. После импорта обеих таблиц в Power Query выберите одну и нажмите кнопку “Объединить”.

4
Advertisement
4
4
2016-02-12 11:00:43 +0000

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

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

Шаги:

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

  • Я действительно не смог бы сделать это без отличного ответа Aprillion.

3
3
3
2014-07-04 22:25:25 +0000

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

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

Можно использовать практически любой тип соединения, включая ЛЕВОЕ ВНЕШнее СОЕДИНЕНИЕ (только ПРАВОЕ ВНЕШнее СОЕДИНЕНИЕ и ПОЛНОЕ ВНЕШнее СОЕДИНЕНИЕ не поддерживается).

Вот пример:

3
Advertisement
3
3
2012-05-04 17:29:37 +0000

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

В Excel, как говорит Рубен, формулы, которые, вероятно, будут работать лучше всего - это VLOOKUP и HLOOKUP. В обоих случаях, вы совпадаете на уникальной строке, и она возвращает значение данного column\row на left\down из найденного id.

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

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

2
2
2
2013-07-16 02:41:41 +0000

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

Согласно эта статья , запрос из XLS версии 2003 может привести к ошибке “Этот источник данных не содержит видимых таблиц”, потому что ваши рабочие листы обрабатываются как таблица SYSTEM. Поэтому проверьте “Системные таблицы” в диалоге “Мастер запроса – Выберите столбцы” при создании запроса будет работать круглосуточно.

Чтобы определить ваше соединение: Диалог запроса Microsoft > Меню таблицы > Соединения…

Чтобы вернуть данные на ваш оригинальный лист Excel, выберите “Вернуть данные на лист Excel” в диалоге запроса Microsoft > Меню файла.

0
Advertisement
0
0
2016-05-25 17:19:06 +0000

В поисках той же проблемы я наткнулся на RDBMerge , который, на мой взгляд, является удобным способом объединения данных из нескольких рабочих книг Excel, csv и xml файлов в итоговую рабочую книгу.

0
0
0
2012-05-04 16:44:30 +0000

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

Похожие вопросы

6
13
9
10
4
Advertisement
Advertisement