Hàm lấy ký tự trong Excel: LEFT, RIGHT, MID, tách họ tên

Cách dùng hàm LEFT, RIGHT, MID, LEN, FIND để lấy ký tự bên trái, bên phải, ở giữa, tách họ và tên từ họ tên đầy đủ, lấy mã, kèm TEXTBEFORE, TEXTAFTER.

Khi cần cắt một phần chuỗi, ví dụ lấy mã tỉnh từ mã nhân viên, lấy tên để sắp xếp danh sách, bạn dùng LEFT (lấy từ trái), RIGHT (lấy từ phải) và MID (lấy ở giữa). Nếu vị trí cắt thay đổi theo từng ô, kết hợp thêm LEN (độ dài) và FIND/SEARCH (tìm vị trí ký tự).

Cú pháp các hàm

=LEFT(text, [num_chars])
=RIGHT(text, [num_chars])
=MID(text, start_num, num_chars)
=LEN(text)
=FIND(find_text, within_text, [start_num])
=SEARCH(find_text, within_text, [start_num])
HàmCông dụngVí dụ với A2 = “HN-2026-0158”
LEFTLấy n ký tự bên trái=LEFT(A2,2) → HN
RIGHTLấy n ký tự bên phải=RIGHT(A2,4) → 0158
MIDLấy n ký tự từ vị trí bắt đầu=MID(A2,4,4) → 2026
LENĐếm số ký tự (kể cả dấu cách)=LEN(A2) → 12
FINDVị trí ký tự, phân biệt hoa thường=FIND("-",A2) → 3
SEARCHNhư FIND nhưng không phân biệt hoa thường, cho phép * ?=SEARCH("n",A2) → 2

Máy đặt vùng Việt Nam dùng ;: =LEFT(A2;2).

Lấy mã có độ dài thay đổi

Mã như “HN-2026-0158”, “DNG-2026-07” có phần đầu dài ngắn khác nhau. Lấy phần trước dấu gạch đầu tiên:

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

Lấy phần sau dấu gạch cuối cùng (số thứ tự):

=RIGHT(A2, LEN(A2)-FIND("#", SUBSTITUTE(A2, "-", "#", LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))))

Công thức này thay dấu gạch cuối bằng ký tự # để FIND tìm được. Nếu bạn dùng Microsoft 365, cách dưới đây đơn giản hơn nhiều.

Tách họ, tên đệm và tên

Ô A2 chứa “Nguyễn Thị Thu Hà”.

Lấy họ (từ đầu tiên)

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

→ Nguyễn

Lấy tên (từ cuối cùng)

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

→ Hà. Mẹo: thay mỗi dấu cách bằng 100 dấu cách, lấy 100 ký tự cuối rồi TRIM bỏ khoảng trắng thừa. Công thức đúng với tên có độ dài bất kỳ.

Lấy họ và tên đệm (bỏ tên)

=TRIM(LEFT(A2, LEN(A2)-LEN(C2)))

với C2 là ô tên vừa tách. Trước khi tách, nên chạy =TRIM(A2) để bỏ dấu cách thừa, nếu không công thức có thể lấy nhầm. Sau khi tách tên, bạn có thể sắp xếp danh sách theo tên ABC.

TEXTBEFORE, TEXTAFTER trên Microsoft 365

Excel trong Microsoft 365 (và Excel trên web) có hai hàm giúp việc tách chuỗi gọn hơn rất nhiều:

=TEXTBEFORE(A2, " ")        → Nguyễn (họ)
=TEXTAFTER(A2, " ", -1)     → Hà (tên, -1 nghĩa là dấu cách cuối cùng)
=TEXTBEFORE(A2, " ", -1)    → Nguyễn Thị Thu (họ và tên đệm)
=TEXTAFTER(A2, "-", -1)     → 0158 (với mã HN-2026-0158)

Hàm TEXTSPLIT(A2, " ") còn tách cả họ tên ra nhiều cột một lúc. Gửi file cho người dùng Excel 2016/2019 thì các ô này sẽ báo #NAME?, nên cân nhắc trước.

Lỗi và lưu ý

  • Kết quả là văn bản: =RIGHT(A2,4) trả về “0158” dạng chữ, không cộng trừ được. Bọc VALUE() hoặc nhân với 1 nếu cần số, xem hàm TEXT, VALUE.
  • #VALUE! với FIND: ô không chứa ký tự cần tìm, ví dụ họ tên chỉ có một từ. Bọc IFERROR.
  • LEN đếm sai với tiếng Việt: văn bản dùng Unicode tổ hợp (dấu tách rời chữ cái) làm LEN đếm nhiều hơn số chữ nhìn thấy, MID cắt có thể rơi mất dấu. Chuyển văn bản về Unicode dựng sẵn, xem lỗi font tiếng Việt.
MẹoChỉ tách một lần, không cần công thức: gõ mẫu kết quả cho 1–2 dòng đầu rồi nhấn Ctrl + E (Flash Fill), Excel tự điền phần còn lại. Hoặc dùng Data → Text to Columns để tách theo dấu cách.

Google Sheets

LEFT, RIGHT, MID, LEN, FIND, SEARCH hoạt động giống Excel. Google Sheets có thêm SPLIT(A2, " ") tách chuỗi ra nhiều cột và REGEXEXTRACT, ví dụ =REGEXEXTRACT(A2, "\S+$") lấy từ cuối cùng (tên). Nếu bản Sheets của bạn chưa có TEXTBEFORE/TEXTAFTER, hãy dùng SPLIT hoặc REGEXEXTRACT thay thế.

Zalo