Xin hỏi cách để lọc dữ liệu ngày tháng của nhiều sheet (6 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
2
Đượ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!!!
 
Em cảm ơn các Bác đã chia sẻ ạ, Ctrl + F nhanh gọn, đơn giản nhất mà sáng giờ em cứ nghĩ nó phức tạp ra phải dùng VBA làm nên bỏ quên cái này.
Xin cảm ơn ạ
 

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

Back
Top Bottom