Kiến Thức Excel Hướng dẫn tách Tên, Họ và Tên Đệm trong Excel

Hướng dẫn tách Tên, Họ và Tên Đệm trong Excel

Để tách Họ, Tên Đệm, Tên trong Excel. Ta có thể sử dụng 2 cách tốt nhất như sau sau:

  • Cách 1: Sử dung tính năng Flash Fill (Ctrl + E) – Nhanh chóng và dễ dàng nhưng có trường hợp tách không đúng.
  • Cách 2: Sử dụng hàm công thức – Phức tạp nhưng chuẩn và chính xác.

Dưới đây là hướng dẫn chi tiết các cách:

eyeXem ngay File mẫu kèm công thức tách tên

Cách 1: Sử dụng tính năng Flash Fill (Ctrl + E)

Với các trường hợp tên đơn giản và có cấu trúc đồng nhất. Ví dụ như tất cả danh sách tên đều gồm 3 chữ cái thì ta có thể sử dụng tính năng Flash Fill để tự động điền theo mẫu một cách nhanh chóng.

Giả sử với bảng dữ liệu về danh sách tên mẫu sau:

Bảng dữ liệu mẫu để tách họ, tên, tên đệm

Để sử dụng tính năng Flash Fill ta sẽ làm như sau:

Bước 1: Ta sẽ tạo thêm 3 cột Họ, Tên đệm, và Tên bên cạnh cột Họ và Tên đầy đủ. Ví dụ ở đây cột họ và tên đầy đủ là cột A thì ta sẽ tạo cột Họ (ở cột B), cột Tên đệm (ở cột C) và cột Tên (ở cột D).

tạo các cột phụ để sử dụng flash fill tách họ và tên

Bước 2: Tiến hành nhập thủ công hàng đầu tiên lần lượt vào các cột Họ, Tên Đệm, và Tên theo giá trị mong muốn. Ví dụ ô A2 chứa “Nguyễn Thu Hà” thì ta nhập cột Họ (ô B2 là “Nguyễn“), cột Tên đệm (ô C2 là “Ngân“), cột Tên (ô D2 là ““).

nhập mẫu để sử dụng flash fill tách họ và tên

Bước 3: Lần lượt chọn ô Họ, Tên đệm, và Tên đã nhập mẫu rồi bấm Ctrl + E để kích hoạt Flash Fill tự động điền dữ liệu cho cột theo dữ liệu nhận diện. Ví dụ ở đây:

  • Vào B2 -> bấm Ctrl + E để tự động điền Họ.
  • Vào C2 -> bấm Ctrl + E để tự đông điền cột Tên đệm.
  • Vào D2 -> bấm Ctrl + E để tự động điền cột Tên.
Sử dụng flash fill để tách họ và tên
Nhấp từng ô rồi bấm Ctrl + E

Đến đây là ta đã có kết quả tách được Họ và Tên giống nhau. Tuy nhiên rõ ràng có thể thấy rằng tính năng Flash Fill này có nhược điểm là các tên đầu vào phải có cấu trúc giống nhau thì cho kết quả mới chuẩn được. Nếu tên đầu vào khác nhau ví dụ như tên mẫu là “Nguyễn Ngân Hà” nhưng tên dưới cần tách lại là “Huỳnh Phạm Thuyền Quyên” thì kết quả tách với Flash Fill sẽ cho ra kết quả sai. Để tách chuẩn và đúng thì ta nên sử dụng công thức ở cách số 2.

ví dụ về nhược điểm của Flash Fill để tách tên

Cách 2: Sử dụng hàm và công thức để tách tên

Để chuẩn nhất ta nên sử dụng các hàm để tách Họ/Tên Đệm/Tên trong Excel. Vì cấu trúc tên của người trong thực tế rất phức tạp và dài ngắn khác nhau.

1. Công thức tách tên áp dụng cho mọi phiên bản Excel

Tiếp tục sử dụng bảng dữ liệu ban đầu trong cách 1:

Bảng dữ liệu mẫu để tách họ, tên, tên đệm

Ta có ô A2 chứa “Họ và tên” đầy đủ, giờ ta muốn tách các thành phần Họ/Tên đệm/Tên sẽ sử dụng công thức sau:

a, Công thức tách Họ:

