Nó có thể đã xảy ra với bạn trước đây: bạn lấy dữ liệu cho trang tính của mình và một trong các cột bao gồm tên. Vấn đề duy nhất là, tất cả các tên đều được ghép lại với nhau. Ví dụ: ô chứa “Allen Wyatt,”

nhưng bạn muốn có tên trong một cột, và họ trong cột lân cận ở bên phải. Làm thế nào để bạn tách các tên ra?

Bạn có thể dễ dàng sử dụng tính năng Văn bản thành Cột trong Excel để tách dữ liệu của mình ra. Chỉ cần làm theo các bước sau:

  1. Chọn phạm vi ô bạn muốn tách.

  2. Chọn Văn bản thành Cột từ menu Dữ liệu. Excel khởi động Trình hướng dẫn Chuyển đổi Văn bản thành Cột. (Xem Hình 1.)

  3. Chọn xem văn bản bạn đã chọn có chiều rộng cố định hay được phân cách.

(Trong trường hợp có khoảng trắng giữa họ và tên, văn bản sẽ được phân tách.)

  1. Nhấp vào Tiếp theo.

  2. Chỉ định các dấu phân cách bạn muốn Excel nhận ra. Trong trường hợp tách các tên ra, bạn nên đảm bảo rằng bạn sử dụng dấu cách làm dấu phân cách.

  3. Nhấp vào Kết thúc.

Excel tách các ô trong phạm vi đã chọn của bạn, tách tất cả văn bản ở dấu phân cách bạn đã chỉ định. Tuy nhiên, Excel sử dụng nhiều cột cần thiết để giữ dữ liệu.

Nếu bạn không muốn phân tán dữ liệu của mình hoàn toàn trên các cột, thì bạn sẽ cần sử dụng macro. Ví dụ: nếu một ô chứa “John Davis, Esq.”, Thì việc sử dụng tính năng Văn bản thành Cột sẽ dẫn đến việc dữ liệu được chia thành ba cột: cột đầu tiên chứa “John”, cột thứ hai chứa “Davis” (với dấu phẩy) và dấu phẩy thứ ba chứa “Esq.” Nếu bạn muốn dữ liệu được chia thành hai cột (“John” ở một cột và “Davis, Esq.” Ở cột kia, thì macro sau sẽ hữu ích:

Sub PullApart()

Dim FirstCol As Integer, FirstRow As Integer     Dim RowCount As Integer     Dim ThisRow As Integer     Dim j As Integer, k As Integer     Dim MyText As String

FirstCol = ActiveWindow.RangeSelection.Column     FirstRow = ActiveWindow.RangeSelection.Row     RowCount = ActiveWindow.Selection.Rows.Count

For j = 1 To RowCount         ThisRow = FirstRow + j - 1         MyText = Cells(ThisRow, FirstCol).Text         k = InStr(MyText, " ")

If k > 0 Then             Cells(ThisRow, FirstCol + 1).Value = Mid(MyText, k + 1)

Cells(ThisRow, FirstCol).Value = Left(MyText, k - 1)

End If     Next j End Sub

Macro này kiểm tra từng ô và để mọi thứ vào khoảng trống đầu tiên trong ô đã chọn và di chuyển mọi thứ sau khoảng trắng vào cột sang bên phải. “Gottcha” duy nhất với macro này là để đảm bảo rằng bạn không có gì trong cột bên phải của bất kỳ ô nào bạn chọn khi chạy nó.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng macro được mô tả trên (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 (2967) áp dụng cho Mic rosoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: