답변:
나는 이것이 기본 공식으로는 불가능하다는 것을 확신합니다. 그러나 이전에도 이러한 요구가 있었으며 워크 시트 함수를 작성했습니다.
Public Function ConcatInts(target As Range) As String
Dim s As String
Dim i As Integer
Dim n0 As Long
Dim n1 As Long
Dim n2 As Long
Dim flag As Boolean
n0 = 0
n1 = target.Cells(1).Value
n2 = n1
flag = False
For i = 2 To target.Cells.Count
If IsNumeric(target.Cells(i).Value) Then
n2 = target.Cells(i).Value
If n2 = n1 + 1 Then
If Not flag Then
n0 = n1
s = s & n1 & "-"
flag = True
End If
ElseIf n2 <> n1 Then
If n1 = n0 + 1 And right(s, 1) = "-" Then
s = left(s, Len(s) - 1) & " "
End If
s = s & n1 & " "
flag = False
End If
n1 = n2
End If
Next
If n1 = n0 + 1 And right(s, 1) = "-" Then
s = left(s, Len(s) - 1) & " "
End If
s = s & n1
ConcatInts = s
End Function
이를 사용하려면 Alt + F11을 눌러 VBA 편집기를 열어야합니다. 그런 다음 탐색 분할 창에서 통합 문서를 마우스 오른쪽 단추로 클릭하고 삽입-> 모듈을 선택하십시오.
그런 다음 코드를 모듈에 복사하여 붙여 넣습니다.
이제 일반 함수처럼 호출 할 수 있습니다.
=ConcatInts(A1:I1)
이 함수는 텍스트가 포함 된 셀을 건너 뛰고 부동 소수점 숫자를 정수로 자동 변환하며 중복을 버립니다. 또한 번호를 정렬해야합니다.
통합 문서를 매크로 사용 통합 문서 (XLSM)로 저장하는 것을 잊지 마십시오.