하나의 그룹마다 공백으로 이루어져있고, 알파벳부분과 나머지 부분으로 구분하여 셀에 출력하는 내용입니다.
그룹 안에는 데이터가 3개도 있고 4개도 있는 등 불규칙합니다. 아래의 두 가지가 질문에서 파악할 수 있는 규칙입니다.
2. 각 그룹의 첫번째 데이터와 나머지 데이터를 분리한다.
먼저 Chronicle님의 수식을 보겠습니다. - http://blog.naver.com/asaph16/220997237905
아래와 같이 보조열을 이용하여 영문자와 그렇지 않은 것을 구분한 것이 인상적입니다.
1. SpecialCells로 데이터가 있는 셀만 영역으로 지정한 뒤
2. Areas를 이용하여 각 그룹을 순환합니다.
3. 그룹 안에서 첫번째 데이터와 나머지 데이터를 구분하여 배열에 삽입합니다.
Option Base 1 Sub Macro() Dim AllArea As Range Dim SingleArea As Range Dim SingleRange As Range Dim v() As String Dim i As Integer '변수 설정 Set AllArea = Range("A1", Cells(Rows.Count, 1).End(3)).SpecialCells(2) ReDim v(AllArea.Areas.Count, 2) i = 1 For Each SingleArea In AllArea.Areas '그룹들을 순환 For Each SingleRange In SingleArea '각 그룹의 셀을 순환 '그룹의 첫번째 셀이면 첫번째 배열에, '그렇지 않으면 두번째 배열에 데이터 삽입 If SingleArea.Rows(1).Row = SingleRange.Row Then v(i, 1) = SingleRange Else v(i, 2) = v(i, 2) & " " & SingleRange End If Next SingleRange '첫 공백 없애고 다음 배열로 이동 v(i, 2) = Trim(v(i, 2)) i = i + 1 Next SingleArea '기존 데이터 초기화 후 결과 출력 With Range("C1") If .Value <> "" Then .CurrentRegion.ClearContents .Resize(UBound(v, 1), 2) = v End With End Sub | cs |
특히 매크로의 장점은 결과물이 깔끔하다는 것에 있습니다.
문자+연결하기.xlsm
'VB(A) > 당근쨈 & Chronicle' 카테고리의 다른 글
[& Chronicle] 상대참조 주소 유지하여 수식 복사하기 (0) | 2017.05.04 |
---|---|
[& Chronicle] 공급업체가 다를 경우 행삽입 하기 (0) | 2017.05.03 |
[& Chronicle] 두 날짜 사이에서 특정 요일의 개수 구하기 (0) | 2017.05.02 |
[& Chronicle] 숫자와 영문자가 혼용된 상태에서 영문자만 추출하기 (0) | 2017.05.02 |
[& Chronicle] 문자 거꾸로 출력하기 (0) | 2017.05.02 |