Có thể bạn quan tâm: Cách Đưa Excel Vào Cad: Hướng Dẫn Chi Tiết Từ A Đến Z
Mở Đầu
Trong môi trường làm việc hiện đại, việc quản lý dữ liệu cá nhân, đặc biệt là danh sách tên, là một nhiệm vụ thường xuyên gặp phải. Khi nhập dữ liệu vào Excel, chúng ta thường gặp các trường hợp tên đầy đủ được lưu trữ trong một cột duy nhất, ví dụ: “Nguyễn Văn An”, “Trần Thị Minh Hằng”, hay “Lê Hoàng Phúc”. Để thực hiện các công việc phân tích, lọc, hay gửi email cá nhân hoá, việc tách tên đệm (phần giữa của tên) ra thành một cột riêng là rất cần thiết.
Bài viết này sẽ hướng dẫn bạn cách tách tên đệm trong Excel một cách chi tiết, từ các phương pháp cơ bản sử dụng các hàm tích hợp sẵn, tới các kỹ thuật nâng cao hơn như Power Query và VBA. Bạn sẽ học được:
- Nguyên tắc xác định tên đệm trong các mẫu tên tiếng Việt.
- Cách sử dụng hàm LEFT, RIGHT, MID, FIND, SEARCH, LEN, TRIM, SUBSTITUTE để tách tên đệm.
- Kỹ thuật tách tên đệm khi có nhiều hơn một từ đệm.
- Sử dụng Power Query để tách tên đệm nhanh chóng trên tập dữ liệu lớn.
- Viết macro VBA tự động tách tên đệm và lưu kết quả vào các cột mới.
- Các lưu ý, lỗi thường gặp và cách khắc phục.
Sau khi đọc xong, bạn sẽ có một bộ công cụ hoàn chỉnh để xử lý bất kỳ danh sách tên nào trong Excel, dù dữ liệu có phức tạp đến đâu.
Có thể bạn quan tâm: Cách Đóng Băng 1 Dòng Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Hiểu Rõ Cấu Trúc Tên Tiếng Việt
Trước khi bắt tay vào tách tên đệm, chúng ta cần nắm rõ cấu trúc chung của một họ tên tiếng Việt:
Họ Tên Đệm Tên
- Họ: Thông thường là 1 từ, nhưng cũng có trường hợp họ kép (VD: “Đinh Thị”, “Lê Ngọc”). Tuy nhiên trong đa số trường hợp, họ là từ đầu tiên.
- Tên Đệm: Là phần nằm giữa họ và tên, có thể là 1 hoặc nhiều từ (VD: “Văn”, “Thị”, “Thị Thu”, “Ngọc Anh”).
- Tên: Thường là 1 từ, nhưng cũng có thể là 2 từ (VD: “Thị Lan”, “Minh Hằng”). Tuy nhiên trong hầu hết các danh sách, tên là từ cuối cùng.
Ví dụ:
| Họ | Tên Đệm | Tên |
|---|---|---|
| Nguyễn | Văn | An |
| Trần | Thị Minh | Hằng |
| Lê | Hoàng | Phúc |
| Phạm | Thị Thu Hằng | Linh |
1.1. Khi Nào Tên Đệm Có Nhiều Từ?
- Khi họ và tên đều là một từ, phần còn lại (có thể 1, 2, 3… từ) sẽ là tên đệm.
- Khi tên gồm 2 từ (ví dụ “Minh Hằng”), thì tên đệm thường là các từ nằm giữa họ và 2 từ cuối cùng.
- Khi họ có 2 từ (ví dụ “Đặng Thị”), thì tên đệm là các từ nằm sau họ và trước tên.
Vì vậy, để tách tên đệm một cách chính xác, chúng ta cần xác định vị trí của họ và tên trong chuỗi và lấy phần còn lại ở giữa.
Có thể bạn quan tâm: Cách Chỉnh Về 1 Trang Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Phương Pháp Cơ Bản Sử Dụng Hàm Excel
2.1. Giả Định Dữ Liệu Đơn Giản
Giả sử cột A chứa họ tên đầy đủ và chúng ta muốn tách tên đệm vào cột C.
| A (Họ Tên) |
|---|
| Nguyễn Văn An |
| Trần Thị Minh Hằng |
| Lê Hoàng Phúc |
| Phạm Thị Thu Hằng Linh |
Bước 1: Xác Định Vị Trí Họ và Tên
- Vị trí họ: là vị trí của dấu cách đầu tiên.
- Vị trí tên: là vị trí của dấu cách cuối cùng.
Chúng ta sẽ dùng hàm FIND (hoặc SEARCH) để tìm vị trí dấu cách.
=FIND(" ",A2) // vị trí dấu cách đầu tiên
Đối với dấu cách cuối cùng, cách nhanh nhất là dùng LEN + SUBSTITUTE:
=LEN(A2)-LEN(SUBSTITUTE(A2," ","")) // số lượng dấu cách
Sau đó:
=FIND("#",SUBSTITUTE(A2," ","#",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))
Hàm trên sẽ trả về vị trí của dấu cách cuối cùng.
Bước 2: Lấy Tên Đệm
Giả sử:
posFirstSpace = FIND(" ",A2)posLastSpace = FIND("#",SUBSTITUTE(A2," ","#",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))
Tên đệm là phần giữa:
=MID(A2, posFirstSpace + 1, posLastSpace - posFirstSpace - 1)
Công thức tổng hợp (đặt vào C2):
=TRIM(MID(A2, FIND(" ",A2)+1, FIND("#",SUBSTITUTE(A2," ","#",LEN(A2)-LEN(SUBSTITUTE(A2," ","")))) - FIND(" ",A2) - 1))
Giải thích:
FIND(" ",A2)+1→ vị trí ký tự đầu tiên của tên đệm.FIND("#",SUBSTITUTE(...)) - FIND(" ",A2) - 1→ độ dài của tên đệm.TRIMloại bỏ khoảng trắng thừa nếu có.
Kéo công thức xuống các dòng khác, bạn sẽ nhận được kết quả:
| C (Tên Đệm) |
|---|
| Văn |
| Thị Minh |
| Hoàng |
| Thị Thu Hằng |
2.2. Xử Lý Trường Hợp Họ Hai Từ
Nếu danh sách có họ hai từ (VD: “Đinh Thị”), công thức trên sẽ chỉ lấy phần sau dấu cách đầu tiên, dẫn tới lỗi. Để khắc phục, chúng ta cần xác định họ dựa trên một danh sách họ phổ biến hoặc dựa trên quy tắc: họ luôn là từ đầu tiên (đơn giản nhất). Nếu muốn hỗ trợ họ hai từ, chúng ta cần một bảng danh sách họ và dùng VLOOKUP/ XLOOKUP để kiểm tra.
2.2.1. Tạo Bảng Danh Sách Họ
| D (Họ) |
|---|
| Nguyễn |
| Trần |
| Lê |
| Phạm |
| Đinh |
| Đặng |
| … |
Giả sử bảng này nằm ở E2:E100.
2.2.2. Xác Định Họ
=IFERROR(INDEX($E$2:$E$100,MATCH(TRUE,ISNUMBER(SEARCH($E$2:$E$100,A2)),0)),"")
Công thức mảng (nhấn Ctrl+Shift+Enter trong Excel 2026 trở về trước) sẽ trả về họ phù hợp. Khi đã có họ, chúng ta có thể loại bỏ phần họ khỏi chuỗi và áp dụng công thức tách tên đệm như trên.
2.2.3. Công Thức Hoàn Chỉnh
=LET( fullName, A2, lastSpace, FIND("#",SUBSTITUTE(fullName," ","#",LEN(fullName)-LEN(SUBSTITUTE(fullName," ","")))), firstSpace, FIND(" ",fullName), nameMid, MID(fullName, firstSpace+1, lastSpace-firstSpace-1), TRIM(nameMid)
)
Lưu ý: Hàm LET chỉ khả dụng trong Excel 365/2026 trở lên, giúp làm cho công thức ngắn gọn và dễ đọc.
3. Sử Dụng Power Query Để Tách Tên Đệm
Khi dữ liệu lên tới hàng ngàn, hàng chục ngàn dòng, việc dùng công thức trong ô có thể làm file nặng và chậm. Power Query (cũng gọi là Get & Transform) là công cụ mạnh mẽ để xử lý dữ liệu trước khi tải vào bảng tính.
3.1. Bước Chuẩn Bị
- Chọn vùng dữ liệu → Data → From Table/Range.
- Đảm bảo dữ liệu có tiêu đề (ví dụ: FullName).
3.2. Tách Họ, Tên Đệm và Tên

