엑셀에서 여러 시트를 각각의 파일로 이동하고, 파일 이름을 시트 이름으로 저장하는 매크로를 작성하는 방법을 안내해 드리겠습니다. 다음은 VBA 매크로를 사용하여 이 작업을 수행하는 코드입니다.

  1. 엑셀 파일을 열기:
    먼저, 작업하려는 엑셀 파일을 엽니다.

  2. VBA 편집기 열기:
    Alt + F11을 눌러 VBA 편집기를 엽니다.

  3. 새 모듈 추가:
    삽입 > 모듈을 클릭하여 새 모듈을 추가합니다.

  4. VBA 코드 입력:
    아래의 코드를 새 모듈에 복사하여 붙여넣습니다.

    Sub SaveSheetsAsSeparateFiles()
        Dim ws As Worksheet
        Dim wb As Workbook
        Dim newWb As Workbook
        Dim FilePath As String
    
        ' 현재 워크북의 파일 경로
        FilePath = ThisWorkbook.Path & "\"
    
        ' 각 시트를 개별 파일로 이동 및 저장
        Application.ScreenUpdating = False
        For Each ws In ThisWorkbook.Worksheets
            ' 새로운 워크북 생성
            ws.Copy
            Set newWb = ActiveWorkbook
            ' 새로운 워크북에 시트를 이동
            Set wsNew = newWb.Worksheets(1)
            ' 파일 저장
            newWb.SaveAs FilePath & ws.Name & ".xlsx"
            newWb.Close False
        Next ws
        Application.ScreenUpdating = True
    
        MsgBox "모든 시트가 개별 파일로 저장되었습니다.", vbInformation
    End Sub
  5. 코드 실행:
    VBA 편집기에서 F5 키를 눌러 코드를 실행합니다.

이 매크로는 현재 워크북의 각 시트를 새로운 워크북으로 복사하고, 원래 파일과 동일한 디렉터리에 시트 이름을 가진 개별 파일로 저장합니다. 작업이 완료되면 알림 메시지가 표시됩니다.

코드 설명:

  • FilePath = ThisWorkbook.Path & "\": 현재 워크북의 경로를 가져옵니다.
  • Application.ScreenUpdating = FalseApplication.ScreenUpdating = True: 화면 업데이트를 중지하고, 작업이 끝난 후 다시 활성화하여 성능을 향상시킵니다.
  • ws.Copy: 현재 시트를 새로운 워크북으로 복사합니다.
  • Set newWb = ActiveWorkbook: 새로 생성된 워크북을 참조합니다.
  • newWb.SaveAs FilePath & ws.Name & ".xlsx": 새 워크북을 시트 이름을 파일 이름으로 하여 저장합니다.
  • newWb.Close False: 새 워크북을 저장한 후 닫습니다.
  • MsgBox: 작업이 완료되면 메시지 박스를 표시합니다.

이 방법을 사용하면 여러 시트를 빠르고 쉽게 각각의 파일로 이동하여 저장할 수 있습니다.

4월대비 5월에 신규명단 뽑는 방법

countif로 갯수 세어서 1일 경우 중복임. / 0일경우 신규데이터

 

신규명단일 경우의 수식

 

재수강명단일 경우의 수식

 

 

고급필터를 이용

 

 

목록범위 : 5월신규이므로 5월데이타를 전체 선택

조건범위는 조건과 수식있는셀 선택 (countif...)

 

 

 

 

 

결과값은 아래와 같이 신규명단을 추출함.

 

 

https://www.youtube.com/watch?v=CFi8z0wRcf8&t=267s

 

엑셀파일을 불러온다 (폴더로 해서 파일별로 하는게 추가할때 용이함)

 

데이타변환을 눌러준다.

 

 

data만 남겨두고 다른열 삭제

 

 

결합아이콘 클릭

결합아이콘을 클

 

 

필요없는 시트 필터링해서 안보이도록 설정변경

 

필드마다 형식설정 하기

 

로드하기

 

 

 

 

연결만 만들기 클릭

어떤 형식으로 불러올것인지 설정

 

우측에 쿼리가 연결전용으로 생성됨

 

 

<피벗 테이블 만들기>

 

"외부데이터 원본에서" 피벗 만들

 

 

외부데이터 원본 연결선

 

 

해당연결된 데이타를 선택

 

 

 

https://www.youtube.com/watch?v=TwvKDdYm2YU

 

 파워피벗의 데이터모델에 포함시킨 뒤

 

파워피벗> 관리

 

파워피벗 관리로 가면 수리, 설비 시트가 보임

 

 

다이어그램에서 항목 동일한 차량no 연결

차량NO끼리 연결하기

 

 

데디타보기로 이동

 

데이타가 있는 파일에 열추가해서 필요한 항목 VLOOKUP 으로 반영

--> RELATED 함수 사용해서 설비의 품명 설

 

열추가 제목을 품명2로 설정하고 VLOOKUP 처럼 연결해줌

 

닫기 누르고 피벗 만들기 함 --> 데이터 모델 선택

 

 

******************************* 예시 2 *******************************************

 

내역시트 표로 만들고 

데이터>테이블범위에

데이터 시트

 

파워쿼리 만든후 닫기및 다음으로로드 클릭

연결만 만들기 클릭

 

 

펀드시트도 데이타쿼리로 전환

펀드시트

 

쿼리 목록에 표1, 표2 생성됨

 

 

표1에서 쿼리를 새  항목으로 변환 클릭

 

 

 

펀드코드와 판매사명을 동시 클릭 (컨트롤 키 활용)

 

 

아래는 표2 선택해서 동일한 목록 동시 클릭

 

확인을 누르면 병합시트 만들어

 

표2시트는 TABLE로 나타남

 

세부유형만 클릭

- 원래 열 이름을 접두사로 사용은 해제

 

원래 세부유형은 삭제

 

 

 

닫기 및 다음으로 로드 선택

 

병합1 시트가 추가됨

 

https://www.youtube.com/watch?v=ecHAXwCnnP8

 

 

 

https://www.youtube.com/watch?v=3pZDiRL5rj4

.

 

 

https://www.youtube.com/watch?v=qXIqvSPEUW4

 

INDIRECT (REFTEXT) --> 문자로 입력해야 하므로 "" 해줘야 함

https://blog.naver.com/ino_/223390504174

 

INDIRECT함수 : 동적참조로 엑셀을 더 풍성하게

안녕하세요. 샐리입니다. 오늘은 INDIRECT함수에 대해서 알아보도로 하겠습니다. 엑셀에서 IND...

blog.naver.com

 

 

 

 

제목을 입력하면 해당하는 항목의 합계를 계산

 

아래 수식은 각 월별 시트 데이타를 하나로 만드는 함

 

 

https://www.youtube.com/watch?v=pwL0zchUaZ4

 

vlookup 함수사용하여 여러개의 데이타를 동시에 연결할때 사용해서 한꺼번에 결과물 적용할때 사

 

메뉴에 파워피벗이 안나타날때 설정

: 엑셀옵션 > 추가기능 > (맨아래) 관리 > COM 추가기능 > 이동 > Power Pivot for excel 클릭

 

 

 

 

각 시트는 표 형식으로 변환

 

각각의 표를 하나씩 "데이타 모델" 추가

 

홈 > 다이어그램보기

 

배치 이동

 

데이타 연결 - 관계설정

  - 공급처를 공급처로 연결

공급처시트의 공급처값은 1개이고 제품의 공급처값은 * (여러개) 이다.

 

제품명도 연결
날짜도 연결

 

 

여기까지 하면 데이타가 묶이게 됨

--> 저장후 파워테이블 종료

 

판매테이블에서 피벗테이블 만들기 실행

"모두"를 클릭하면 모든 연결된 데이타 보임.

 

날짜별로 보고싶으면 고유값(vlookup 시트역할) 기준의 테이블날짜를 끌어옴

 

제품명 시에 있는 제품병을 끌어옴

 

디자인에서 보고서레이아웃을 테이블 형식으로 표시

 

구분되어 있던 시트의 값들도 한개의 피벗에 포함되어 볼 수 있음

보고싶은 값을 끌어옴.

 

슬라이서 설정

 

 

파워피벗에서 열추가 아래 첫열에서 수식입력 [ 입력하면 목록 보임. --> 입력후 목록이름 변경

--> 원본은 최대한 유지하면서 데이타모델에서 수식추가하는게 최선임.

(파워피벗 시트안에서 가능할 경우 제한)

 

 

단, 파워테이블에서 추가가 안되는 값을 수식연결해야 할때는 (구매/판매 비율)

돌려놓은 피벗에서 측정값 추가

 

 

 

 

추가된 측정값을 피벗에 포함시켜주면 됨

 

 

 

출처 : 오빠두엑셀

https://www.youtube.com/watch?v=fLBn7wygasA

 

폴더 불러오기



데이타 변환




content만 남겨두기



사용자 지정열 추가



Excel.Workbook 함수로 데이타 추출



content는 제거


*헤드정리 필요할때
데이타에서 상위 6개 열을 지울거다는 수식입력


*헤더 6개 삭제후에 머리글로 지정 동시 적용



엑셀파일 확장 (접두사 해지)
 





sheet만 남겨둠

머리글 올려주기
Table.PromoteHeaders()




data 삭제

확장으로 넓혀줌

파일닫기 불러오기

 





<폴더명이 바뀌어도 계속 연결되도록 설정>




2번째 행의 파일을 보여줘



2번째 행의 content를 보여줘



쿼리저장을 해당폴더 안에다 하고
시트추가해서 현재통합문서의 폴더경로 반환 함수 입력
=LEFT(CELL("filename",A1),FIND("\[",CELL("filename",A1)))

경로라고 쓰고 밑에 수식 입력해서 표로 변경


취합경로 추가
=[@경로]&"보고서\"

 



이 수식을 복사해서 원래 쿼리 원본단계로 이동

고급편집기에서 경로 변경
 

 
 
https://www.youtube.com/watch?v=_mDIOgbyWbs

 

+ Recent posts