Hướng Dẫn Chuyển 1 Cột Thành Nhiều Cột Trong Excel: Từ Cơ Bản Tới Nâng Cao

Giới thiệu chung

Trong công việc quản lý dữ liệu, chúng ta thường gặp tình huống cần phân tách một cột dữ liệu lớn thành nhiều cột nhỏ hơn. Ví dụ, một cột chứa tên đầy đủ có thể cần tách thành cột tên, tên đệm và họ; hoặc một cột chứa địa chỉ có thể cần chia thành thành phố, tỉnh, địa chỉ chi tiết. Việc chuyển đổi này giúp cho dữ liệu trở nên rõ ràng, dễ phân tích và khai thác hơn.

Mặc dù Excel cung cấp nhiều phương pháp thực hiện việc chuyển cột thành nhiều cột, nhưng nhiều người vẫn chưa biết cách.Syntax kết hợp giữa công thức, tính năng “Text to Columns”, Power Query, và thậm chí VBA để đạt được mục tiêu một cách nhanh chóng và chính xác. Bài viết này sẽ hướng dẫn chi tiết từng phương pháp, từ những retaining cơ bản nhất tới những kỹ thuật nâng cao, giúp bạn linh hoạt lựa chọn công cụ phù hợp với nhu cầu thực tế.

1. Công cụ “Text to Columns” – Giải pháp nhanh nhất, dễ sử dụng

1.1 Khi nào nên dùng “Text to Columns”?

  • Dữ liệu trong cột được phân cách bởi ký tự cố định (dấu phẩy, dấu chấm phẩy, dấu cách, dấu tab, v.v.).
  • Bạn chỉ cần tách dữ liệu một lần, không cần tự động cập nhật khi dữ liệu thay đổi.
  • Mức độ phức tạp của dữ liệu découvrez là vừa phải.

1.2 Các bước thực hiện

BướcMô tả
1Chọn cột cần tách, hoặc phạm vi dữ liệu.
2Vào menu Data → Text to Columns.
3Chọn Delimited nếu dữ liệu có ký tự phân cách, hoặc Fixed width nếu dữ liệu có độ rộng cột cố định.
4Nhấn Next.
5Chọn ký tự phân cách (ví dụ: ,, ;, Tab, Space), hoặc nhập ký tự tùy chỉnh.
6Nhấn Next.
7Chọn kiểu dữ liệu cột (General, Text, Date, Do not import).
8Nhấn Finish.

1.3 Mẹo thực tế

  • Bảo vệ dữ liệu gốc: Trước khi thực hiện, sao chép cột gốc vào một sheet khác để tránh mất dữ liệu.
  • Sử dụng “Preview”: Trước khi nhấn Finish, xem trước kết quả để tránh lỗi phân tách.
  • Định dạng dữ liệu: Nếu dữ liệu cần được giữ nguyên định dạng (ví dụ, số điện thoại), chọn Text trong bước 7.

2. Công thức TEXTSPLIT (Excel 365 & 2026) – Đơn giản, linh hoạt

2.1 Giới thiệu về TEXTSPLIT

TEXTSPLIT là một hàm mới trong Excel 365/2026, cho phép bạn chia một chuỗi thành một mảng nhiều phần tử dựa trên dấu phân cách. Định dạng:

=TEXTSPLIT(text, col_delimiter, row_delimiter, ignore_empty, match_mode, pad_with)

Trong đó:
– text: Chuỗi cần tách.
– col_delimiter: Ký tự phân cách cột.
– row_delimiter: Ký tự phân cách hàng (có thể bỏ qua nếu không cần).
– ignore_empty: Đặt TRUE để bỏ qua các phần tử rỗng.
– match_mode: Kiểu so sánh (0: chính xác, -1: trùng lắp).
– pad_with: Giá trị để điền vào ô trống.

2.2 Ví dụ thực tiễn

