갈루아의 반서재

728x90

 

예제로 사용할 데이터는 메이저 마라톤 대회 기록 정보로 다음 링크에서 다운로드할 수 있다.

www.kaggle.com/emmanuelleai/world-marathons-majors

 

World Marathons Majors

Maratones Mundiales Primeros Lugares

www.kaggle.com

이 중 2018년 대회 기록을 사용하여 하나의 줄바꿈을 포함하여 데이터를 결합해서 보여주는 함수를 만들어보자.

 

앰퍼샌드(&) 연산자 사용

Concatenate With Line Breaks Using The Ampersand Operator

 

가장 기본적인 방법이다. 앰퍼샌드(&) 연산자를 이용해서 데이터를 결합한다. 줄바꿈을 하기 위해서 CHAR 함수도 필요한데, 이 함수는 1~255 사이의 수를 유니코드 문자로 변환해준다. 유니코드 차트에 대한 정보는 다음 링크를 참조한다. 아래 보듯이 CHAR(10) 이 줄바꿈 기능을 수행한다.

 

 

따라서 다음과 같이 구현할 수 있을 듯 하다. 각각의 데이터를 앰퍼샌드(&)를 사용하여 결합하고, CHAR(10) 을 이용하여 줄바꿈을 했다. 하지만, 우리가 원했던 그런 결과가 나오지 않았다. 왜 그럴까?

먼저 줄바꿈을 하기 위해서는 셀 서식(Ctrl+F1) > 맞춤 > 텍스트 조정 > 자동 줄 바꿈 에 체크되어 있어야 한다.

이제 제대로 줄바꿈이 되었다.

이제 남은 건 기록 부분인데, 기존 시간 포맷대로 가져와 문자열로 결합하기 위해서는 하나 더 해줘야 하는 작업이 있다. text 함수를 이용하여 원하는 포맷으로 변환하여야 한다. 다음과 같다. 

이제 원하는 형태로 데이터 결합이 이루어졌다.

 

CONCAT 함수나 CONCATENATE 함수 사용

Concatenate With Line Breaks Using The CONCATENATE Or CONCAT Function

 

뭐 특별할 건 없다. 문자열 결합함수인 CONCATENATE 나 CONCAT 함수를 가져와 줄바꿈 문자를 포함하여 결합을 원하는 셀을 콤마로 연결하면 된다. 다음과 같이 위의 함수에서 & 자리에 , 를 넣으면 되는 것이다.

=CONCAT(A2," ",F2,CHAR(10),B2," (",C2,", ",D2,")",CHAR(10),TEXT(E2,"h:mm:ss"))

여기서 잠깐 짚고 넘어가야할 점은 앞으로는 CONCAT 함수를 쓰는 편이 좋다는 것이다. 엑셀 2016 이상의 경우에는 아래에서 보듯이 CONCATENATE 는 "deprecated" 로 당분간은 이전 버전과의 호환성을 위해  CONCATENATE 함수도 계속 제공되지만 이후 버전의 엑셀에서는 사용하지 못할 수도 있기 때문이다. 

 

 

 

TEXTJOIN 함수 사용

Concatenate With Line Breaks Using The TEXTJOIN Function

 

위의 예제에는 맞지 않지만, 또 다른 함수인 TEXTJOIN 을 사용할 수도 있다. 이 함수는 다수의 셀, 특히 범위내의 셀을 결합할 때 유용한데 구분자를 이용하여 결합할 수 있다. 아래의 경우를 보자.

TEXTJOIN 함수 소개페이지의 아래 예제와 같이 TEXTJOIN 함수는 여러 범위 문자열의 텍스트를 결합하는데, 결합할 각 텍스트 값 사이에 지정되는 구분 기호를 포함할 수 있다. 

 

 

728x90