Sắp xếp các hàng theo hoán vị của 3 giá trị
Em có một file dữ liệu có các giá trị trong các côt H, I, J như file đính kèm. Em cần một chương trình có thế sắp xếp các hàng theo tổ hợp 3 giá trị trong 3 cột H, I, J. Ví dụ tất cả các hàng mà chứa các giá trị a, b, c nằm ở 3 cột H, I, J sẽ được sắp xếp liền nhau mà không quan tâm đến thứ tự là abc, bca, hay là cab… đồng thời đánh số thứ tự từ 1 đến hết cho các tổ hợp liền nhau sau khi sắp xếp vào cột Q.
Lúc sắp xếp các hàng thì tất các các giá trị trong hàng từ cột A đến cột T cũng phải đi theo nữa.
Mong các anh em trong group giúp đỡ. Em xin cảm ơn ạ.
Trong file đính kèm thì sheet1 là dữ liệu ban đầu, sheet2 là phần mong muốn sau khi chạy ạ.
Xài đỡ cái này trong khi chờ phương án khác nhanh hơn và ngắn gọn hơn:
Option Explicit
Sub sapxep()
Dim lr&, t&, i&, j&, m&, c&, rng, arr(), id As String
Dim dic As Object, key
Application.ScreenUpdating = False
Set dic = CreateObject("scripting.dictionary")
lr = Cells(Rows.Count, "H").End(xlUp).Row
rng = Range("H2:T" & lr).Value
For t = 1 To lr – 1
c = c + 1
For i = 1 To 3
For j = 1 To 3
For m = 1 To 3
id = rng(t, i) & rng(t, j) & rng(t, m)
If i <> j And i <> m And j <> m And Not dic.exists(id) Then
dic.Add id, c
End If
Next
Next
Next
Next
ReDim arr(1 To dic.Count, 1 To 1)
For Each key In dic.keys
For i = 1 To lr – 1
id = rng(i, 1) & rng(i, 2) & rng(i, 3)
If id Like key Then arr(i, 1) = dic(key)
Next
Next
Range("Q2").Resize(UBound(arr), 1).Value = arr
Range("A2:T" & lr).Sort Range("Q1")
rng = Range("Q2:Q" & lr).Value
ReDim arr(1 To lr – 1, 1 To 1)
arr(1, 1) = rng(1, 1): j = 1
For i = 2 To lr – 1
If rng(i, 1) = rng(i – 1, 1) Then
arr(i, 1) = arr(i – 1, 1)
Else
j = j + 1
arr(i, 1) = j
End If
Next
Range("Q2:Q" & lr).Value = arr
Set dic = Nothing
Application.ScreenUpdating = True
End Sub
www.giaiphapexcel.com/diendan/threads/s%E1%BA%AFp-x%E1%BA%BFp-c%C3%A1c-h%C3%A0ng-theo-ho%C3%A1n-v%E1%BB%8B-c%E1%BB%A7a-3-gi%C3%A1-tr%E1%BB%8B.161505/post-1078728
Khoá học Trưởng phòng nhân sự
Nguồn nhân lực là một trong Tứ trụ kinh doanh của doanh nghiệp, có tác động tới sự tồn tại và phát triển bền...
Xem khóa học
Bình luận