sources: 1. Tách tên đầy đủ thành họ, tên.

A1: "Nguyễn Văn A"

Công thức:

=TEXTSPLIT(A1, " ")

Kết quả: Ba cột – “Nguyễn”, “Văn”, “A”.

  1. Tách địa chỉ thành thành phố, tỉnh, chi tiết.
B1: "Hà Nội, Hà Nam, 123 Đường ABC"

Công thức:

=TEXTSPLIT(B1, ", ", , TRUE)

Kết quả: Ba cột – “Hà Nội”, “Hà Nam”, “123 Đường ABC”.

2.3 Ưu điểm và hạn chế

  • Ưu điểm: Không cần chuyển đổi dữ liệu qua các bước thủ công, dễ dàng kết hợp với các hàm khác.
  • Hạn chế: Chỉ có sẵn trong phiên bản Excel mới; nếu sử dụng cũ, cần dùng phương pháp khác.

3. Công thức mảng nhị phân (ARRAYFORMULA) – Phù hợp cho Excel không hỗ trợ TEXTSPLIT

Chuyển 1 Cột Thành Nhiều Cột Trong Excel
Chuyển 1 Cột Thành Nhiều Cột Trong Excel

3.1 Sử dụng FIND, MID, LEN, SUBSTITUTE

Khi Excel không có TEXTSPLIT, bạn có thể dùng công thức mảng để tách dữ liệu. Ví dụ: tách chuỗi “A,B,C,D” thành 4 cột.

“width: 100%|
=TRIM(MID(SUBSTITUTE($A1,”,”,REPT(” “,LEN($A1))), (COLUMN(A:A)-1)LEN($A1)+1, LEN($A1)))


Công thức này:
- `SUBSTITUTE` thay dấu phẩy bằng một dãy khoảng trắng dài.
- `MID` trích xuất từng phần tử.
- `TRIM` loại bỏ khoảng trắng thừa.
- `COLUMN(A:A)` tạo ra một dãy số 1,2,3,... để xác định vị trí cột. ### 3.2 Mở rộng cho nhiều ký tự phân asal Nếu ký tự phân cách là “;” hoặc “|”, thay dấu phẩy trong công thức bằng ký tự mong muốn. ### 3.3 Lưu ý - Công thức này làm mảng nên cần nhấn `Ctrl+Shift+Enter` (trước khi Excel 365) để xác nhận.
- Khi có nhiều dữ liệu, công thức có thể làm chậm Excel; nên copy giá trị ra cột mới và dán lại dưới dạng giá trị. ## 4. Power Query – Phương pháp tối ưu cho dữ liệu lớn và phức tạp ### 4.1 Power Query là gì? Power Query là một công cụ trong Excel cho phép xuất nhập, biến đổi dữ liệu một cách mạnh mẽ và trực quan. Với Power Query, bạn có thể tách cột, chuyển đổi dữ liệu, ghép dữ liệu, và nhiều thao tác phức tạp mà không cần viết mã. ### 4.2 Các bước thực hiện | Bước | Mô tả |
|------|-------|
| 1 | Chọn dữ liệu → қур `Data` → `From Table/Range`. |
| 2 | Trong cửa sổ Power Query Editor, chọn cột cần tách. |
| 3 | Vào tab `Transform` → `Split Column` → `By Delimiter`. |
| 4 | Chọn ký tự phân cách, tùy chọn `Split into Columns` hoặc `Split into Rows`. |
| 5 | Nhấn `OK`. |
| 6 | Khi hoàn tất, nhấn `Close & Load` để đưa dữ liệu trở lại Excel. | ### 4.3 Ưu điểm - Tự động cập nhật: Khi dữ liệu gốc thay đổi, bạn chỉ cần click `Refresh`.
- Xử lý dữ liệu lớn: Hiệu suất cao hơn so với công thức mảng.
- Tích hợp tính năng nâng cao: Tìm kiếm, lọc, nhóm, pivot, v.v. ### 4.4 Các lưu ý khi dùng Power Query - Định dạng dữ liệu: Power Query thường giữ nguyên kiểu dữ liệu, nhưng nếu muốn chuyển đổi kiểu, bạn cần chọn `Data Type`.
- Định dạng Excel: Khi lưu dữ liệu từ Power Query, bạn phải lưu dưới dạng bảng (Table). Điều này giúp giữ tính năng tự động cập nhật. ## 5. VBA – Tự động hoá quy trình tách cộtgreens ### 5.1 Khi nào nên dùng VBA? - Quy trình lặp đi lặp lại: Bạn cần thực hiện tách cột nhiều lần trên các file khác nhau.
- Tùy biến cao: Bạn muốn kiểm soát chi tiết hơn (ví dụ: tách thành cột tùy theo nội dung riêng biệt).
- Tích hợp vào workflow: Khi kết hợp với macro khác, hoặc khi xuất dữ liệu tự động. ### 5.2 Mẫu macro cơ bản ```vb
Sub SplitColumnIntoMultiple() Dim ws As Worksheet Dim txt As String Dim arr() As String Dim i As Long Set ws = ThisWorkbook.Sheets("Sheet1") ' Giả sử dữ liệu ở cột A, bắt đầu từ A2 For i = 2 To ws.Cells(ws.Rows.Count, "A").End(xlUp).Row txt = ws.Cells(i, "A").Value arr = Split(txt, ",") ' Thay "," bằng ký tự phân cách mong muốn ' Ghi vào các cột B, C, D,... Dim j As Long For j = LBound(arr) To UBound(arr) ws.Cells(i, j + 2).Value = Trim(arr(j)) Next j Next i
End Sub
  • Giải thích:
  • Split là hàm nhúng trong VBA để tách chuỗi.
  • Mảng arr lưu các phần tử sau khi tách.
  • Vòng lặp For ghi dữ liệu vào các cột tiếp theo.

5.3 Mở rộng macro

Bạn có thể:
– Điều chỉnh ký tự phân cách: Sử dụng biến delimiter.
– Định dạng dữ liệu: Chèn dữ liệu vào cột mới và áp dụng định dạng.
– Tự động tạo sheet: Tạo sheet mới cho dữ liệu đã tách.

5.4 Lưu ý khi dùng VBA

  • Bảo mật: Macro Excel có thể bị chặn bởi cài đặt bảo mật. Hãy bật macro hoặc điều chỉnh cài đặt.
  • Kiểm tra lỗi: Thêm On Error Resume Next và kiểm tra lỗi để tránh macro bị dừng đột ngột.

6. Kỹ thuật nâng cao: Tách dữ liệu phức tạp với biểu thức tùy chỉnh

6.1 Tách dữ liệu có số lần xuất hiện thay đổi

Ví dụ: cột chứa chuỗi “A-B-C” hoặc “A-B” hoặc “A”. Để tách, bạn có thể kết hợp LEN, SUBSTITUTE, FIND.

Function SplitByDash(cell As Range) As Variant Dim txt As String txt = cell.Value Dim arr() As String arr = Split(txt, "-") SplitByDash = arr
End Function

Sau đó, trong Excel, bạn có thể dùng =INDEX(SplitByDash(A1),1) để lấy phần tử đầu tiên, =INDEX(SplitByDash(A1),2) để lấy phần tử thứ hai, v.v.

6.2 Tách dữ liệu theo mẫu (Regex)

Nếu Excel hỗ trợ regex (hoặc qua VBA), bạn có thể viết macro tách dữ liệu theo mẫu phức tạp.

