1/9/19

Sort cột bao gồm cả chữ lẫn số trong Excel

Có 1 điều rất khó chịu khi ta sort 1 cột có cả chữ lẫn số trong excel. Bài này hướng dẫn ta giải quyết điều đó. thumbnail 1 summary
Có 1 điều rất khó chịu khi ta sort 1 cột có cả chữ lẫn số trong excel. Bài này hướng dẫn ta giải quyết điều đó.

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
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