Xin hỏi cách để lọc dữ liệu ngày tháng của nhiều sheet (3 người xem)

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

  • Tôi tuân thủ nội quy khi đăng bài

    TatLap

    Thành viên mới
    Tham gia
    10/5/17
    Bài viết
    1
    Được thích
    0
    Giới tính
    Nữ
    Em chào Anh Chị!
    Em có vấn đề nhờ mọi người hỗ trợ như sau,
    Ví dụ em muốn lọc dữ liệu nhập của ngày 01/12/2025 gồm có những sheet nào hoặc hiện các dữ liệu các sheet có ngày nhập là 01/12/2025 ở file dưới này thì làm sao ạ.
    Em cảm ơn mọi người nhiều!
     

    File đính kèm

    Em chào Anh Chị!
    Em có vấn đề nhờ mọi người hỗ trợ như sau,
    Ví dụ em muốn lọc dữ liệu nhập của ngày 01/12/2025 gồm có những sheet nào hoặc hiện các dữ liệu các sheet có ngày nhập là 01/12/2025 ở file dưới này thì làm sao ạ.
    Em cảm ơn mọi người nhiều!
    1766632282562.png
    Ctrl H là ra hộp thoại tìm kiếm này, ấn Find Next là nó nhảy đến các sheet bạn cần thôi
     
    Bài toán này Excel thuần (không VBA) làm rất khó hoặc không làm được, vì công thức không đọc được ô A4 của sheet khác.
    Cách ĐÚNG – gọn – làm được 100% là dùng VBA.
    Khi chạy macro:


    1. Excel hỏi: Nhập ô cần kiểm tra → bạn gõ A2, hoặc A4
    2. Excel hỏi: Nhập chuỗi cần tìm → bạn gõ Ngày: 01/12/2025
    3. Excel trả về:
      • Danh sách tên sheet
      • (kèm nội dung ô nếu bạn muốn)
    Mã:
    Sub LayDanhSachSheet_TuyChon()
    
        Dim ws As Worksheet
        Dim rowOut As Long
        Dim targetText As String
        Dim targetCell As String
        Dim cellValue As String
        
        ' Nhập ô cần kiểm tra (ví dụ A2)
        targetCell = InputBox("Nhập ô cần kiểm tra (ví dụ: A2)", "Chọn ô")
        If targetCell = "" Then Exit Sub
        
        ' Nhập chuỗi cần tìm
        targetText = InputBox("Nhập chuỗi cần tìm (ví dụ: Ngày: 01/12/2025)", "Chuỗi tìm kiếm")
        If targetText = "" Then Exit Sub
        
        rowOut = 2
        
        ' Xóa sheet kết quả nếu đã tồn tại
        On Error Resume Next
        Application.DisplayAlerts = False
        Worksheets("KET_QUA").Delete
        Application.DisplayAlerts = True
        On Error GoTo 0
        
        ' Tạo sheet kết quả
        Worksheets.Add.Name = "KET_QUA"
        With Sheets("KET_QUA")
            .Range("A1") = "Tên sheet"
            .Range("B1") = "Nội dung ô " & targetCell
        End With
        
        ' Quét tất cả sheet
        For Each ws In ThisWorkbook.Worksheets
            If ws.Name <> "KET_QUA" Then
                On Error Resume Next
                cellValue = ws.Range(targetCell).Value
                On Error GoTo 0
                
                If InStr(1, cellValue, targetText, vbTextCompare) > 0 Then
                    Sheets("KET_QUA").Cells(rowOut, 1).Value = ws.Name
                    Sheets("KET_QUA").Cells(rowOut, 2).Value = cellValue
                    rowOut = rowOut + 1
                End If
            End If
        Next ws
        
        MsgBox "Hoàn tất! Tìm được " & rowOut - 2 & " sheet.", vbInformation
    
    End Sub
     
    Bài toán này Excel thuần (không VBA) làm rất khó hoặc không làm được, vì công thức không đọc được ô A4 của sheet khác.
    Cách ĐÚNG – gọn – làm được 100% là dùng VBA.
    Khi chạy macro:


    1. Excel hỏi: Nhập ô cần kiểm tra → bạn gõ A2, hoặc A4
    2. Excel hỏi: Nhập chuỗi cần tìm → bạn gõ Ngày: 01/12/2025
    3. Excel trả về:
      • Danh sách tên sheet
      • (kèm nội dung ô nếu bạn muốn)
    Mã:
    Sub LayDanhSachSheet_TuyChon()
    
        Dim ws As Worksheet
        Dim rowOut As Long
        Dim targetText As String
        Dim targetCell As String
        Dim cellValue As String
       
        ' Nhập ô cần kiểm tra (ví dụ A2)
        targetCell = InputBox("Nhập ô cần kiểm tra (ví dụ: A2)", "Chọn ô")
        If targetCell = "" Then Exit Sub
       
        ' Nhập chuỗi cần tìm
        targetText = InputBox("Nhập chuỗi cần tìm (ví dụ: Ngày: 01/12/2025)", "Chuỗi tìm kiếm")
        If targetText = "" Then Exit Sub
       
        rowOut = 2
       
        ' Xóa sheet kết quả nếu đã tồn tại
        On Error Resume Next
        Application.DisplayAlerts = False
        Worksheets("KET_QUA").Delete
        Application.DisplayAlerts = True
        On Error GoTo 0
       
        ' Tạo sheet kết quả
        Worksheets.Add.Name = "KET_QUA"
        With Sheets("KET_QUA")
            .Range("A1") = "Tên sheet"
            .Range("B1") = "Nội dung ô " & targetCell
        End With
       
        ' Quét tất cả sheet
        For Each ws In ThisWorkbook.Worksheets
            If ws.Name <> "KET_QUA" Then
                On Error Resume Next
                cellValue = ws.Range(targetCell).Value
                On Error GoTo 0
               
                If InStr(1, cellValue, targetText, vbTextCompare) > 0 Then
                    Sheets("KET_QUA").Cells(rowOut, 1).Value = ws.Name
                    Sheets("KET_QUA").Cells(rowOut, 2).Value = cellValue
                    rowOut = rowOut + 1
                End If
            End If
        Next ws
       
        MsgBox "Hoàn tất! Tìm được " & rowOut - 2 & " sheet.", vbInformation
    
    End Sub
    AI nào trả lời vậy bạn?
     
    screenshot_1766633160.png
    Bạn nói rất đúng — và xin lỗi vì lúc trước mình chưa chỉ cho bạn cách này, trong khi đây là cách NHANH – KHÔNG VBA – cực kỳ hay
    Giờ mình giải thích đầy đủ từ A–Z, đúng như hình bạn gửi.

    ✅ CÁCH DÙNG TÌM & THAY THẾ (Ctrl + F) ĐỂ LẤY DANH SÁCH SHEET
    Mục tiêu

    File có rất nhiều sheet

    Trong mỗi sheet, ô A2 / A4 / A$4… có text:

    Ngày: 01/12/2025


    Muốn biết những sheet nào có ngày này

    CÁCH LÀM ĐÚNG CHUẨN (như ảnh bạn gửi)
    Bước 1: Mở hộp Tìm kiếm

    Nhấn Ctrl + F

    Bước 2: Nhập nội dung cần tìm

    Tìm gì:

    01/12/2025


    (hoặc Ngày: 01/12/2025 đều được)

    Bước 3: Bấm Tùy chọn <<

    Thiết lập CỰC KỲ QUAN TRỌNG

    Mục Giá trị
    Trong khoảng Sổ làm việc ✅
    Tìm trong Giá trị (hoặc Công thức nếu là công thức)
    Tìm kiếm Theo hàng
    Khớp toàn bộ nội dung ô ❌ KHÔNG tick
    Khớp chữ hoa/thường ❌

    “Sổ làm việc” chính là điểm ăn tiền → quét tất cả sheet

    Bước 4: Bấm Tìm tất cả

    Excel sẽ trả ra danh sách đầy đủ như bạn thấy:

    Tên file

    Tên sheet

    Ô (A4, A2…)

    Giá trị: Ngày: 01/12/2025

    Dòng dưới cùng:

    17 ô được tìm thấy
    → tức là 17 sheet thỏa điều kiện

    MẸO NÂNG CAO (rất đáng dùng)
    ✅ 1. Copy danh sách kết quả ra ngoài

    Click vào bất kỳ dòng nào

    Nhấn Ctrl + A

    Nhấn Ctrl + C

    Dán ra Excel / Word / Email

    Bạn sẽ có danh sách sheet hoàn chỉnh để báo cáo.

    ✅ 2. Nhảy nhanh tới sheet cần xem

    Double-click vào bất kỳ kết quả nào
    Excel tự nhảy đúng sheet – đúng ô

    ✅ 3. Dùng khi KHÔNG được bật VBA

    File dùng chung

    File công ty chặn macro
    Cách này là tối ưu nhất

    ⚠️ LƯU Ý QUAN TRỌNG

    Nếu ô chứa công thức sinh ra chữ “Ngày: …”

    Phải chọn Tìm trong: Giá trị

    Nếu là text gõ tay

    Giá trị / Công thức đều OK

    SO SÁNH NHANH
    Cách Khi nào nên dùng
    Ctrl + F (cách này) Tìm nhanh, 1 ngày, không VBA
    VBA Tự động, nhiều ngày, xuất báo cáo
    Power Query Dữ liệu chuẩn hóa, dài hạn

    Trường hợp của bạn: Ctrl + F là quá hợp lý

    Nếu bạn muốn, mình có thể:

    Chỉ thêm cách lọc theo nhiều ngày

    Hoặc kết hợp Ctrl+F + VBA để xuất tự động

    Hoặc hướng dẫn chuẩn hóa dữ liệu để sau này chỉ cần 1 click

    Bạn đang dùng cách này cho kiểm tra nhanh hay báo cáo định kỳ?
    Em vừa mua gói GO của chatGPT nên đang rất hào hứng!!!
     

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

    Back
    Top Bottom