Có thể bạn quan tâm: Cách Đặt Điều Kiện Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Trong Power Query Editor:
- Split Column → By Delimiter → chọn Space → Advanced Options → Split Into → Rows.
Kết quả: mỗi từ trong họ tên sẽ nằm trên một dòng, kèm cột Index để xác định vị trí.
Thêm cột Index (nếu chưa có) để đánh số thứ tự từ trái sang phải:
Add Column → Index Column → From 1.
Tạo cột Họ: giữ lại Index = 1 (hoặc nếu bạn có danh sách họ, dùng Merge Queries để xác định).
Tạo cột Tên: lấy cột cuối cùng (có thể dùng công thức
Table.ColumnCountđể xác định vị trí cuối).Tên Đệm: lấy các cột Index từ 2 tới (LastIndex-1) và nối lại bằng Space:
- Add Column → Custom Column → nhập công thức:
m let totalColumns = Table.ColumnCount(FullName), middleColumns = List.Range(Record.FieldValues(_), 1, totalColumns-2), middleText = Text.Combine(middleColumns, " ") in middleText
Đổi tên các cột thành Surname, MiddleName, GivenName.
Khi hoàn tất, Close & Load → dữ liệu sẽ xuất hiện trong một sheet mới.
3.3. Ưu Điểm Của Power Query
- Hiệu suất: Xử lý hàng triệu bản ghi nhanh hơn.
- Tái sử dụng: Lưu lại các bước, sau này chỉ cần refresh khi dữ liệu thay đổi.
- Linh hoạt: Dễ dàng thêm bước loại bỏ ký tự đặc biệt, chuẩn hoá chữ hoa/thường.
4. Tự Động Hóa Bằng VBA
Nếu bạn thường xuyên phải tách tên đệm và muốn một nút bấm để thực hiện, macro VBA là giải pháp tối ưu.
4.1. Mã VBA Cơ Bản
Sub TachTenDem() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim fullName As String Dim firstSpace As Long, lastSpace As Long Dim middleName As String Set ws = ThisWorkbook.Sheets("Sheet1") ' Thay tên sheet nếu cần lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row For i = 2 To lastRow ' Giả sử tiêu đề ở hàng 1 fullName = Trim(ws.Cells(i, "A").Value) If Len(fullName) > 0 Then firstSpace = InStr(1, fullName, " ") lastSpace = InStrRev(fullName, " ") If firstSpace > 0 And lastSpace > firstSpace Then middleName = Mid(fullName, firstSpace + 1, lastSpace - firstSpace - 1) ws.Cells(i, "C").Value = Trim(middleName) ' Ghi vào cột C Else ws.Cells(i, "C").Value = "" ' Không có tên đệm End If End If Next i MsgBox "Hoàn thành tách tên đệm!", vbInformation
End Sub
- Giải thích:
InStrtìm dấu cách đầu tiên → vị trí họ.InStrRevtìm dấu cách cuối cùng → vị trí tên.Midlấy phần giữa.- Kết quả ghi vào cột C.
4.2. Xử Lý Họ Hai Từ
Nếu muốn hỗ trợ họ hai từ, ta có thể tạo mảng họ và kiểm tra:
Dim hoList As Variant
hoList = Array("Nguyễn", "Trần", "Lê", "Phạm", "Đinh", "Đặng", "Hoàng", "Vũ", "Bùi", "Đỗ") '…thêm tùy ý Function GetHo(fullName As String) As String Dim part As Variant Dim i As Long For i = LBound(hoList) To UBound(hoList) part = Split(fullName, " ") If part(0) = hoList(i) Then GetHo = part(0) Exit Function End If ' Kiểm tra họ hai từ If UBound(part) >= 1 Then If part(0) & " " & part(1) = hoList(i) Then GetHo = part(0) & " " & part(1) Exit Function End If End If Next i GetHo = "" ' Không tìm thấy
End Function
Sau khi có họ, chúng ta loại bỏ nó khỏi chuỗi rồi mới tách tên đệm tương tự như ở trên.
4.3. Gán Macro Vào Nút
- Vào Developer → Insert → Button (Form Control).
- Vẽ nút trên sheet, chọn macro
TachTenDem. - Đặt tên nút “Tách Tên Đệm”.
Giờ chỉ cần nhấn nút, macro sẽ tự động xử lý cả bảng.
5. Các Lưu Ý Và Khắc Phục Lỗi Thường Gặp
5.1. Dữ Liệu Có Khoảng Trắng Thừa
- Vấn đề: Nhiều ô có khoảng trắng ở đầu/cuối hoặc giữa.
- Giải pháp: Dùng
TRIMtrong công thức hoặcText.Trimtrong Power Query để chuẩn hoá.
5.2. Tên Đệm Không Có (Chỉ Có Họ và Tên)
- Kết quả mong muốn: Trả về ô trống hoặc “(Không có)”.
- Công thức: Thêm điều kiện
IF(firstSpace = lastSpace, "", middleName).
5.3. Tên Đệm Gồm Các Ký Tự Đặc Biệt
- Ví dụ: “Nguyễn Văn-Đạt”, “Trần Thị Lê”.
- Cách xử lý: Sử dụng
SUBSTITUTEđể thay thế ký tự không mong muốn trước khi tách.
=SUBSTITUTE(SUBSTITUTE(A2,"-"," "), ""," ")
Sau khi thay thế, thực hiện tách như bình thường.
5.4. Độ Dài Tên Đệm Khác Nhau
Khi tên đệm có 1, 2 hoặc 3 từ, công thức MID vẫn hoạt động vì nó dựa trên vị trí dấu cách đầu và cuối, không phụ thuộc vào số từ.
5.5. Hiệu Năng Khi Dữ Liệu Lớn
- Công thức ô: Tránh dùng hàm mảng phức tạp trên hàng triệu dòng.
- Giải pháp: Dùng Power Query hoặc VBA để thực hiện một lần và ghi kết quả vào sheet mới.
6. Tổng Kết
Việc tách tên đệm trong Excel không chỉ giúp dữ liệu trở nên sạch sẽ, mà còn mở ra nhiều khả năng phân tích và tự động hoá trong công việc. Chúng ta đã:
- Hiểu cấu trúc tên tiếng Việt và xác định vị trí họ, tên, tên đệm.
- Áp dụng các hàm Excel như
FIND,MID,LEN,SUBSTITUTE,TRIMđể tách tên đệm trong các trường hợp đơn giản. - Xử lý phức tạp hơn bằng cách tạo bảng danh sách họ, dùng hàm
LETvà các công thức mảng. - Sử dụng Power Query để tách tên đệm nhanh chóng trên dữ liệu lớn, với các bước chia từ, xác định vị trí và ghép lại.
- Viết macro VBA để tự động hoá quy trình, hỗ trợ họ hai từ và các ký tự đặc biệt.
- Nhận diện và khắc phục các lỗi thường gặp như khoảng trắng thừa, thiếu tên đệm, ký tự đặc biệt và vấn đề hiệu năng.
Khi Nào Nên Chọn Phương Pháp Nào?
| Tình Huống | Phương Pháp Đề Xuất |
|---|---|
| Dữ liệu < 10.000 dòng, cấu trúc đơn giản | Công thức Excel (MID, FIND) |
| Dữ liệu có họ hai từ, cần độ chính xác cao | Công thức kết hợp VLOOKUP/XLOOKUP + MID |
| Hàng chục/nghìn tới hàng trăm/nghìn bản ghi | Power Query |
| Cần tự động hoá thường xuyên, có nút bấm | VBA Macro |
| Dữ liệu không đồng nhất, có ký tự đặc biệt | Kết hợp Power Query + bước làm sạch (Trim, Substitute) |
Hy vọng bài viết đã cung cấp cho bạn bộ công cụ toàn diện để tách tên đệm trong Excel một cách hiệu quả và chuyên nghiệp. Hãy áp dụng vào thực tế, tùy chỉnh cho phù hợp với dữ liệu của mình và chia sẻ kết quả với đồng nghiệp nhé!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