Function RegexSplit(text As String, pattern As String) As Variant Dim re As Object Set re = CreateObject("VBScript.RegExp") re.Global = True re.Pattern = pattern Dim matches As Object Set matches = re.Execute(text) Dim arr() As String ReDim arr(matches.Count - 1) Dim i As Integer For i = 0 To matches.Count - 1 arr(i) = matches(i).Value Next i RegexSplit = arr
End Function
ತ್ಯ``` Ví dụ: `=RegexSplit(A1, "A-Za-z0-9+")` sẽ tách toàn bộ từ có chứa ký tự chữ và số. ## 7. Thực hành: Tách dữ liệu thực tế ### 7.1 Dữ liệu mẫu | ID | FullName | Address | Phone |
|----|----------|---------|-------|
| 1 | Nguyễn Văn A | Hà Nội, Hà Nam, ეჟ 123 Đường ABC | 0123-456-789 |
| 2 | Trần Thị B | TP. Hồ Chí Minh, 456 Đường XYZ | 0987-654-321 | ### <Employee> Bước 1: Tách FullName thành Họ, Tên đệm, Tên Sử dụng “Text to Columns”:
1. Chọn cột `FullName`.
2. Text to Columns → Delimited → Space → Finish. Kết quả: Ba cột `Họ`, `Tên đệm`, `Tên`. ### 7.2 Bước 2: Tách Address thành Thành phố, Tỉnh, Chi tiết Sử dụng Power Query:
1. Chọn cột `Address` → Data → From Table/Range.
2 avanço. Trong Power Query, Split Column → By Delimiter → `,` → Split into Columns.
3. Đặt lại tên cột: `Thành phố`, `Tỉnh`, `Chi tiết`.
4. Close & Load. ### 7.3 Bước 3: Tách Phone thành Mã vùng, Số điện thoại Sử dụng công thức:
```excel
=LEFT(A2,FIND("-",A2)-1) // Mã vùng
=MID(A2,FIND("-",A2)+1,LEN(A2)-FIND("-",A2)) // Số điện thoại

Nếu có nhiều_ctrl dấu -, bạn có thể dùng TEXTSPLIT.

8. So sánh các phương pháp

Phương phápKhi nào nên dùngƯu điểmHạn chế
Text to ColumnsDữ liệu cố định, nhanh chóngDễ dùng, không cần công thứcKhông tự động cập nhật
TEXTSPLITExcel 365/2026Đơn giản, linh hoạtHạn chế phiên bản
Công thức mảngExcel cũTự động, nhanhCó thể làm chậm
Power QueryDữ liệu lớn, phức tạpTự động, mạnh mẽCần học kỹ thuật
VBAQuá trình lặp, tùy biếnTự động hoá, linh hoạtCần lập trình
RegexMẫu phức tạpTính chính xác caoCần viết macro

9. Lời khuyên tổng quát

  • Bảo vệ dữ liệu: Luôn sao lưu trước khi thao tác.
  • Kiểm tra dữ liệu: Sau khi tách, kiểm tra xem có dữ liệu lỗi, trống không.
  • Tự động hóaTrees: Nếu tách thường xuyên, cân nhắc dùng Power Query hoặc తీవ VBA.
  • Sử dụng công cụ phù hợp: Đừng áp dụng Power Query cho dữ liệu rất nhỏ; không cần thiết.

10. Kết luận

Việc chuyển một cột thành nhiều cột trong Excel khôngcriminator là một kỹ năng cơ bản nhưng vô cùng quan trọng. Bằng cách hiểu rõ các phương pháp khác nhau – từ “Text to Columns” đơn giản, TEXTSPLIT hiện đại, công thức mảng, Power Query mạnh mẽ, cho tới VBA linh hoạt – bạn có thể chọn công cụ phù hợp nhất với dữ liệu và quy trình làm việc của mìnhбон. Hãy thử áp dụng từng bước trong bài viết trên, điều chỉnh cho phù hợp với dữ liệu thực tế của bạn, và bạn sẽ thấy công việc quản lý dữ liệu trở nên nhanh chóng, chính xác và hiệu quả hơn rất nhiều.

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