Gordon tự hỏi làm thế nào anh ta có thể nhập một tập hợp con của tệp văn bản vào Excel, tùy thuộc vào giá trị của một trường cụ thể. Ví dụ: anh ta có thể chỉ muốn nhập các bản ghi có chứa “y” trong cột 5 của mỗi bản ghi trong tệp văn bản.

Có một số cách bạn có thể tiếp cận nhiệm vụ này. Một là bạn có thể chỉ cần nhập toàn bộ tệp văn bản, sắp xếp các bản ghi và xóa những bản ghi mà bạn không muốn. Đây có lẽ là tùy chọn đơn giản nhất nếu bạn chỉ cần xử lý một tệp duy nhất và toàn bộ tệp có thể nằm gọn trong một trang tính.

Một cách tiếp cận khác là sử dụng macro. (Đây là cách mà tôi thấy nhanh nhất và dễ nhất, đặc biệt nếu bạn cần nhập cùng một loại tệp khá nhiều.) Macro có thể mở tệp văn bản, đọc từng dòng và sau đó xác định xem liệu thông tin trong dòng đó có nên được thêm vào trang tính hay không. Đây là một ví dụ sẽ mở một tệp có tên “MyCSVFile.txt” và sau đó dán dữ liệu vào một trang tính mới bắt đầu từ hàng đầu tiên.

Sub ReadMyFile()

Dim R As Integer     Dim C As Integer     Dim sDelim As String     Dim sRaw As String     Dim ReadArray() As String

sDelim = ","     ' Set to vbTab if tab-delimited file

Worksheets.Add     Open "myCSVFile.txt" For Input As #1     R = 1     Do While Not EOF(1)

Line Input #1, sRaw         ReadArray() = Split(sRaw, sDelim, 20, vbTextCompare)

If ReadArray(4) = "y" Then             For C = 0 To UBound(ReadArray)

Cells(R, C + 1).Value = ReadArray(C)

Next C             R = R + 1         End If     Loop     Close #1 End Sub

Để sử dụng macro, chỉ cần thay đổi tên của tệp để khớp với tệp bạn muốn xử lý. Bạn cũng sẽ muốn sửa đổi biến sDelim để đảm bảo rằng nó khớp với bất cứ thứ gì đang được sử dụng làm dấu phân cách trong bản ghi của bạn. Như đã viết, nó giả định dấu phân cách là một dấu phẩy (nó sẽ có trong tệp CSV), nhưng bạn có thể thay đổi nó thành vbTab nếu bạn thực sự đang làm việc với một tệp được phân tách bằng tab. Sau khi macro hoàn tất, chỉ những bản ghi có một ký tự “y” viết thường mới có trong trang tính mới.

Một cách tiếp cận khác là sử dụng tính năng Power Query của Excel. Đây là một bổ trợ miễn phí của Microsoft, có sẵn cho một số biến thể của Excel 2010 và Excel 2013. Bạn có thể tải xuống (và tìm hiểu những biến thể nào được hỗ trợ) tại vị trí này:

http://www.microsoft.com/en-us/download/details.aspx?id=39379

Nếu bạn đang sử dụng Excel 2016, thì Power Query được tích hợp sẵn trong chương trình.

Nếu bạn đã cài đặt hoặc có sẵn Power Query trong phiên bản Excel của mình và phiên bản Excel đó là Excel 2010 hoặc Excel 2013, hãy làm theo các bước sau:

  1. Hiển thị tab Power Query của ruy-băng.

  2. Nhấp vào Từ tệp | Từ CSV. Excel sẽ hiển thị hộp thoại Duyệt qua các giá trị được phân tách bằng dấu phẩy, trông rất giống hộp thoại Mở tiêu chuẩn.

  3. Định vị và chọn tệp CSV bạn muốn nhập vào Excel.

  4. Nhấp vào Mở. Excel tải dữ liệu trong cửa sổ Power Query với các nút lọc có sẵn cho mỗi trường.

Nếu bạn đang sử dụng Excel 2016 hoặc phiên bản mới hơn, các bước sẽ hơi khác một chút:

  1. Hiển thị tab Dữ liệu của dải băng.

  2. Bấm vào công cụ Truy vấn Mới (Excel 2016) hoặc công cụ Lấy Dữ liệu (các phiên bản Excel mới hơn) trong nhóm Lấy & Chuyển đổi. Excel hiển thị một số tùy chọn.

  3. Nhấp vào Từ tệp | Từ Văn bản / CSV. Excel sẽ hiển thị hộp thoại Nhập Dữ liệu, trông rất giống hộp thoại Mở tiêu chuẩn.

  4. Định vị và chọn tệp CSV bạn muốn nhập vào Excel.

  5. Nhấp vào Mở. Excel tải dữ liệu trong cửa sổ Power Query với các nút lọc có sẵn cho mỗi trường.

Tại thời điểm này – bất kể phiên bản Excel bạn đang sử dụng là gì – bạn có thể sử dụng các điều khiển để chỉ định truy vấn (nghĩa là thiết lập định nghĩa về bản ghi nào sẽ được nhập). Khi bạn bấm Đóng và Tải, các bản ghi được truy xuất từ ​​tệp và có thể lưu truy vấn để sử dụng trong tương lai.

Cách tiếp cận thứ tư là sử dụng Microsoft Query. Để làm như vậy, bạn sẽ cần làm theo một loạt các bước rất dài này. (Không ai từng nói rằng Microsoft muốn làm cho Microsoft Query dễ sử dụng và bạn sẽ đồng ý sau khi thực hiện các bước này.)

  1. Hiển thị tab Dữ liệu của dải băng.

  2. Bấm vào công cụ Lấy Dữ liệu trong nhóm Lấy & Chuyển đổi Dữ liệu, sau đó chọn Từ Nguồn Khác (trong nhóm Lấy Dữ liệu Ngoài phiên bản trước của Excel) rồi chọn Từ Truy vấn của Microsoft. Excel sẽ hiển thị hộp thoại Chọn Nguồn Dữ liệu. (Xem Hình 1.)

  3. Chọn tùy chọn Nguồn dữ liệu mới và nhấp vào OK. Excel sẽ hiển thị hộp thoại Tạo Nguồn Dữ liệu Mới. (Xem Hình 2.)

  4. Cung cấp tên cho nguồn dữ liệu của bạn, chẳng hạn như “Tệp CSV”.

  5. Sử dụng danh sách thả xuống cho mục 2, chọn Microsoft Text Driver.

  6. Nhấp vào Kết nối. Excel sẽ hiển thị hộp thoại Thiết lập Văn bản ODBC.

  7. Nhấp ngay vào OK để đóng hộp thoại.

  8. Bấm OK để đóng hộp thoại Tạo Nguồn Dữ liệu Mới. Excel cập nhật hộp thoại Chọn Nguồn Dữ liệu để bao gồm tên bạn đã chỉ định trong bước 4.

  9. Chọn nguồn dữ liệu bạn vừa tạo và sau đó nhấp vào OK. Excel hiển thị cảnh báo rằng không có bảng dữ liệu nào trong nguồn. (Được rồi; bạn chưa định nghĩa gì cả.)

  10. Bấm OK để loại bỏ cảnh báo. Excel sẽ hiển thị hộp thoại Trình hướng dẫn truy vấn.

  11. Vì bạn không thể làm bất cứ điều gì với hộp thoại Trình hướng dẫn truy vấn trống, hãy nhấp vào Hủy. Excel hiển thị một cảnh báo hỏi bạn có muốn ở lại Truy vấn của Microsoft hay không.

  12. Nhấp vào Có. Excel sẽ hiển thị hộp thoại Thêm bảng.

  13. Sử dụng các điều khiển trong hộp thoại, định vị và chọn tệp CSV của bạn.

  14. Nhấp vào nút Thêm. Excel trông có vẻ như nó không làm gì cả, nhưng nó thực sự đã thêm tham chiếu vào tệp CSV.

  15. Bấm vào nút Đóng để loại bỏ hộp thoại Thêm bảng. Tệp CSV của bạn được hiển thị trong cửa sổ Truy vấn của Microsoft.

  16. Sử dụng danh sách các trường cho tệp CSV, kéo từng trường bạn muốn nhập vào trang tính vào vùng dưới cùng của cửa sổ Truy vấn Microsoft. (Nếu bạn muốn có tất cả các trường, chỉ cần kéo dấu hoa thị vào vùng dưới cùng của cửa sổ.)

  17. Nhấp vào Tiêu chí | Thêm tiêu chí. Excel sẽ hiển thị hộp thoại Thêm tiêu chí. (Xem Hình 3.)

  18. Sử dụng các điều khiển trong hộp thoại, chỉ định rằng bạn muốn trường 5 (bất kể tên của nó là gì) bằng “y”.

  19. Nhấp vào nút Thêm để thực sự thêm tiêu chí vào truy vấn.

  20. Bấm Đóng để loại bỏ hộp thoại Thêm Tiêu chí.

  21. Nhấp vào Tệp | Trả lại dữ liệu cho Microsoft Excel. Excel sẽ hiển thị hộp thoại Nhập dữ liệu. (Xem Hình 4.)

  22. Thay đổi cài đặt trong hộp thoại, như mong muốn, để cho biết cách bạn muốn dữ liệu CSV được trả về Excel.

  23. Bấm OK.

(Đã nói với bạn các bước khá dài.) Giờ đây, bạn có thể làm việc với dữ liệu trong Excel và nếu muốn, hãy sử dụng các công cụ trên tab Thiết kế của ruy-băng để làm mới dữ liệu từ tệp CSV.

_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 (10384) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.