티스토리 뷰
엑셀의 매크로를 이용해 동일한 값을 가진 셀을 병합하는 방법에 대해 이야기하려합니다.
데이터를 다루다 보면 엑셀에서 동일한 값을 가진 셀을 병합하는 작업을 자주 하게 됩니다. 데이터를 혼자서만 보고 혼자서만 사용한다고 한다면 사실 병합을 안한 원본 데이터를 가지고 있는게 다른 작업을 하기에 편한데요, 엑셀을 고객에게 보내야 한다거나, 혹은 상사에게 보고를 드릴때 필요하다면 보기좋게 동일한 값을 가진 셀을 병합해야만 하겠죠. 처음에야 하나씩 셀을 선택해서 병합하는게 가능할지 몰라도 그 데이터의 양이 크거나, 작업해야할 파일의 수가 많다면 눈앞이 막막해지게됩니다.
그럼 다음과 같이 동일한 값끼리 병합을 실행해줄 매크로를 만들어보겠습니다.
Alt + F8 을 누르면 매크로 창이 나옵니다. 새로 만들 매크로 이름을 입력해준 후 (SameCellMerge) 만들기를 클릭해줍니다.
그럼 다음과 같이 새로운 창이 뜹니다.
코드를 입력하는 부분에 새로운 코드를 입력해주면 되는데요, 아래 텍스트 파일을 받아서 그대로 복사 붙여넣기를 해주세요.
그 후 Ctrl + S 로 엑셀 파일을 저장해줍니다. 이때 파일형식을 Excel 매크로 사용 통합 문서로 저장해주어야 다음에도 매크로를 사용 할 수 있습니다.
Alt + F8 으로 다시 매크로 창을 열고 옵션 버튼을 클릭합니다.
바로 가기 키를 설정해서 간편하게 매크로를 실행하도록 할건데요, merge기능을 하니 간단하게 Ctrl + m 으로 설정을 하고 확인을 눌러줍니다.
그럼 이제 엑셀 화면으로 돌아와서 Ctrl + m을 눌러보면 다음과 같은 창이 뜹니다.
여기서 원하는 병합 영역을 선택합니다.
병합은 열 기준으로 동일한 값이 있는 셀을 병합해줍니다.
두둥!
다음과 같은 결과를 확인 할 수 있습니다.
매크로 기능을 이용해서 동일한 값을 쉽게 병합하는 방법에 대해 알아보았습니다. 엑셀 병합에 귀한 시간 낭비하지 마시길 바랍니다.
# 병합 매크로 택스트
Sub SameCellMerge()
Dim rngTarget As Range
Dim rngCell As Range
Dim strAddress As String
Dim intNum As Long
Dim intCount As Long
Dim intTemp2 As Long
Dim intTemp As Long
Dim i As Integer
Application.DisplayAlerts = False
On Error GoTo ET
Set rngTarget = Application.InputBox("대상 영역을 선택하세요", "영역 선택", Type:=8, Default:=strAddress)
intNum = rngTarget.Cells.Count
For Each rngCell In rngTarget
intTemp = intTemp + 1
intTemp2 = intNum - intTemp
If Len(rngCell) > 0 Then
i = 0
For intCount = 1 To intTemp2
If rngCell.Offset(intCount, 0) = rngCell Then
i = i + 1
Else
Exit For
End If
Next intCount
If i > 0 Then Range(rngCell, rngCell.Offset(i, 0)).Merge
End If
Next rngCell
rngTarget.VerticalAlignment = xlCenter
Application.DisplayAlerts = True
Exit Sub
ET:
MsgBox "영역 선택이 잘못되었습니다. 영역을 다시 선택하세요!", , "에러 번호: " & Err.Number
End Sub
- Total
- Today
- Yesterday
- coronavirus
- Excel
- Coding
- Cast
- for loop
- geom_line
- 코로나바이러스
- covid
- 파이썬
- Command
- r
- 숫자
- format
- 엑셀
- comma
- Python
- 2진수
- 팟빵
- Visualization
- Order
- geom_bar
- BIOINFORMATICS
- SEQ
- RStudio
- 데이터
- visualizing
- data
- hist
- plot
- Heatmap
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |