Lấy Tên File Trong Thư Mục Và Chèn Vào Excel: Hướng Dẫn Chi Tiết

Giới thiệu

Trong công việc quản lý dữ liệu, đặc biệt là khi làm việc với hàng ngàn file trong một thư mục, việc nhanh chóng tạo danh sách tên file và đưa chúng vào một bảng tính Excel có thể giúp bạn tiết kiệm thời gian và tránh sai sót. Dù bạn là quản trị viên hệ thống, nhà phân tích dữ liệu hay người làm marketing, bài viết này sẽ cung cấp cho bạn các phương pháp thực hành nhất quán, từ cách sử dụng VBA, Power Query, lệnh dòng lệnh, tới Python và cả công cụ thủ công trong Excel. Bạn có thể chọn phương pháp phù hợp với môi trường làm việc và kinh nghiệm của mình.

1. Tại sao nên lấy tên file vào Excel?

  • Tối ưu quy trình làm việc: Bạn có thể nhanh chóng xem xét, lọc, sắp xếp và phân tích danh sách này mà không cần phải lướt qua từng file một.
  • Tự động hoá báo cáo: Khi danh sách file được lưu trữ trong Excel, bạn có thể sử dụng tính năng PivotTable, Conditional Formatting hay VLOOKUP để tạo báo cáo tự động.
  • Kiểm tra dữ liệu: Dễ dàng phát hiện file bị thiếu, trùng lặp hoặc sai định dạng.
  • Bảo trì và ghi nhận: Các tệp tin được lưu trữ ngay trong file Excel giúp bạn dễ dàng quản lý phiên bản và ghi nhận lịch sử thay đổi.

2. Các phương pháp lấy tên file trong thư mục

2.1 Sử dụng VBA trong Excel

VBA (Visual Basic for Applications) elektrische èxit, cho phép bạn viết macro tùy chỉnh để tự động lấy danh sách file. Dưới đây là một đoạn mã mẫu:

Sub ListFilesInFolder() Dim folderPath As String Dim fileName As String Dim i As Long folderPath = InputBox("Nhập đường dẫn thư mục:", "Lấy tên file") If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\" fileName = Dir(folderPath & ".") i = 1 Do While fileName <> "" Cells(i, 1).Value = fileName i = i + 1 fileName = Dir Loop MsgBox "Hoàn thành! Tổng số file: " & i - 1, vbInformation
End Sub

本站操作步骤:

  1. Mở Excel → ALT + F11 → Insert > Module.
  2. Dán mã vào và lưu.
  3. Chạy macro bằng ALT + F8, chọn ListFilesInFolder.

Tip: Nếu muốn lấy các file theo kiểu .xlsx hoặc .txt, thay đổi Dir(folderPath & ".") thành Dir(folderPath & ".xlsx").

2.1.1 Lọc theo loại file

Bạn có thể mở rộng macro để lọc theo nhiều loại file:

' Lặp qua từng loại file
Dim fileTypes As Variant
fileTypes = Array(".xlsx", ".xls", ".csv") For Each typ In fileTypes fileName = Dir(folderPath & typ) Do While fileName <> "" Cells(i, 1).Value = fileName i = i + 1 fileName = Dir Loop
Next

2.1.2 Lấy đường dẫn đầy đủ

Nếu muốn lưu trữ đường dẫn đầy đủ, thay Cells(i, 1).Value = fileName thành:

Cells(i, 1).Value = folderPath & fileName

2.2 Dùng Power Query (Get & Transform)

Power Query là công cụ mạnh mẽ trong Excel 2026 trở lên, giúp bạn nhập dữ liệu trực tiếp từ hệ thống file.

Bước 1 الرأس:

  1. Mở Excel → কার্যক্ষেত্র > Data > Get Data > From File > From Folder.
  2. Điền đường dẫn thư mục và nhấn OK.

Bước 2: Power Query sẽ hiển thị danh sách file với các cột: Name, Extension, Date Modified, v.v. Bạn có thể:

  • Lọc: Click vào biểu tượng lọc trên cột Extension để chỉ lấy file .xlsx, .csv.
  • Chuyển đổi: Thêm cột tự tính, chuyển đổi kiểu dữ liệu.
  • Load: Chọn Close & Load để nạp dữ liệu vào một sheet mới.

Chú ý: Khi thư mục thay đổi (được thêm, xóa file), bạn cần nhấn Refresh trong Power Query để cập nhật danh sách.

2.3 Dùng lệnh dòng lệnh (Command Prompt)

Nếu bạn làm việc trên Windows, có thể nhanh chóng lấy danh sách file bằng lệnh dir và chuyển nó vào Excel.

Bước 1: Mở Command Prompt, chạy:

dir /b /a:-d "C:\path\to\folder" > filelist.txt
  • /b: Chỉ liệt kê tên file (no header/footer).
  • /a:-d: Lọc tệp (không phải thư mục).
  • Kết quả được ghi vào filelist.txt.

Bước 2: Mở Excel → Data > Get Data > From Text/CSV, chọn filelist.txt. Excel sẽ nạp danh sách vào sheet.

Tip: Nếu muốn lấy đường dẫn đầy đủ, sử dụng:

for %F in ("C:\path\to\folder\") do @echo %~fF >> filelist.txt

2.4 Dùng Python (pandas)

Python là công cụ linh hoạt, có thể xử lý file lớn, lọc, sắp xếp một cách mạnh mẽ. Bước đơn giản:

import os
import pandas as pd folder = r"C:\path\to\folder"
files = f for f in os.listdir(folder) if os.path.isfile(os.path.join(folder, f)) df = pd.DataFrame(files, columns='FileName')
df.to_excel('file_list.xlsx', index=False)

Bạn chỉ cần cài đặt চাপ và chạy script. File file_list.xlsx sẽ được tạo ra.

Nâng cao: Nếu muốn lấy ngày sửa đổi, kích thước file:

data = for f in files: full_path = os.path.join(folder, f) stat = os.stat(full_path) data.append({ 'FileName': f, 'Size (bytes)': stat.st_size, 'Modified': pd.to_datetime(stat.st_mtime, unit='s') })
df = pd.DataFrame(data)
df.to_excel('file_list.xlsx', index=False)

2.5 Dùng Google Sheets + Apps Script

Nếu bạn làm việc trong môi trường cloud, bạn có thể sử dụng Google Drive API:

function listFilesInFolder() { var folderId = 'YOUR_FOLDER_ID'; var folder = DriveApp.getFolderById(folderId); var files = folder.getFiles(); var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); sheet.clear(); sheet.appendRow('FileName', 'URL', 'Size', 'Modified'); while (files.hasNext()) { var file = files.next(); sheet.appendRow( file.getName(), file.getUrl(), file.getSize(), file.getLastUpdated() ); }
}

Lưu ý: Bạn cần bật Drive API và cấp quyền.

3. Lọc và sắp xếp danh sách file trong Excel

Sau khi đã có danh sách file, bạn có thể áp dụng các công cụ sắp xếp, lọc trong Excel.

3.1 Sắp xếp theo tên

Lấy Tên File Trong Thư Mục Chèn Vào Excel
Lấy Tên File Trong Thư Mục Chèn Vào Excel
  • Chọn cột FileName.
  • Data > Sort A to Z (thuật ngữ: Sắp xếp tăng dần) hoặc Sort Z to A (giảm dần).

3.2 Lọc theo phần mở rộng

  • Bật Filter (Data > Filter).
  • Nhấp vào biểu tượng lọc trên cột FileName, chọn Text Filters > Ends With..., nhập .xlsx hoặc .csv.

3.3 Kiểm tra trùng lặp

  • Chọn cột FileName.
  • Conditional Formatting > Highlight Cells Rules > Duplicate Values.

3.4 Tạo PivotTable

  • Insert > PivotTable.
  • Chọn vùng dữ liệu (cột Ratings).
  • Kéo FileName vào Rows, Count of FileName vào+p Values.

4. Tự động hoá quá trình

4.1 Macro tự động refresh

Bạn có thể tạo một macro để tự động nạp danh sách file mỗi khi mở workbook:

Private Sub Workbook_Open() ListFilesInFolder
End Sub

Tạo ThisWorkbook module trong VBA và dán đoạn mã này.

4.2 Lưu lịch sử

Bạn có thể lưu danh sách file vào một sheet riêng History và ghi lại thời gian nạp:

Sub AppendHistory() Dim folderPath As String Dim fileName As String Dim ws As Worksheet folderPath = "C:\path\to\folder\" Set ws = ThisWorkbook.Sheets("History") fileName = Dir(folderPath & ".") Do While fileName <> "" ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(1).Value = fileName ws.Cells(ws.Rows.Count, 2).End(xlUp).Offset(1).Value = Now fileName = Dir Loop
End Sub

4.3 Kết hợp với Power Automate

Nếu bạn đang sử dụng Office 365, Power Automate (Flow) có thể tự động tạo file Excel khi có tệp mới trong thư mục OneDrive:

  1. Trigger: “When a file is created (properties only)” (OneDrive/SharePoint).
  2. Action: “Add a row into a table” (Excel Online).

5. Thực hành: Tạo danh sách file cho dự án

Giả sử bạn làm việc với một dự án tạo báo cáo hàng ngày. Bạn có thư mục C:\Reports\Daily\ chứa các file .xlsx. Bạn muốn tự động tạo danh sách file vào một file ReportList.xlsx.

5.1 Sử dụng VBA

Sub GenerateDailyReportList() Dim folderPath As String Dim fileName As String Dim i As Long Dim wb As Workbook folderPath = "C:\Reports\Daily\" If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\" Set wb = Workbooks.Add i = 1 fileName = Dir(folderPath & ".xlsx") Do While fileName <> "" wb.Sheets(1).Cells(i, 1).Value = fileName i = i + 1 fileName = Dir Loop wb.SaveAs "C:\Reports\ReportList.xlsx" wb.Close
End Sub

Bạn có thể đặt macro này vào ThisWorkbook và chạy Workbook_Open để tự động cập nhật mỗi ngày.

5.2 Dùng Power Query

  1. Mở Excel, Data > Get Data > From File > From Folder.
  2. Nhập đường dẫn C:\Reports\Daily.
  3. Trong Power Query Editor, lọc Extension = .xlsx.
  4. Close & Load vào sheet Daily Report List.

Sau khi dữ liệu nạp, bạn có thể thiết lập Refresh Every X Minutes (bảng Data > Refresh All > Connection Properties).

6. Lưu ý khi làm việc với danh sách file

Thông tinMô tảLưu ý
Kích thước thư mụcNếu thư mục chứa hàng ngàn file, Power Query có thể chậm.Sử dụng VBA hoặc Python để tối ưu.
Định dạng fileChỉ lấy .xlsx hoặc .csv để tránh file không cần thiết.Dùng Extension trong Power Query hoặc Dir pattern.
Đường dẫn tuyệt đốiĐảm bảo lưu đường dẫn đầy đủ nếu cần truy cập file sau này.Thêm cột FullPath.
Độ an toànĐừng ghi đè file Excel hiện có.Kết nối Append hoặc lưu vào thư mục mới.
Dữ liệu cập nhậtHãy refresh dữ liệu khi thư mục thay đổi.Thiết lập Refresh On Load hoặc macro Workbook_Open.

7. Kết luận

Việc lấy tên file trong thư mục và chèn vào Excel không chỉ giúp bạn quản lý dữ liệu hiệu quả mà còn mở ra nhiều khả năng tự động hoá báo cáo và phân tích. Bạn có thể lựa chọn phương pháp phù hợp:

  • VBA: Nhanh chóng, dễ triển khai trong Excel.
  • Power Query: Thích hợp cho người không cần viết code, dễ dàng lọc dữ liệu.
  • Command Prompt: Đơn giản, tiện lợi cho người dùng Windows.
  • Python: Linh hoạt, mạnh mẽ khi cần xử lý dữ liệu phức tạp.
  • Google Sheets: Dùng trong môi trường cloud, truy cập từ xa.

Bất kể bạn chọn phương pháp nào, hãy nhớ kiểm tra, filter và bảo trì dữ liệu thường xuyên để tránh lỗi và duy trì tính nhất quán. Hy vọng bài viết này đã cung cấp cho bạn những công cụ và kiến thức cần thiết để nhanh chóng tạo danh sách file và đưa vào Excel một cách chuyên nghiệp. Happy coding!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận