Ví dụ ta có dữ liệu như sau:
A1: Lần 5
A2: Lần 2
A3: Lần 1
A4: Lần 12
Khi sort cột A, ta mong muốn thứ tự sẽ là: Lần 1=> lần 2 => lần 5 => lần 12
Nhưng với sort thông thường của Excel thì nó cho ta kết quả không như ý: Lần 1, lần 12, lần 2, lần 5
Bạn thấy với ví dụ trên, thay vì lần 12 nằm ở cuối theo logic của ta, thì Excel trả về kết quả theo logic của nó.
GIẢI QUYẾT THẾ NÀO.
Ta xem 1 ví dụ khác của 1 bạn đã post lên Giải Pháp Excel hỏi:
em đang cần sắp xếp theo thứ tự tăng dần ở cột C như trong file đính kèm với thứ tự ưu tiên như sau: ưu tiên sắp xếp theo thứ tự từ bé đến lớn ở cột A rồi sau đó mới đến cột B.
LỜI GIẢI
Ý tưởng của như sau:
1. Tạo 4 cột tạm
- Cột 1: Tách phần chữ bên trái cột A
- Cột 2: Tách phần số bên trái Cột A(sau phần chữ)
- Cột 3: Tách phần chữ bên trái cột B
- Cột 4: Tách phần số bên trái cột B
2. Dùng Custom Sort để Sort theo 4 cột này.
=====================
THỰC HIỆN
Copy 2 hàm tachchudau, va tachsodau về, nhấn Alt + F11, Click chuột phải vào Module bên trái, Insert =>Module
Paste 2 hàm sau vào dùng.
==========================
'Copy dán vào module
1. Tạo 4 cột tạm
- Cột 1: Tách phần chữ bên trái cột A
- Cột 2: Tách phần số bên trái Cột A(sau phần chữ)
- Cột 3: Tách phần chữ bên trái cột B
- Cột 4: Tách phần số bên trái cột B
2. Dùng Custom Sort để Sort theo 4 cột này.
=====================
THỰC HIỆN
Copy 2 hàm tachchudau, va tachsodau về, nhấn Alt + F11, Click chuột phải vào Module bên trái, Insert =>Module
Paste 2 hàm sau vào dùng.
==========================
'Copy dán vào module
Function tachchudau(s As Variant)
If IsNumeric(Left(s, 1)) Then
tachchudau = ""
Else
tachchudau = tachchudau & Left(s, 1)
If Len(s) > 1 Then
tachchudau = tachchudau & tachchudau(Mid(s, 2))
End If
End If
End Function
Function tachsodau(s As Variant)
Dim s1 As String
s1 = ""
If IsNumeric(Left(s, 1)) Then
s1 = Left(s, 1)
If Len(s) > 1 Then
If IsNumeric(Mid(s, 2, 1)) Then
s1 = s1 & tachsodau(Mid(s, 2))
End If
End If
ElseIf Len(s) > 1 Then
s1 = tachsodau(Mid(s, 2))
End If
If s1 <> "" Then
tachsodau = Val(s1)
Else
tachsodau = 0
End If
End Function
========================================
1. Sử dụng:
Cột E2 =tachchudau(A2)
Cột F2= tachsodau(A2)
Cột G2= tachchudau(B2)
Cột H2 = tachsodau(B2)
2.Dùng Custom Sort để Sort theo 4 cột này.
Tải file ví dụ:
Tải file bài giải
Lưu ý: Sau khi sort xong nên xóa 4 cột này đi cho nhẹ file.
Để trao đổi và hỏi đáp thêm về chủ đề này, vui lòng truy cập vào diễn đàn các bạn nhé https://thuthuataccess.com/forum/forum-21.html
Không có nhận xét nào
Đăng nhận xét