รายการช่วงของตัวเลขใน excel [ปิด]


0

ฉันมีรายการตัวเลขใน excel:

1 2 3 6 9 10 11 15 18

ฉันต้องการสูตรเพื่อแสดงรายการช่วงที่มีความแตกต่างของ 1 ดังนั้น: 1-3 6 9-11 15 18

ใครช่วยได้บ้าง ขอบคุณมาก


ยินดีต้อนรับสู่ Super User! คุณช่วยอธิบายสิ่งที่คุณหมายถึงโดย * ความแตกต่างของ 1 * ได้ไหม? เขียนยากที่จะเข้าใจว่าคำถามของคุณคืออะไร คุณพยายามทำอะไรให้สำเร็จ คุณติดอยู่ที่ไหน
Twisty Impersonator

คำตอบ:


0

ฉันค่อนข้างแน่ใจว่ามันเป็นไปไม่ได้ด้วยสูตรพื้นฐาน อย่างไรก็ตามฉันเคยมีความต้องการเช่นนี้มาก่อนและฉันได้เขียนฟังก์ชันแผ่นงาน:

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

ในการใช้สิ่งนี้คุณต้องเปิดตัวแก้ไข VBA โดยกด ALT + F11 จากนั้นคลิกขวาที่เวิร์กบุ๊กจากบานหน้าต่างนำทางและเลือกแทรก - & gt; โมดูล:

enter image description here

จากนั้นเพียงคัดลอกโค้ดลงในโมดูล

ตอนนี้คุณสามารถเรียกมันได้เช่นเดียวกับฟังก์ชั่นปกติ:

=ConcatInts(A1:I1)

โปรดทราบว่าฟังก์ชั่นนี้ข้ามเซลล์ที่มีข้อความแปลงตัวเลขทศนิยมเป็นจำนวนเต็มโดยอัตโนมัติและยกเลิกการทำซ้ำ นอกจากนี้ยังต้องการให้เรียงหมายเลขของคุณ

อย่าลืมบันทึกเวิร์กบุคของคุณเป็นเวิร์กบุ๊กที่เปิดใช้งานมาโคร (XLSM)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.