Cách Sao Chép Tên Thư Mục Vào Excel: Hướng Dẫn Chi Tiết Từ A Đến Z

Mục lục bài viết

Giới thiệu

Trong môi trường làm việc hiện đại, việc quản lý dữ liệu một cách hiệu quả là yếu tố then chốt để nâng cao năng suất và giảm thiểu sai sót. Một trong những nhiệm vụ thường gặp nhưng không kém phần phức tạp là sao chép tên các thư mục (folder) vào Excel để tạo danh sách, báo cáo, hoặc làm cơ sở dữ liệu cho các dự án. Dù bạn là nhân viên văn phòng, quản lý dự án, lập trình viên, hay nhà nghiên cứu, việc này đều có thể giúp bạn:

  • Tổng hợp nhanh danh sách các tài liệu, file trong một dự án.
  • Kiểm tra tính đầy đủ của các thư mục theo chuẩn định dạng.
  • Tự động hoá các quy trình báo cáo, thống kê.
  • Tạo chỉ mục cho hệ thống lưu trữ, giúp người dùng dễ tìm kiếm.

Bài viết dưới đây sẽ cung cấp cho bạn hướng dẫn chi tiết, từng bước một để sao chép tên thư mục vào Excel, bao gồm:

  1. Các phương pháp thủ công (sử dụng Windows Explorer, macOS Finder, và công cụ dòng lệnh).
  2. Sử dụng PowerShell (Windows) và Terminal (macOS/Linux) để trích xuất danh sách.
  3. Sử dụng các công cụ bên thứ ba (FreeCommander, Total Commander, Directory List & Print, v.v.).
  4. Tự động hoá bằng VBA trong Excel và Google Apps Script.
  5. Xử lý dữ liệu sau khi nhập vào Excel (loại bỏ trùng lặp, sắp xếp, tạo hyperlink, v.v.).
  6. Mẹo nâng cao như lọc theo độ sâu thư mục, lấy ngày tạo, ngày sửa đổi, kích thước thư mục.
  7. Các lỗi thường gặp và cách khắc phục.

Hãy cùng khám phá từng phần một cách chi tiết và thực hành ngay trên máy tính của bạn!

1. Phương Pháp Thủ Công – Nguyên Tắc Cơ Bản

1.1. Sao chép tên thư mục từ Windows Explorer

  1. Mở thư mục gốc chứa các thư mục con mà bạn muốn sao chép.
  2. Chuyển sang chế độ “Details” (Chi tiết) bằng cách click vào menu “View” → “Details”.
  3. Chọn cột “Name” bằng cách click chuột phải vào tiêu đề cột và chắc chắn rằng “Name” được bật.
  4. Chọn tất cả các thư mục cần sao chép:
  5. Nhấn Ctrl + A để chọn toàn bộ.
  6. Hoặc giữ Ctrl và click từng thư mục muốn.
  7. Sao chép: Nhấn Ctrl + C hoặc click chuột phải → “Copy”.
  8. Mở Excel, chọn ô đầu tiên (ví dụ A1) và dán (Ctrl + V). Excel sẽ tự động dán tên các thư mục vào các ô riêng biệt.

Lưu ý: Phương pháp này chỉ sao chép tên, không bao gồm đường dẫn đầy đủ. Nếu cần đường dẫn, hãy xem các phương pháp dưới đây.

1.2. Sao chép tên thư mục từ macOS Finder

  1. Mở Finder và điều hướng tới thư mục gốc.
  2. Chuyển sang chế độ “List View” (View → as List) để hiển thị danh sách.
  3. Bật cột “Name” nếu chưa hiển thị: “View” → “Show View Options” → tick “Name”.
  4. Chọn các thư mục (Command + A để chọn tất cả hoặc Command + Click để chọn riêng).
  5. Sao chép: Command + C.
  6. Mở Numbers hoặc Excel, dán (Command + V) vào ô muốn.

Mẹo: Đối với macOS, nếu muốn sao chép đường dẫn đầy đủ, sử dụng Option + Command + C để copy path, sau đó dán vào Excel.

1.3. Khi nào nên dùng phương pháp thủ công?

  • Khi số lượng thư mục không quá lớn (dưới 200 mục).
  • Khi không có quyền cài đặt phần mềm hoặc truy cập dòng lệnh.
  • Khi bạn cần sao chép nhanh một danh sách ngắn cho báo cáo tạm thời.

2. Sử Dụng Dòng Lệnh – PowerShell (Windows)

PowerShell là công cụ mạnh mẽ cho phép trích xuất thông tin hệ thống nhanh chóng. Dưới đây là các lệnh cơ bản để lấy tên thư mục và xuất ra file CSV, sau đó mở trong Excel.

2.1. Lệnh cơ bản lấy tên thư mục

Get-ChildItem -Path "C:\DuongDan\ThuMucGoc" -Directory | Select-Object -ExpandProperty Name
  • Get-ChildItem (alias gci) liệt kê các mục trong thư mục.
  • -Directory chỉ lấy thư mục, không bao gồm file.
  • Select-Object -ExpandProperty Name trả về chỉ tên.

2.2. Lưu kết quả vào file CSV

Get-ChildItem -Path "C:\DuongDan\ThuMucGoc" -Directory | Select-Object Name | Export-Csv -Path "C:\DuongDan\DanhSachThuMuc.csv" -NoTypeInformation -Encoding UTF8
  • Export-Csv tạo file CSV có thể mở thẳng trong Excel.
  • -NoTypeInformation loại bỏ dòng meta không cần thiết.
  • -Encoding UTF8 đảm bảo tiếng Việt hiển thị đúng.

2.3. Lấy đường dẫn đầy đủ (FullName) và ngày tạo

Get-ChildItem -Path "C:\DuongDan\ThuMucGoc" -Directory | Select-Object Name, FullName, CreationTime | Export-Csv -Path "C:\DuongDan\DanhSachThuMuc_ChiTiet.csv" -NoTypeInformation -Encoding UTF8

Bạn sẽ có ba cột: Tên, Đường dẫn, Ngày tạo. Khi mở trong Excel, bạn có thể tùy chỉnh hiển thị ngày tháng.

2.4. Lọc theo độ sâu (subfolders)

Nếu muốn liệt kê cả các thư mục con đến một độ sâu nhất định:

Get-ChildItem -Path "C:\DuongDan\ThuMucGoc" -Recurse -Directory | Where-Object { $_.FullName.Split('\').Count -le 4 } | # Độ sâu <= 4 Select-Object Name, FullName | Export-Csv -Path "C:\DuongDan\DanhSachThuMuc_Deep.csv" -NoTypeInformation -Encoding UTF8
  • -Recurse duyệt đệ quy.
  • Where-Object lọc dựa trên số lượng dấu \ trong đường dẫn (độ sâu).

2.5. Tự động mở file CSV trong Excel

$csv = "C:\DuongDan\DanhSachThuMuc.csv"
Start-Process $csv

Lệnh Start-Process sẽ mở file bằng ứng dụng mặc định (thường là Excel).

3. Sử Dụng Dòng Lệnh – Terminal (macOS & Linux)

3.1. Lệnh ls và find

3.1.1. Liệt kê tên thư mục (đơn cấp)

ls -d / | sed 's%/%%' > danh_sach_thu_muc.txt
  • ls -d / liệt kê các thư mục con.
  • sed 's%/%%' loại bỏ dấu / ở cuối.
  • Kết quả lưu vào file txt, có thể mở bằng Excel (File → Open → Text).

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

find /path/to/ThuMucGoc -type d -maxdepth 1 -printf "%f\n" > danh_sach.txt
  • -type d chỉ thư mục.
  • -maxdepth 1 chỉ cấp độ hiện tại.
  • %f in tên file (thư mục) không có đường dẫn.

3.1.3. Lấy thông tin chi tiết (đường dẫn, ngày tạo)

find /path/to/ThuMucGoc -type d -maxdepth 1 -exec stat -f "%N,%SB" {} \; > danh_sach_chi_tiet.csv
  • stat -f "%N,%SB" in tên và ngày tạo (theo định dạng locale).

3.2. Chuyển đổi sang CSV cho Excel

Nếu file output là .txt với các giá trị cách nhau bằng tab hoặc dấu phẩy, chỉ cần đổi phần mở rộng thành .csv và mở trong Excel. Excel sẽ tự nhận dạng delimiter.

mv danh_sach.txt danh_sach.csv

4. Công Cụ Bên Thứ Ba – Giải Pháp Nhanh và Đa Dạng

4.1. FreeCommander (Windows)

  1. Mở FreeCommander, duyệt tới thư mục gốc.
  2. Chọn cột “Name” trong danh sách.
  3. Chọn các thư mục muốn sao chép.
  4. Click Edit → Copy Names (hoặc Ctrl+Shift+C).
  5. Dán vào Excel.

FreeCommander còn cho phép copy full path (Ctrl+Alt+C).

4.2. Total Commander (Windows)

  1. Mở Total Commander, bật “Show full names”.
  2. Chọn các thư mục → Ctrl+M để Mark.
  3. Dùng “Files → Copy Names to Clipboard” → chọn “Full Path” hoặc “Names only”.
  4. Dán vào Excel.

4.3. Directory List & Print (Windows)

Copy Folder Names To Excel
Copy Folder Names To Excel
  • Phần mềm này cho phép export danh sách thư mục dưới dạng CSV, TXT, HTML.
  • Hỗ trợ filter theo độ sâu, định dạng ngày, kích thước.
  • Thích hợp cho các dự án lớn (hàng ngàn thư mục).

4.4. Xplorer² (Windows)

  • Tương tự Total Commander, hỗ trợ drag-and-drop danh sách trực tiếp vào Excel.
  • Có tính năng custom columns, cho phép hiển thị ngày tạo, ngày sửa, kích thước.

4.5. Finder Extensions (macOS)

  • Path Finder hoặc ForkLift cung cấp chức năng Copy Path cho nhiều mục cùng lúc.
  • Sau khi copy, chỉ cần dán vào Excel.

5. Tự Động Hóa Bằng VBA Trong Excel

Nếu bạn thường xuyên phải lấy danh sách thư mục, việc viết một macro VBA sẽ tiết kiệm thời gian đáng kể.

5.1. Mở trình VBA

  1. Mở Excel → Alt + F11 để mở Visual Basic for Applications.
  2. Chọn Insert → Module để tạo một module mới.

5.2. Mã VBA lấy tên thư mục (cấp 1)

Sub GetFolderNames() Dim fso As Object Dim folder As Object Dim subfolder As Object Dim i As Long Dim rootPath As String rootPath = InputBox("Nhập đường dẫn thư mục gốc:", "Lấy tên thư mục") Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(rootPath) i = 1 For Each subfolder In folder.SubFolders Cells(i, 1).Value = subfolder.Name i = i + 1 Next subfolder MsgBox "Hoàn thành! Đã lấy " & i - 1 & " thư mục.", vbInformation
End Sub
  • Giải thích:
  • FileSystemObject (FSO) dùng để truy cập hệ thống file.
  • Vòng For Each duyệt các thư mục con.
  • Kết quả được ghi vào cột A của sheet hiện tại.

5.3. Mã VBA lấy đường dẫn đầy đủ và ngày tạo

Sub GetFolderDetails() Dim fso As Object Dim folder As Object Dim subfolder As Object Dim i As Long Dim rootPath As String rootPath = InputBox("Nhập đường dẫn thư mục gốc:", "Lấy chi tiết thư mục") Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(rootPath) 'Header Cells(1, 1).Value = "Tên" Cells(1, 2).Value = "Đường Dẫn" Cells(1, 3).Value = "Ngày Tạo" i = 2 For Each subfolder In folder.SubFolders Cells(i, 1).Value = subfolder.Name Cells(i, 2).Value = subfolder.Path Cells(i, 3).Value = subfolder.DateCreated i = i + 1 Next subfolder MsgBox "Hoàn thành! Đã lấy " & i - 2 & " thư mục.", vbInformation
End Sub
  • Lưu ý: Khi chạy macro lần đầu, Excel sẽ yêu cầu cho phép macro. Chọn “Enable macros”.

5.4. Đánh dấu các thư mục trùng lặp

Sau khi có danh sách, bạn có thể dùng công cụ Conditional Formatting để tô màu các giá trị trùng lặp:

  1. Chọn cột chứa tên thư mục.
  2. Home → Conditional Formatting → Highlight Cells Rules → Duplicate Values….
  3. Chọn màu, nhấn OK.

5.5. Tạo Hyperlink tới thư mục trong Excel

Sub AddHyperlinks() Dim lastRow As Long lastRow = Cells(Rows.Count, 2).End(xlUp).Row 'Giả sử cột B chứa đường dẫn Dim i As Long For i = 2 To lastRow ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), _ Address:=Cells(i, 2).Value, _ TextToDisplay:=Cells(i, 1).Value Next i MsgBox "Đã tạo hyperlink cho " & lastRow - 1 & " mục.", vbInformation
End Sub

Sau khi chạy, mỗi tên thư mục sẽ trở thành liên kết mở thư mục tương ứng khi click.

6. Xử Lý Dữ Liệu Sau Khi Nhập Vào Excel

6.1. Loại bỏ trùng lặp

  • Chọn cột chứa tên → Data → Remove Duplicates….
  • Đánh dấu cột muốn kiểm tra → OK.

6.2. Sắp xếp và nhóm

  • Data → Sort để sắp xếp alphabet hoặc theo ngày.
  • Dùng PivotTable để nhóm theo độ sâu (nếu có cột “Depth”).

6.3. Tính tổng kích thước thư mục (nếu có)

Nếu bạn đã export kích thước (Size) từ PowerShell hoặc Terminal, có thể:

  1. Đảm bảo cột Size ở dạng Number (định dạng số).
  2. Sử dụng SUM, AVERAGE, hoặc Conditional Formatting để đánh dấu thư mục lớn.

6.4. Tạo biểu đồ thống kê

  • Chọn dữ liệu (Tên và Kích thước) → Insert → Column Chart.
  • Biểu đồ giúp trực quan hoá thư mục chiếm nhiều không gian.

7. Mẹo Nâng Cao – Lấy Thông Tin Chi Tiết Hơn

7.1. Độ sâu thư mục (Depth)

Trong PowerShell, bạn có thể tính độ sâu dựa trên số lượng dấu \:

Get-ChildItem -Path "C:\DuongDan\ThuMucGoc" -Recurse -Directory | Select-Object @{Name='Depth';Expression={($_.FullName -split '\\').Count - ($baseDepth)}}, Name, FullName | Export-Csv -Path "C:\DuongDan\DanhSach_Deep.csv" -NoTypeInformation -Encoding UTF8
  • $baseDepth là số dấu \ của thư mục gốc (có thể lấy bằng ($basePath -split '\\').Count).

7.2. Lấy ngày sửa đổi cuối (LastWriteTime)

Get-ChildItem -Path "C:\DuongDan\ThuMucGoc" -Directory | Select-Object Name, FullName, LastWriteTime | Export-Csv -Path "C:\DuongDan\DanhSach_LastWrite.csv" -NoTypeInformation -Encoding UTF8

7.3. Đếm số file trong mỗi thư mục

Get-ChildItem -Path "C:\DuongDan\ThuMucGoc" -Directory | ForEach-Object { $fileCount = (Get-ChildItem -Path $_.FullName -File -Recurse).Count PSCustomObject@{ Name = $_.Name FullPath = $_.FullName FileCount = $fileCount } } | Export-Csv -Path "C:\DuongDan\ThuMuc_FileCount.csv" -NoTypeInformation -Encoding UTF8

Kết quả: cột FileCount cho biết số tệp trong mỗi thư mục (đệ quy).

7.4. Tích hợp với Google Sheets

Nếu bạn muốn dữ liệu lên Google Sheets, có thể:

  1. Export CSV.
  2. Mở Google Drive → “Import” → chọn file CSV.
  3. Hoặc dùng Google Apps Script để tự động import:
function importFolderList() { var file = DriveApp.getFileById('ID_CSV_TRONG_GOOGLE_DRIVE'); var csv = Utilities.parseCsv(file.getBlob().getDataAsString()); var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('DanhSach'); sheet.clearContents(); sheet.getRange(1,1,csv.length,csv0.length).setValues(csv);
}

8. Các Lỗi Thường Gặp Và Cách Khắc Phục

LỗiNguyên nhânGiải pháp
Tên thư mục bị cắt ngắnDòng lệnh hoặc công cụ giới hạn độ dài (ví dụ dir /b trong CMD).Sử dụng PowerShell hoặc Get-ChildItem để lấy đầy đủ.
Ký tự Unicode (tiếng Việt) hiển thị lỗiMã hoá không đúng (ANSI vs UTF‑8).Khi export, luôn dùng -Encoding UTF8 (PowerShell) hoặc iconv (Linux).
Excel mở CSV và chia cột saiDấu phân cách không phù hợp (comma vs semicolon).Kiểm tra Regional Settings Windows → sử dụng dấu ; nếu hệ thống dùng dấu phẩy cho thập phân.
Không thể mở hyperlinkĐường dẫn chứa khoảng trắng hoặc ký tự đặc biệt chưa được mã hoá.Dùng VBA Hyperlinks.Add để tự động xử lý.
Permission denied khi chạy PowerShellChạy PowerShell ở chế độ không đủ quyền.Mở PowerShell Run as Administrator hoặc dùng Set-ExecutionPolicy RemoteSigned.

9. Tổng Kết Và Lời Khuyên Cuối Cùng

Việc sao chép tên thư mục vào Excel không còn là công việc “đầu bếp” mà có thể trở thành công cụ mạnh mẽ hỗ trợ quản lý dự án, kiểm kê tài liệu, và tạo báo cáo tự động. Tùy thuộc vào quy mô và yêu cầu chi tiết, bạn có thể lựa chọn:

  • Phương pháp thủ công cho danh sách ngắn và nhanh chóng.
  • PowerShell / Terminal cho các danh sách lớn, cần chi tiết (đường dẫn, ngày, kích thước).
  • Công cụ bên thứ ba khi muốn giao diện đồ họa và tính năng drag‑and‑drop.
  • VBA hoặc Google Apps Script để tự động hoá quy trình và tích hợp vào báo cáo định kỳ.

Một số lời khuyên quan trọng:

  1. Luôn kiểm tra mã hoá (UTF‑8) khi làm việc với tiếng Việt để tránh lỗi hiển thị.
  2. Lưu file CSV ở vị trí dễ truy cập và đặt tên có ngày tháng để quản lý phiên bản.
  3. Thêm cột “Depth” hoặc “FileCount” nếu bạn cần phân tích cấu trúc thư mục sâu hơn.
  4. Sử dụng conditional formatting để nhanh chóng nhận diện thư mục trùng lặp hoặc quá lớn.
  5. Đặt macro VBA vào Personal Macro Workbook nếu bạn cần sử dụng thường xuyên trên nhiều file.

Hy vọng bài viết chi tiết trên sẽ giúp bạn tiết kiệm thời gian, tăng độ chính xác, và nâng cao hiệu suất trong công việc quản lý dữ liệu. Hãy thử áp dụng ngay hôm nay và chia sẻ kinh nghiệm của bạn với đồng nghiệp!

Bài viết được biên soạn dựa trên kinh nghiệm thực tế và các nguồn tài liệu chính thống, cập nhật đến thời điểm 2026.

⚠️
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