Excel은 문자열을 더 긴 문자열로 결합하는 동일한 목적을 가진 하나의 통합 문서 함수와 하나의 연산자를 제공합니다. CONCATENATE 함수와 앰퍼샌드 (&) 연산자의 용도는 기본적으로 동일합니다.

많은 사람들이 입력이 덜 필요하기 때문에 CONCATENATE 함수보다 앰퍼샌드 연산자를 선호하지만 CONCATENATE가 셀 범위를 처리 할 경우 훨씬 더 가치가 있습니다.

안타깝게도 그렇지는 않지만 범위의 모든 셀을 매우 멋지게 연결하는 사용자 정의 함수를 만들 수 있습니다.

다음 매크로를 고려하십시오.

Function Concat1(myRange As Range, Optional myDelimiter As String)

Dim r As Range

Application.Volatile     For Each r In myRange         Concat = Concat & r & myDelimiter     Next r     If Len(myDelimiter) > 0 Then         Concat = Left(Concat, Len(Concat) - Len(myDelimiter))

End If End Function

이 함수에는 범위가 필요하며 선택적 구분 기호를 제공합니다.

마지막 “If”문은 연결된 문자열에서 마지막 후행 구분 기호를 제거합니다. CONCAT1 함수를 사용하면 CONCATENATE 또는 앰퍼샌드 수식에 필요한 유지 관리없이 범위 내에서 셀을 추가하고 삭제할 수 있습니다. 다음 방법 중 하나로 함수를 호출하기 만하면됩니다.

=CONCAT1(C8:E10)

=CONCAT1(C8:E10,"|")

함수를 호출하는 두 번째 방법은 C8 : E10 범위에서 연결된 각 값 사이에 삽입되는 선택적 구분 기호를 사용합니다. 그러나 여기에는 문제가 있습니다. 해당 범위의 셀이 비어 있으면 두 개의 순차적 구분 기호로 끝날 수 있습니다. 단일 구분 기호 만 사용하려면 함수를 약간 변경해야합니다.

Function Concat2(myRange As Range, Optional myDelimiter As String)

Dim r As Range

Application.Volatile     For Each r In myRange         If Len(r.Text) > 0 Then             Concat = Concat & r & myDelimiter         End If     Next r     If Len(myDelimiter) > 0 Then         Concat = Left(Concat, Len(Concat) - Len(myDelimiter))

End If End Function

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (3062)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excelribbon-Concatenating_Ranges_of_Cells [Concatenating Ranges of Cells].