Excel에서 숫자의 목록 범위 [닫기]


1

Excel에서 숫자 목록이 있습니다.

12 34 9 10 11 15 18

1의 차이 인 범위를 나열하는 수식을 원합니다. 1-3 6 9-11 15 18

누구든지 나를 도울 수 있습니까? 많은 감사


슈퍼 유저에 오신 것을 환영합니다! * 1의 차이로 당신이 의미하는 바를 명확히 할 수 있습니까? 작성된대로 귀하의 질문이 무엇인지 이해하기 어렵습니다. 이것을 달성하려고 무엇을 했습니까? 당신은 어디에 붙어 있습니까?
Twisty Impersonator

답변:


1

나는 이것이 기본 공식으로는 불가능하다는 것을 확신합니다. 그러나 이전에도 이러한 요구가 있었으며 워크 시트 함수를 작성했습니다.

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)로 저장하는 것을 잊지 마십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.