엑셀 셀병합 데이터 유지 방법

2019. 12. 22. 22:59 / 서기랑

 엑셀에서 값이 있는 셀을 병합하게 되는 경우 맨 윗행의 왼쪽에 있는 데이터만 남고 나머지 셀에 있는 데이터는 삭제된다.

 이 때문에 셀병합 시 모든 셀의 데이터를 유지하고 싶다면 셀병합을 하기 전에 별도의 작업을 해야 하는데 이를 위한 방법은 몇 가지가 있으니 개인적으로 편한 방법을 이용하면 된다.


엑셀 셀병합 데이터 유지 방법

1. 양쪽 맞춤 채우기.

 개인적으로 자주 활용하는 방법으로 양쪽 맞춤 채우기는 선택한 셀의 내용을 맨 윗행 왼쪽의 셀에 데이터를 모아주는 기능이다.

 이를 이용하여 셀병합 전에 양쪽 맞춤 채우기를 하고 셀병합을 하게 되면 데이터를 유지하면서 셀병합이 가능하다.


 양쪽 맞춤은 엑셀 상단의 홈 메뉴에서 채우기의 하위 메뉴에서 찾을 수 있다.

엑셀 양쪽 맞춤


 이를 클릭하면 선택한 셀이 하나로 합쳐지는 것을 볼 수 있으며 이후에 셀병합을 하면 된다.

 다만 양쪽 맞춤의 경우 합쳐지는 데이터의 길이가 셀의 넓이보다 크다면 하나의 셀에 데이터가 모두 합쳐지는 것이 아닌 다음 셀로 넘어가면서 합치지기 때문에 셀의 넓이를 충분히 넓힌 뒤 양쪽 맞춤을 하는 것이 좋다.

데이터 합치기


2. 엑셀 매크로.

 양쪽 맞춤을 이용하는 방법은 간단하게 사용할 수 있긴 하지만 데이터를 유지하면서 셀병합을 자주 해야 하는 문서라면 조금 불편할 수도 있다.

 대문에 이런 경우에는 아예 매크로를 만들어서 사용하는 것이 편할 수도 있는데 매크로 코드는 인터넷에서 쉽게 구할 수 있기 때문에 복사해서 붙여 넣기만 하면 간단하게 매크로를 만들 수 있다.


 매크로를 만들기 위해서는 먼저 엑셀에서 키보드의 [ALT + F11]을 눌러 비주얼 베이직을 실행하도록 하자.


 그다음은 상단 메뉴의 '삽입 - 모듈'을 실행.

엑셀 매크로 비주얼 베이직


 아래의 매크로 코드를 복사하여 붙여 넣기 한 뒤 비주얼 베이직 창을 종료하도록 하자.

 (2020-03-22 수정)

매크로 코드

 

Sub Merge()

 Dim output As String

 Dim cnt, rowsum As Integer

 Const space = "-"


 rowsum = Selection.Columns.Count * Selection.Rows.Count

 cnt = 1


 On Error Resume Next


 For Each cell In Selection

  output = output & cell

  If cnt <> rowsum Then

   output = output & space

   cnt = cnt + 1

  End If

 Next cell


 With Selection

  .Clear

  .Cells(1).Value = output

  .Merge

  .HorizontalAlignment = xlGeneral

  .VerticalAlignment = xlCenter

  .WrapText = True

 End With

End Sub


셀병합 코드

 여기까지 하면 매크로는 다 만들었다고 보면 된다.

 이제 데이터를 유지하면서 병합하고 싶은 셀들을 모두 선택한 뒤 키보드의 [ALT + F8]을 눌러 매크로 실행창을 열고 조금 전에 만든 매크로를 실행하면 셀병합이 완료된다.

매크로 실행


 참고로 매크로를 사용하여 값을 변경하는 경우에는 되돌리기[CTRL + Z]가 되지 않으니 알아두는 것이 좋으며, 매크로를 이용하여 셀병합을 하면 데이터가 합쳐지면서 띄어쓰기가 되는 것을 볼 수 있는데 이를 콤마(,)나 하이픈(-)등 다른 것으로 구분하고 싶다면 코드 중에 Const space = " "의 부분의 " "를 ","나 "-"등으로 변경해주면 된다.