VBA Excel (Bài 40): Hướng dẫn cách sắp xếp hoặc lọc dữ liệu có định dạng dấu gạch ngang trong Excel

Thông thường khi sử dụng chức năng Lọc (filter) hay Sắp xếp (Sort) trong Excel, chúng ta không thể nhận biết được những dữ liệu nào có định dạng dấu gạch ngang (StrikeThrough) hay không có định dạng này. Nhưng trong trường hợp chúng ta phải thực hiện lọc / sắp xếp với dữ liệu có lẫn dấu gạch ngang thì sao? Hãy cùng Học Excel Online tìm hiểu qua bài viết này nhé.

CÁCH SẮP XẾP HOẶC LỌC DỮ LIỆU CÓ ĐỊNH DẠNG DẤU GẠCH NGANG

Giả sử chúng ta có bảng dữ liệu như sau:

Những ô có tên có định dạng gạch ngang thể hiện những người không còn làm việc nữa. Các dữ liệu tên có dấu gạch và tên không có dấu gạch xen kẽ lẫn nhau

Yêu cầu là phải sắp xếp những tên có dấu gạch ngang xuống phía dưới, các tên không có dấu gạch xếp lên trên.

Cách thực hiện như sau:

Chúng ta không thể làm trực tiếp bằng cách Sort thông thường, mà phải tìm cách phân biệt ô nào có dấu gạch, ô nào không. Khi xác định được căn cứ này rồi thì chúng ta sẽ lọc theo kết quả phân biệt đó.

Bước 1: Mở cửa sổ VBA bằng phím tắt Alt + F11

Nếu bạn chưa biết cách mở cửa sổ VBA thì có thể tham khảo bài viết sau:

Bước 2: Tạo mới 1 Module trong cửa sổ Project của VBA

Bấm chuột phải vào vị trí bất kỳ trong cửa sổ Project, sau đó chọn Insert > Module

Trong Module1 vừa tạo, chúng ta viết đoạn code sau vào cửa sổ viết code của Module:

Bước 3: Kiểm tra các giá trị ở cột A có chứa format dạng dấu gạch ngang (strikeThrough) hay không

Quay trở lại cửa sổ làm việc của Excel, tại cột C chúng ta sẽ sử dụng hàm vừa tạo ở bước 2 kiểm tra các giá trị tương ứng ở cột A

Sao chép công thức sang các ô tính bạn cần. Như trong hình trên, bạn có thể thấy, nếu dữ liệu được gạch ngang, nó sẽ hiển thị TRUE, nếu là dữ liệu bình thường, nó sẽ hiển thị FALSE

Bước 4: Thực hiện thao tác sắp xếp dữ liệu

Chọn cả vùng bảng dữ liệu bao gồm cả dòng tiêu đề (vùng bảng A1:C9), sau đó chúng ta chọn thẻ Data > Sort

Trong cửa sổ Sort, chúng ta thực hiện như sau:
  • Sort by: Chọn sắp xếp theo cột HasStrike (cột C)
  • Sort on: sắp xếp theo giá trị bên trong ô (Cell Values)
  • Order: Thứ tự sắp xếp là Smallest to Largest (từ nhỏ nhất tới lớn nhất). Khi đó FALSE sẽ xếp trên, TRUE sẽ xếp dưới.

Khi đó các giá trị tương ứng theo các tên có dấu gạch ngang sẽ xếp dưới.

LỌC DỮ LIỆU BỊ GẠCH NGANG (DỮ LIỆU CÓ ĐỊNH DẠNG STRIKETHROUGH)

Bước 1: Chọn toàn bộ vùng dữ liệu, ví dụ tôi chọn A1: C9 và nhấn Data > Filter.

Bước 2: Nhấn nút mũi tên bên cạnh ô C1, đánh dấu chọn TRUE.

Bước 3: Nhấn OK, tất cả dữ liệu bị gạch ngang đã được lọc.

Chú ý. Sau khi hoàn thành sắp xếp và lọc, bạn có thể xóa giá trị trong cột C.