SQL에서와 같이 Excel에서 두 개의 워크 시트를 어떻게 결합합니까?


121

두 개의 다른 Excel 파일에 두 개의 워크 시트가 있습니다. 둘 다 이름, ID 번호 및 관련 데이터 목록을 포함합니다. 하나는 일반 인구 통계 필드를 포함하는 마스터 목록이고 다른 하나는 이름과 ID 및 주소 만 포함하는 목록입니다. 이 목록은 다른 사무실에 의해 마스터 목록에서 분석되었습니다.

두 번째 목록을 사용하여 첫 번째 필터를 사용하고 싶습니다. 또한 결과에 마스터 워크 시트의 다른 필드와 두 번째 워크 시트의 주소 필드가 포함되도록하고 싶습니다. 데이터베이스 내부 조인 으로이 작업을 매우 쉽게 수행 할 수있는 방법을 알고 있지만 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첫 번째 엑셀을 선택 하고 선택하십시오
  2. 열을 선택하십시오 (열
    목록이 보이지 않으면 Options> 을 확인하십시오 System Tables)
  3. 로 이동합니다 Data> Connections>> [방금 만든 연결을 선택] Properties> Definition>Command text

이제 이것을 Command textSQL로 편집 할 수 있습니다 . 어떤 구문이 지원되는지 확실하지 않지만 암시 적 조인, "내부 조인", "왼쪽 조인"및 모든 작동하는 공용체를 시도했습니다. 다음은 샘플 쿼리입니다.

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
경로 하드 코딩을 피하는 방법이 있습니까? 상대 경로가 작동합니까?
Rekin

25
또한 Microsoft Query를 사용하면 Excel 파일 및 메시지 상자를 여는 16 비트 스타일의 공용 컨트롤을 경험할 수 있습니다. 그렇게하면 어렸을 때를 기억할 수 있습니다. :-)
Edward Brey

CSV 파일에서 작동합니까? MS Office Professional Plus 2010을 사용하고 있으며 3 단계를 수행하는 방법을 보지 못합니다. 2 단계에서 대화 상자를 중단합니까? 연결 대화 상자에 "새 연결 선택"이 없습니다.
John Freeman

@JohnFreeman 필요에 따라 사용 가능한 옵션 중 하나 를 선택 해야하기 때문에 (예 : '추가 ...')
Aprillion

3
'이 데이터 소스에 표시되는 테이블이 없습니다'라는 대화 상자가 표시되고 '쿼리 마법사-열 선택'대화 상자가 표시 될 수 있습니다. 그것은에서입니다 당신이 다음, '옵션'버튼을 클릭하여 조회 할 데이터를 볼 수있는 '시스템 테이블'체크 박스를 확인하려면 대화 상자를 표시합니다.
Tola Odejayi

11

허용 된 답변을 지원하십시오. "열 선택 (열 목록이 보이지 않으면 옵션> 시스템 테이블을 확인하십시오)"을 강조하고 싶습니다.

Excel 파일을 선택하면 this data source contains no visible tables프롬프트 가 표시 되고 사용 가능한 탭과 열이 없습니다. Microsoft 는 Excel 파일의 탭이 "시스템 테이블"로 취급되고 "시스템 테이블"옵션이 기본적으로 선택되어 있지 않은 버그 임을 인정했습니다 . 따라서이 단계에서 당황하지 마십시오. "옵션"을 클릭하고 "시스템 테이블"을 확인하면 열이 표시됩니다.


8

VLOOKUP 및 HLOOKUP을 사용하여 일치하는 기본 키 (수직 또는 수평으로 저장된)를 검색하고 '속성'열 / 행에서 값을 반환 할 수 있습니다.


동일한 통합 문서의 시트에 매우 유용하지만 (INDEX + MATCH 기능이 더
유용함)

7

최신 버전의 Excel에서 사용할 수있는 Microsoft Power Query를 사용할 수 있습니다 (허용 된 답변과 유사하지만 훨씬 간단하고 쉽습니다). 파워 쿼리 호출이 '병합'에 참여합니다.

가장 쉬운 방법은 2 개의 Excel 시트를 Excel 테이블로 사용하는 것입니다. 그런 다음 Excel에서 Power Query 리본 탭으로 이동하여 'From Excel'단추를 클릭하십시오. 두 테이블을 모두 Power Query로 가져온 후에 하나를 선택하고 '병합'을 클릭하십시오.


3
다른 제안 된 옵션보다 훨씬 쉽습니다. 이것이 답이되어야합니다! 파워 쿼리 는 이제 Excel 2016의 데이터 탭 아래에 포함 됩니다.
SliverNinja-MSFT 2006 년

1
Mac에 존재하지 않는 또 다른 기능
juandesant

4

Microsoft Query를 사용한 Aprillion의 답변은 훌륭하다고 생각하지만 Microsoft Access 를 사용 하여 훨씬 쉽게 데이터 시트에 참여할 수있었습니다.

물론 MS Access가 설치되어 있어야합니다.

