GOM CÁC SỐ THEO THỨ TỰ THÀNH 1 CHUỖI (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

khanhnguyen113

Thành viên mới
Tham gia
25/6/19
Bài viết
18
Được thích
4
Mình có file như bên dưới. Mình cần gom những số có thứ tự liên tục bên cột D lại như ô màu đỏ bên cột E. nếu làm tay thì có thể mất nhiều thòi gian và thiếu sót. Mong các Anh Chị Em nào biết cách làm nhanh hơn! Giúp mình vơi. Dạ xin cảm ươn!
 

File đính kèm

Cú pháp sử dụng đối với file của bạn như sau:
Mã:
=LEFT(D2,3)&GroupNumber(MID(D2,4,LEN(D2)),",")
Code
Mã:
Function GroupNumber(ByVal Str As String, ByVal Delimiter As String) As String
Dim SplitArr As Variant, NumberArr() As Boolean, i As Long, Number As Long, IsSerial As Boolean, Start As Long
ReDim NumberArr(-1 To 0)
SplitArr = Split(Str, Delimiter)
For i = 0 To UBound(SplitArr, 1)
    Number = CLng(SplitArr(i))
    If Number + 1 > UBound(NumberArr, 1) Then ReDim Preserve NumberArr(-1 To Number + 1)
    NumberArr(Number) = True
Next
For i = 0 To UBound(NumberArr, 1)
    If NumberArr(i) Then
        If Not NumberArr(i - 1) Then
            Start = i
        End If
    ElseIf NumberArr(i - 1) Then
        GroupNumber = GroupNumber & " " & Start & IIf(i - 1 > Start, "-" & (i - 1), "")
    End If
Next
GroupNumber = Mid(GroupNumber, 2)
If Delimiter <> " " Then GroupNumber = Replace(GroupNumber, " ", Delimiter & " ")
End Function
 
Cú pháp sử dụng đối với file của bạn như sau:
Mã:
=LEFT(D2,3)&GroupNumber(MID(D2,4,LEN(D2)),",")
Code
Mã:
Function GroupNumber(ByVal Str As String, ByVal Delimiter As String) As String
Dim SplitArr As Variant, NumberArr() As Boolean, i As Long, Number As Long, IsSerial As Boolean, Start As Long
ReDim NumberArr(-1 To 0)
SplitArr = Split(Str, Delimiter)
For i = 0 To UBound(SplitArr, 1)
    Number = CLng(SplitArr(i))
    If Number + 1 > UBound(NumberArr, 1) Then ReDim Preserve NumberArr(-1 To Number + 1)
    NumberArr(Number) = True
Next
For i = 0 To UBound(NumberArr, 1)
    If NumberArr(i) Then
        If Not NumberArr(i - 1) Then
            Start = i
        End If
    ElseIf NumberArr(i - 1) Then
        GroupNumber = GroupNumber & " " & Start & IIf(i - 1 > Start, "-" & (i - 1), "")
    End If
Next
GroupNumber = Mid(GroupNumber, 2)
If Delimiter <> " " Then GroupNumber = Replace(GroupNumber, " ", Delimiter & " ")
End Function
bị ;ỗi vậy nè Bạn ơi
 

File đính kèm

  • 2.png
    2.png
    243.3 KB · Đọc: 22
Tự tìm hiểu đi bạn. Không nên chuyện gì cũng hỏi như vậy. Nếu đến ngày mai mà bạn cũng không biết cách khắc phục thì tôi hướng dẫn cho.
 
Trong hình của bạn ở dòng 3 bạn đã có gợi ý mà. "Người ta" đặt trên đĩa và dâng tận nơi cho bạn mà.
Ở lân cận E3 bạn có
Bạn có nhìn thấy dấu chấm phẩy ngăn cách 2 paraleter không? Tức dấu phân cách các parameter trong công thức bắt buộc là dấu chấm phẩy.

Mà khi bạn nhập công thức bất kỳ thì bạn cũng nhìn thấy gợi ý. Vd. trên máy bạn thì khi mới viết =sum( bạn đã nhìn thấy gợi ý =SUM(number1; [number2]; ...). Bạn nhìn thấy dấu gì phân cách các parameter thì bạn phải gõ / dùng dấu đó. Cái này tùy thiết lập trên từng máy khác nhau (Control Panel)
 
Trong hình của bạn ở dòng 3 bạn đã có gợi ý mà. "Người ta" đặt trên đĩa và dâng tận nơi cho bạn mà.
Ở lân cận E3 bạn có

Bạn có nhìn thấy dấu chấm phẩy ngăn cách 2 paraleter không? Tức dấu phân cách các parameter trong công thức bắt buộc là dấu chấm phẩy.

Mà khi bạn nhập công thức bất kỳ thì bạn cũng nhìn thấy gợi ý. Vd. trên máy bạn thì khi mới viết =sum( bạn đã nhìn thấy gợi ý =SUM(number1; [number2]; ...). Bạn nhìn thấy dấu gì phân cách các parameter thì bạn phải gõ / dùng dấu đó. Cái này tùy thiết lập trên từng máy khác nhau (Control Panel)
CẢM ƠN bẠN NHIỀU NHA NHƯNG MÌNH VẪN CHƯA RA ĐƯỢC. MÌNH ĐANG NGHIÊN CỨU THÊM
 
Web KT

Bài viết mới nhất

Back
Top Bottom