Ta tạo cột họ ở cột B và nhập công thức trên vào ô B2:

=LEFT(TRIM(A2), FIND(" ", TRIM(A2) & " ") - 1)

Trong đó:

  • TRIM(A2) giúp chuẩn bỏ khoảng trắng thừa giữa các từ và ở đầu/cuối ô A2. (Ví dụ: TRIM("   Phạm Văn Nam  ") sẽ trả về “Phạm Văn Nam“)
  • TRIM(A2) & " " để cộng thêm một dấu cách ở cuối để đảm bảo luôn có dấu cách cho hàm FIND tìm được (kể cả khi họ tên chỉ có 1 từ).
  • FIND(" ", TRIM(A2) & " ") dùng để tìm vị trí dấu cách đầu tiên (ngay sau Họ).
  • LEFT(TRIM(A2), ... - 1) dùng để lấy từ ký tự thứ 1 đến ngay trước dấu cách đầu tiên.

Sau đó, kéo công thức ở B2 để áp dụng cho cả cột Họ là có thể tách phần Họ trong tên:

công thức tách họ trong Excel

b, Công thức tách Tên:

Để tách phần Tên, ta tạo cột Tên (cột D) và nhập công thức sau vào ô D2:

=TRIM(RIGHT(SUBSTITUTE(TRIM(A2), " ", REPT(" ", 99)), 99))

Trong đó:

  • TRIM(A2) dùng để loại bỏ khoảng trắng thừa ở đầu và cuối ô A2.
  • SUBSTITUTE(TRIM(A2), " ", REPT(" ", 99)) dùng để biễn mỗi dấu cách được thay bằng 99 khoảng trắng => mục đích là để từ cuối cùng (phần Tên) đẩy sát về cuối chuỗi.
  • RIGHT(..., 99) dùng để lấy 99 ký tự cuối của chuỗi đã “đệm”. Do từ cuối đã được đẩy về sát cuối nên đoạn lấy 99 ký tự này chứa trọn Tên + một đống khoảng trắng.
  • TRIM(...) ngoài cùng dùng để loại bỏ khoảng trắng nên chỉ còn lại phần Tên.

Kéo và áp dụng công thức trong ô D2 cho cả cột D ta sẽ có được phần Tên được tách ra:

công thức tách tên trong Excel

c, Công thức tách Tên Đệm:

Sau khi ta đã tách được Họ và Tên:

  • B2 = Họ.
  • D2 = Tên.

Để tách phần Tên đệm, ta tạo cột C (tên đệm) và nhập công thức sau vào ô C2:

=IF(LEN(TRIM(A2)) - LEN(B2) - LEN(D2) = 0, "",
TRIM(MID(TRIM(A2), LEN(B2) + 1, LEN(TRIM(A2)) - LEN(B2) - LEN(D2))))

Trong công thức trên, Tên đệm chính là phần chuỗi sau khi cắt bỏ Họ ở đầu trừ Tên ở cuối.

Trong đó:

  • LEN(TRIM(A2)) dùng để đo độ dài chuỗi họ và tên trong A2 sau khi đã loại bỏ khoảng trắng thừa.
  • LEN(B2)LEN(D2) dùng để đo độ dài của Họ và Tên.
  • LEN(TRIM(A2)) - LEN(B2) - LEN(D2) dùng để tính số ký tự còn lại sau khi đã bỏ đi số ký tự ở Họ + Tên.
  • MID(TRIM(A2), LEN(B2) + 1, LEN(TRIM(A2)) - LEN(B2) - LEN(D2)) dùng để cắt từ sau Họ (vị trí LEN(B2)+1) với độ dài chính là phần còn lại (tức Tên đệm + các khoảng trắng trước/sau nó).
  • TRIM(...) bọc thêm để loại bỏ khoảng trắng dư ở đầu/cuối để chỉ còn phần Tên Đệm.

Sau đó, ta áp dụng và kéo công thức ở C2 cho toàn bộ cột C để điền phần Tên Đệm:

công thức tách phần Tên Đệm trong Excel

2. Công thức tách tên áp dụng cho Excel 365

Với các phiên bản Excel 365 trở lên, ta có thể sử dụng công thức ngắn gọn hơn với hàm LET, TEXTSPLIT, và INDEX để tách Họ/Tên Đệm/Tên nhanh chóng:

Vẫn sử dụng bảng dữ liệu họ và tên ban đầu:

Bảng dữ liệu mẫu để tách họ, tên, tên đệm

a, Công thức tách Họ:

Ta tạo cột Họ ở cột B, nhập công thức sau vào ô B2:

=LET(n, TEXTSPLIT(TRIM(A2), " ", , TRUE), INDEX(n, 1))

Công thức trên sẽ chuỗi họ tên ở A2 thành các “từ” rồi lấy từ đầu tiên. Trong đó:

  • TRIM(A2) → giúp loại bỏ khoảng trắng ở chuỗi họ và tên trong A2 (xóa thừa giữa/đầu/cuối).
  • TEXTSPLIT(TRIM(A2), " ", , TRUE) dùng để:
    • Tách theo dấu cách " "
    • Tham số thứ 4 = TRUE (ignore_empty) → bỏ qua ô trống phát sinh do nhiều khoảng trắng liên tiếp.
    • Kết quả là mảng ngang các từ, ví dụ: {"Nguyễn","Ngân","Hà"}
  • LET(n, …) → đặt tên mảng tách được là n, giúp công thức gọn và chỉ tính một lần.
  • INDEX(n, 1) → lấy phần tử thứ 1 của mảng n → chính là Họ.

Ta kéo công thức ở ô B2 cho toàn bộ cột B để điền dữ liệu cột Họ:

công thức tách họ cho excel 365

b, Công thức tách Tên:

Ta tạo cột Tên ở cột D, điền vào ô D2 công thức sau:

=LET(n, TEXTSPLIT(TRIM(A2), " ", , TRUE), INDEX(n, , COLUMNS(n)))

Công thức trên sẽ giúp tách phần họ và tên trong A2 thành mảng n và lấy từ cuối cùng trong mảng. Cụ thể:

  • Vẫn n = TEXTSPLIT(TRIM(A2), " ", , TRUE) như công thức tách Họ.
  • COLUMNS(n) → đếm bao nhiêu cột (bao nhiêu từ) trong mảng n.
  • INDEX(n, , COLUMNS(n)) → lấy cột thứ COLUMNS(n) (tức là phần tử cuối).

Kéo công thức ở D2 cho toàn bộ cột Tên ở cột D ta được:

công thức tách Tên cho Excel 365

c, Công thức tách tên đệm:

Ta tạo cột C làm cột Tên Đệm, nhập vào ô C2 công thức sau:

=LET(
n, TEXTSPLIT(TRIM(A2), " ", , TRUE),
c, COLUMNS(n),
IF(c<=2, "",
TEXTJOIN(" ",,
INDEX(n,, SEQUENCE(1, c-2, 2, 1))
)
)
)

Công thức trên sẽ ghép các từ ở giữa (từ thứ 2 đến trước từ cuối) trong mảng n để lấy phần Tên Đệm. Cụ thể:

 

  • n = mảng các từ; c = COLUMNS(n) = số từ.
  • IF(c<=2, "", …) dùng để xét điều kiện nếu chỉ có 1 từ (ví dụ Lý) hoặc 2 từ (ví dụ Trần An) → không có tên đệm, trả về rỗng.
  • SEQUENCE(1, c-2, 2, 1) tạo dãy vị trí cột bắt đầu từ 2 đến c-1 (vì c-2 phần tử, bước 1).
    • Ví dụ:
    • Nguyễn Ngân Hàc=3SEQUENCE(1,1,2,1) = {2}
    • Võ Nguyễn Hoài Linh c=4 {2,3} (tức vị trí “Nguyễn”, “Hoài”)
  • INDEX(n,, SEQUENCE(...)) → lấy các phần tử giữa theo chỉ số vừa tạo.
  • TEXTJOIN(" ",, …) → nối các phần tử giữa bằng khoảng trắng.

Áp dụng và kéo công thức trong C2 cho toàn bộ cột C để điền dữ liệu cột Tên Đệm:

công thức tách Tên Đệm cho Excel 365

Trên đây là hướng dẫn chi tiết cách tách Họ, Tên Đệm, Tên trong Excel theo 2 cách: Sử dụng Flash Fill (nhanh và đơn giản), sử dụng công thức với các hàm (chính xác và xử lý được các trường hợp phức tạp).