단계 :

  • 새 Access 데이터베이스를 작성하십시오 (또는 스크래치 DB를 사용하십시오).
  • Get External DataExcel 데이터를 새 테이블로 가져 오는 데 사용하십시오 .
  • 사용 Relationships하여 테이블이 결합되는 방법을 보여줍니다.
  • 관계 유형을 원하는대로 설정하십시오 (왼쪽 조인 등을 나타냄).
  • 테이블을 조인하는 새 쿼리를 만듭니다.
  • External Data->Export to Excel결과를 생성하는 데 사용하십시오 .

나는 Aprillion의 큰 대답 없이는 그렇게 할 수 없었습니다.


오늘 전에는 액세스를 사용해 본 적이 없지만 10 분 밖에 걸리지 않았습니다. 가져 오기 대신 Excel 열을 복사하여 2 개의 테이블에 붙여 넣었습니다.
jiggunjer

3

Excel 내에서 Excel 테이블의 SQL 스타일 조인을 수행 할 수 없습니다. 즉, 수행하려는 작업을 수행하는 여러 가지 방법이 있습니다.

Reuben과 같이 Excel에서 가장 잘 작동하는 수식은 VLOOKUPand HLOOKUP입니다. 두 경우 모두 고유 한 행에서 일치하고 주어진 열의 값을 찾은 id에서 왼쪽으로 아래로 반환합니다.

두 번째 목록에 몇 개의 추가 필드 만 추가하려는 경우 두 번째 목록에 수식을 추가하십시오. "외부 조인"스타일 테이블을 원하는 경우 VLOOKUP수식을 첫 번째 목록에 추가 ISNA하여 조회가 있는지 테스트하십시오. Excel 도움말에서 특정 인스턴스에서이를 사용하는 방법에 대한 자세한 정보를 제공하지 않는 경우 알려주십시오.

SQL을 사용하려면 데이터를 데이터베이스 프로그램에 연결하고 쿼리를 작성한 다음 결과를 Excel로 다시 내보내십시오. Access에서 Excel 워크 시트 또는 명명 된 범위를 연결된 테이블로 가져올 수 있습니다.


12
실제로, 당신은 할 수 있습니다 – 그것은 Microsoft Query라고합니다
Aprillion

3

XLTools.net에서는 MS Query가 Excel 테이블에 대한 SQL 쿼리와 함께 작동 할 수있는 좋은 대안을 만들었습니다. XLTools SQL 쿼리 라고 합니다. MS Query보다 훨씬 사용하기 쉽고 SQL을 작성하고 실행 해야하는 경우 VBA가없고 MS Query로 복잡한 조작이 없으면 실제로 잘 작동합니다 ...

이 도구를 사용하면 포함 된 SQL 편집기를 사용하여 Excel 통합 문서의 테이블에 대해 SQL 쿼리를 만들고 옵션을 사용하여 즉시 실행하여 새 워크 시트 또는 기존 워크 시트에 결과를 넣을 수 있습니다.

LEFT OUTER JOIN을 포함하여 거의 모든 유형의 조인을 사용할 수 있습니다 (RIGHT OUTER JOIN 및 FULL OUTER JOIN 만 지원되지 않음).

예를 들면 다음과 같습니다.

XLTools SQL 쿼리-쿼리 작성기


2

Excel 2007 사용자 : 데이터> 다른 소스에서> Microsoft Query에서> Excel 파일을 찾습니다.

이 기사 에 따르면 XLS 버전 2003에서 쿼리하면 "이 데이터 소스에 표시되는 테이블이 없습니다." 워크 시트가 SYSTEM 테이블로 취급되기 때문에 오류가 발생했습니다. 따라서 쿼리를 만들 때 "쿼리 마법사-열 선택"대화 상자 옵션에서 "시스템 테이블"을 확인하십시오.

조인을 정의하려면 Microsoft 쿼리 대화 상자> 테이블 메뉴> 조인 ...

원본 Excel 시트로 데이터를 반환하려면 Microsoft Query 대화 상자> 파일 메뉴에서 "데이터를 Excel 시트로 반환"을 선택하십시오.


0

데이터베이스에 익숙하다면 SQL Server를 사용하여 두 워크 시트를 연결된 서버로 연결 한 다음 T-SQL을 사용하여 백엔드 데이터 작업을 수행 할 수 있습니다. 그런 다음 Excel을 다시 SQL에 연결하고 데이터를 테이블 (일반 또는 피벗)로 가져옵니다. Powerpivot 사용을 고려할 수도 있습니다. 플랫 데이터베이스로 사용되는 Excel을 포함하여 모든 데이터베이스 소스 간의 조인을 허용합니다.


2
맞습니다. 그러나 첫 번째 질문은 스프레드 시트 (또는 두 개)를 사용하여 데이터베이스 기능을 수행하는 것이므로 작업을 수행 할 수있는 효율적인 방법이 확실하지 않습니다.
dav

0

RDBMerge 와 동일한 문제를 찾았습니다 . 여러 Excel 통합 문서, csv 및 xml 파일의 데이터를 요약 통합 문서로 병합하는 사용자 친화적 인 방법이라고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.