Як я можу з'єднати два робочі аркуші в Excel, як і в SQL?


121

У мене два робочих аркуші у двох різних файлах Excel. Вони обидва містять список імен, ідентифікаційних номерів та пов’язаних даних. Один - це головний список, який включає загальні демографічні поля, а другий - список, який включає лише ім’я та ідентифікатор та адресу. Цей список був зібраний з основного списку іншим офісом.

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


1
Я вважаю цю сторінку дуже корисною: randomwok.com/excel/how-to-use-index-match
Tommy Bravo

randomwok.com/excel/how-to-use-index-match => особливо легке "нагадування" наприкінці:=INDEX ( Column_I_want_a_return_value_from , ( MATCH ( My_Lookup_Value , Column_I_want_to_Lookup_against , 0 ))
Tommy Bravo

Відповіді:


157

Для 2007+ використання Data> From Other Sources> From Microsoft Query:

  1. виберіть Excel Fileі виберіть свій 1-й відмінок
  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

1
Чи є спосіб уникнути жорсткого кодування шляху? Чи працював би відносний шлях?
Рекін

25
Як додатковий бонус, Microsoft Query дозволяє випробувати 16-бітові стилі Загальні елементи керування для відкриття файлу Excel та для скриньки повідомлень. Таким чином ви можете згадати, коли ви були молодими. :-)
Едвард Брей

Чи працює це з файлами CSV? Я використовую MS Office Professional Plus 2010 і не розумію, як виконати крок 3 - чи залишати діалогове вікно на кроці 2 висить? У діалоговому вікні "Підключення" немає "вибрати нове з'єднання".
Джон Фрімен

@JohnFreeman, оскільки вам потрібно вибрати один із доступних варіантів відповідно до ваших потреб (наприклад, "Додати ...")
квітня

3
Зауважте, що у вас може з’явитися діалогове вікно із написом «Це джерело даних не містить видимих ​​таблиць», а потім діалогове вікно «Майстер запитів - Виберіть стовпці». Саме з цього діалогового вікна ви хочете натиснути кнопку "Параметри", а потім встановити прапорець "Системні таблиці", щоб побачити дані, які потрібно запитувати.
Tola Odejayi

11

Підтримайте прийняту відповідь. Я просто хочу наголосити на "вибрати стовпці (якщо ви не бачите жодного списку стовпців, переконайтесь, що виберіть Опції> Таблиці системи)"

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


8

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


дуже корисний для аркушів у тій же робочій книжці (але я вважаю, що функції INDEX + MATCH ще більше корисні), трохи складніше при оновленні даних із закритих зовнішніх робочих книжок ...
Квільйон

7

Ви можете використовувати Microsoft Power Query, доступний для новіших версій Excel (подібний до прийнятої відповіді, але набагато простіший і легший). Power Query виклики приєднується до "зливається".

Найпростіший спосіб - мати 2 аркуші Excel у вигляді таблиць Excel. Потім у програмі Excel перейдіть на вкладку стрічки Power Power і натисніть кнопку "From Excel". Після того, як ви імпортували обидві таблиці в Power Query, виберіть одну та натисніть «Об’єднати».


3
Так набагато простіше, ніж будь-який з інших запропонованих варіантів. Це повинна бути відповідь! Запит про потужність тепер включений у Excel 2016 на вкладці Дані .
SliverNinja - MSFT

1
Ще одна особливість, яка, схоже, не існує на Mac 😕
juandesant

4

Хоча я вважаю, що відповідь Апрільона за допомогою Microsoft Query є відмінною, але це надихнуло мене використовувати Microsoft Access для приєднання до таблиць даних, які мені було набагато простіше.

Вам, звичайно, потрібно встановити MS Access.

Кроки:

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

Я справді не міг цього зробити без чудової відповіді Април.


Я ніколи раніше не користувався доступом, але на це пішло лише 10 хвилин. Я копіюю / вставляю стовпці excel у 2 таблиці замість імпорту.
jiggunjer

3

Ви не можете виконати попереднє з'єднання стилів SQL для таблиць Excel зсередини Excel. Однак, існує кілька способів досягти того, що ви намагаєтеся зробити.

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

Якщо ви хочете лише додати пару додаткових полів до другого списку, тоді додайте формули до другого списку. Якщо ви хочете таблицю стилів "зовнішнє з'єднання", додайте VLOOKUPформулу до першого списку, ISNAщоб перевірити, чи був знайдений пошук. Якщо довідка Excel не дає вам достатньо детальних відомостей про те, як їх використовувати в конкретному випадку, повідомте нас про це.

Якщо ви віддаєте перевагу використанню SQL, тоді зв’яжіть дані у програмі вашої бази даних, створіть свій запит та експортуйте результати назад у Excel. (У Access ви можете імпортувати робочі таблиці Excel або Іменовані діапазони у пов'язану таблицю.)


12
на самому справі, ви можете - це називається Microsoft Query
Aprillion

3

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

За допомогою цього інструменту ви можете створити будь-який запит SQL проти таблиць у робочій книжці Excel, використовуючи вбудований редактор SQL і негайно запустити його з можливістю розмістити результат на новому або будь-якому існуючому робочому аркуші.

Ви можете використовувати майже будь-який тип приєднання, включаючи ЛІВНІЙ ВНУТРІШНИЙ ПРИЄДНАЙТЕСЬ (не підтримується лише ПРАВИШЕ ВНУТРІШНЕ ПРИЄДНАННЯ та ПОВНОГО ВІДПОЛУЧЕННЯ).

Ось приклад:

XLTools SQL Queries - Builder Query


2

Для користувача Excel 2007: Дані> З інших джерел> З Microsoft Query> перейдіть до файлу Excel

Згідно з цією статтею , запит з версії XLS 2003 може призвести до "Це джерело даних не містить видимих ​​таблиць." помилка, оскільки ваші робочі аркуші розглядаються як таблиця SYSTEM. Тому перевірте "Системні таблиці" в діалоговому вікні "Майстер запитів - Виберіть стовпці", коли ви створюєте запит, буде працювати.

Щоб визначити ваше приєднання: діалогове вікно Microsoft Query> Меню таблиці> Приєднується ...

Щоб повернути дані до оригінального аркуша Excel, виберіть "Повернути дані в таблицю Excel" у діалоговому вікні Microsoft Query> меню Файл.


0

Якщо ви досить знайомі з базами даних, ви можете використовувати SQL Server для підключення обох робочих аркушів як пов'язаних серверів, а потім використовувати T-SQL, щоб виконати роботу із зворотними даними. Потім закінчіть, підключивши Excel назад до SQL і перетягніть дані в таблицю (звичайну або зведену). Ви також можете розглянути можливість використання Powerpivot; це дозволить об'єднувати між будь-якими джерелами бази даних, включаючи Excel, що використовується як плоскі бази даних.


2
Ви маєте рацію, але початкове питання засноване на використанні електронної таблиці (або двох) для виконання функції бази даних, тому я не впевнений у будь-якому дійсно ефективному способі виконання завдання.
дав

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.