Sắp xếp dữ liệu bằng add-in (1 người xem)

Liên hệ QC

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

Duy Minh 2

Thành viên mới
Tham gia
18/9/18
Bài viết
2
Được thích
0
Chào mọi người. Nhờ mọi người giúp mình tí, mình có bảng dữ liệu như này và mình muốn sắp xếp nó, nếu mà sắp xếp thì cột tên, năm sinh, giới tính và dân tộc phải nhảy theo nhưng mình không làm dc mà nghe mọi người nói sử dụng add-in mà mình chưa biết xài cái đó. Mong mọi người hướng dẫn dùm mình với. cảm ơn mọi người
 

File đính kèm

Chào mọi người. Nhờ mọi người giúp mình tí, mình có bảng dữ liệu như này và mình muốn sắp xếp nó, nếu mà sắp xếp thì cột tên, năm sinh, giới tính và dân tộc phải nhảy theo nhưng mình không làm dc mà nghe mọi người nói sử dụng add-in mà mình chưa biết xài cái đó. Mong mọi người hướng dẫn dùm mình với. cảm ơn mọi người

Bạn bôi đen hết bảng tính là sắp xếp được thôi. do tiêu đề bạn merge 4 dòng nên muốn sắp xếp thì chèn 1 dòng trước dòng số 6 là được, Dữ liệu đó sắp xếp theo tên thì phải dùng cột phòng lấy tên ra sắp xếp, chứ sắp xếp theo họ thì không có ý nghĩa gì.
Lưu file .xlsx cho nhẹ bớt.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn bôi đen hết bảng tính là sắp xếp được thôi. do tiêu đề bạn merge 4 dòng nên muốn sắp xếp thì chèn 1 dòng trước dòng số 6 là được, Dữ liệu đó sắp xếp theo tên thì phải dùng cột phòng lấy tên ra sắp xếp, chứ sắp xếp theo họ thì không có ý nghĩa gì.
Lưu file .xlsx cho nhẹ bớt.
có thể dùng đoạn này mà không cần tách tên.
Sub sapxep()
Dim arr, tmp, rng As Range
Dim i As Long, lCs As Long
Set rng = Range("B6:D100") '<--- Vùng dữ liệu bao gồm tiêu đề
Const lColName = 1 '<--- Vi trí cột TÊN
With rng.Resize(, rng.Columns.Count + 1)
lCs = .Columns.Count
arr = .Value
For i = 2 To UBound(arr)
tmp = Trim(CStr(arr(i, lColName)))
If Len(tmp) Then
tmp = Mid(tmp, InStrRev(tmp, " ") + 1)
arr(i, lCs) = tmp
End If
Next
.Value = arr
.Sort .Cells(1, lCs), 1, Header:=xlYes
.Resize(, 1).Offset(, lCs - 1).ClearContents
End With
End Sub
 
có thể dùng đoạn này mà không cần tách tên.
Sub sapxep()
Dim arr, tmp, rng As Range
Dim i As Long, lCs As Long
Set rng = Range("B6:D100") '<--- Vùng dữ liệu bao gồm tiêu đề
Const lColName = 1 '<--- Vi trí cột TÊN
With rng.Resize(, rng.Columns.Count + 1)
lCs = .Columns.Count
arr = .Value
For i = 2 To UBound(arr)
tmp = Trim(CStr(arr(i, lColName)))
If Len(tmp) Then
tmp = Mid(tmp, InStrRev(tmp, " ") + 1)
arr(i, lCs) = tmp
End If
Next
.Value = arr
.Sort .Cells(1, lCs), 1, Header:=xlYes
.Resize(, 1).Offset(, lCs - 1).ClearContents
End With
End Sub
sử dụng VBS hả bác ?
 
Web KT

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

Back
Top Bottom