메뉴에서
데이터 > 외부 데이터 가져오기(D) > 새 쿼리 만들기
새 쿼리 만들기 창에서 Exel File 항목을 선택하고, 데이터를 갖고 오길 원하는 엑셀 파일을 지정해준다.
해당 엑셀 파일에는 대상이 되는 데이터 들이 Database라는 이름으로 지정되어 있어야한다.
불러오고자 하는 데이터가 들어있는 엑셀 파일을 선택한다.
해당 엑셀에 포함된 필드 중 가져올 필드만 골라낸다.
필터링을 시켜서 가져올 수 있다. 필자는 재고 중에서 제품 항목만 가져오도록 옵션을 지정했다.
정렬 순서도 지정해 줄 수 있다.
엑셀로 데이터를 되돌리는 옵션을 선택하고 마침을 누른다.
가끔 아래와 같은 에러메시지를 볼 수도 있다. "경로에 한글이 포함되어 있으면 그런 것 같다"는 추측을 해 본다.
쫄지 말자.. 다 방법이 있다.
위의 오류창은 "확인"을 눌러서 닫아 버리고, 일단 "취소" 버튼을 누른다.
Microsoft Query 프로그램에서 해당 쿼리를 수정할꺼냐고 물어본다. "예"를 선택하자.
Microsoft Query창이 실행되었다.
"보기" 메뉴 밑에 있는 "SQL"버튼을 눌러서 아래와 같은 창을 띄워보면..
FROM절이 Database Database로 되어 있는 것이 보인다. 이러니 못 불러오지.. =_=;; 다음 단계에서 수정해주자.
FROM절을 아래와 같이 수정해줬다. 기본적으로 FROM '파일경로'.'데이터영역이름' 형태로 지정해주면 된다.
직접 수정을 하고 확인을 누르면 아래와 같은 경고 메시지를 띄우는데.. 무시하고 "확인"을 누른다.
잘 불려온걸 확인할 수 있다.
메뉴에서 "파일 > Microsoft Office Exel로 데이터 되돌리기"를 선택하여 엑셀로 데이터를 보내준다.
엑셀 창에서 어디에 데이터를 보낼 지 지정해 줄 수 있다.
데이터를 읽어들이는데 시간이 좀 걸린다.
짜잔.. 데이터가 엑셀로 잘 불려들여졌다.
해당 SQL을 수정하고 싶으면 데이터가 있는 아무 셀이나 선택하고 마우스 오른쪽 버튼 메뉴에서 "쿼리 편집"을 선택한다.
쿼리를 직접 수정해준 경우(아까 From절을 직접 수정해줬었었다.)는 아래와 같은 경고 메시지를 볼 수 있다.
쌩까고 확인 버튼을 누른다.
또 Microsoft Query프로그램이 실행되면서 해당 SQL을 수정할 수 있다.
이상 엑셀에서 외부 데이터를 불러들이는 방법을 살펴 보았다.
SQL문의 구문 형태를 간략히 살펴보면 다음과 같다.
SELECT 필드명
FROM '엑셀파일'.'영역이름'
WHERE 조건
ORDER BY 정렬용필드명
보너스~ +_+
두 개의 결과물을 합치고 싶을때는 두개의 결과 테이블을 UNION ALL로 합해주면 된다.
(UNION으로 두 결과 테이블을 결합해주면 중복테이블이 제거된다.)
(SELECT Database.기간, Database.재고조직, Database.재고구분, Database.품목코드, Database.품목, Database.단위, Database.기초수량, Database.기초금액, Database.입고수량계, Database.출고수량계, Database.기말수량, Database.기말금액계, '재고수불부'
FROM `D:\_SYSTEMFOLDERS\내문서\_업무서류\__ ■ 원가관리\2007원가계산 ■\COST_04.수불부_재고_실제원가_2007_누적.xls`.`DataBase`)
UNION ALL (SELECT Database.기간, Database.재고조직, Database.재고구분, Database.품목코드, Database.품목, Database.단위, Database.기초수량, Database.기초금액, Database.입고수량, Database.출고수량, Database.실적수량, Database.실적금액, '재공수불부'
FROM `D:\_SYSTEMFOLDERS\내문서\_업무서류\__ ■ 원가관리\2007원가계산 ■\COST_04.수불부_재공_실제원가_2007_누적.xls`.`DataBase`)
NOTE1.
위 SQL문에서 해당 데이터 들의 출처를 표시하기 위해서 SELECT문의 마지막에 '재고수불부'와 '재공수불부'라는 문자열을 넣어주었다.
그렇게 하면 검색된 결과의 맨 마지막 필드에 출처를 표시하는 필드가 생기게 된다.
NOTE2.
의미있는 필드명을 지정해주려면 SELECT절의 필드명 뒤에 AS 를 넣어주면 된다.
예) Database.기간 AS 년월