Microsoft Excel bao gồm một số công cụ tuyệt vời giúp bạn lọc các bảng dữ liệu lớn để chỉ bao gồm thông tin bạn muốn hiển thị. Trên thực tế, các bộ lọc cho phép bạn “cắt nhỏ” dữ liệu của mình cho đến khi bạn nhận được những gì bạn muốn.

Khi in ra dữ liệu đã lọc, bạn có thể muốn biết những gì đã được thực hiện đối với dữ liệu gốc. Có một số cách bạn có thể thực hiện để hiển thị các tiêu chí lọc của mình. Một cách đơn giản là sử dụng khả năng lọc nâng cao của Excel, khả năng này yêu cầu bạn thiết lập một bảng tiêu chí nhỏ cho dữ liệu của mình. Nếu bảng tiêu chí được tạo thành một phần của những gì bạn in, thì bạn có thể xem tiêu chí lọc của mình khá dễ dàng.

Nếu bạn sử dụng AutoFilter, thì bạn cần sử dụng một cách tiếp cận khác. Một cách tiếp cận như vậy được trình bày chi tiết tại trang của John Walkenbach:

http://j-walk.com/ss/excel/usertips/tip044.htm

Giải pháp này sử dụng một hàm do người dùng xác định để trả về bất kỳ tiêu chí lọc nào đang được sử dụng trong cột hiện tại. Hàm có thể được sử dụng trong một ô trong cột đó để hiển thị tiêu chí. Nếu bạn đang sử dụng tính năng lọc nâng cao, thì cách tiếp cận macro phức tạp hơn một chút. Các macro sau (có hai macro trong danh sách) kiểm tra tiêu chí nâng cao nào đang được sử dụng, sau đó đặt tiêu chí vào phần bên trái của tiêu đề.

Sub AddFilterCriteria()

Dim strCriteria As String

strCriteria = FilterCriteria()

If strCriteria = "" Then         strCriteria = "No Filtering Criteria"

Else         strCriteria = "Filter Criteria:" & Chr(10) & strCriteria     End If

'   add Criteria string to Header/Footer     With ActiveSheet.PageSetup         .LeftHeader = strCriteria     End With End Sub

Function FilterCriteria() As String     Dim rngCriteria As Range, col As Range, cel As Range     Dim strCriteria As String, r As Integer, c As Integer     Const strCriteriaRange As String = "Criteria"



FilterCriteria = ""



On Error Resume Next     'Set Criteria-Range reference     Set rngCriteria = Range(strCriteriaRange)

If Err <> 0 Then Exit Function     On Error GoTo 0

'   Create Criteria String     c = 0     For Each col In rngCriteria.Columns         c = c + 1     ' CriteriaRange Columns         r = 1         ' CriteriaRange Rows         For Each cel In col.Cells             If r = 1 Then                 strCriteria = strCriteria & "Criteria" _                   & c & " (" & cel.Value & ") = "

Else                 strCriteria = strCriteria & "'" & cel.Value & "'"

If IsEmpty(cel.Offset(1, 0)) Then                     'Add New row Char if not Last Criteria Column                     If c < rngCriteria.Columns.Count Then                         strCriteria = strCriteria & Chr(10)

End If                     Exit For                 End If                 strCriteria = strCriteria & "  "

End If             r = r + 1         Next cel    ' next criteria row     Next col        ' next criteria column

FilterCriteria = strCriteria End Function

Để sử dụng macro, chỉ cần chạy macro AddFilterCriteria, sau khi bạn đã thiết lập bộ lọc nâng cao. Macro đọc bảng tiêu chí và tập hợp các tiêu chí lại thành một chuỗi được đặt trong tiêu đề bên trái.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (11649) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.

Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: