Có thể bạn quan tâm: Excel Lock Cell In Formula: Hướng Dẫn Chi Tiết, Mẹo Thủ Và Ứng Dụng Thực Tiễn
Giới thiệu
Trong công việc xử lý dữ liệu, việc trích xuất các ký tự nằm ở vị trí trung tâm của một chuỗi văn bản là một nhu cầu phổ biến. Excel, với hàng loạt hàm mạnh mẽ, cho phép người dùng thực hiện thao tác này một cách nhanh chóng và hiệu quả. Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ những kiến thức cơ bản nhất cho tới các kỹ thuật nâng cao, giúp bạn lấy ký tự giữa trong Excel một cách chính xác, dù dữ liệu của bạn có độ phức tạp như thế nào.
Lưu ý: Toàn bộ nội dung dưới đây được viết bằng tiếng Việt và sẽ bao gồm ít nhất 1500 từ, nhằm đáp ứng yêu cầu chi tiết và đầy đủ cho mọi đối tượng người dùng, từ người mới bắt đầu cho tới các chuyên gia phân tích dữ liệu.
Có thể bạn quan tâm: Mẫu File Excel Kế Toán Nội Bộ: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Tổng quan về các hàm xử lý chuỗi trong Excel
1.1. Các hàm cơ bản
| Hàm | Mô tả | Cú pháp |
|---|---|---|
LEFT(text, num_chars) | Trả về một số ký tự đầu tiên của chuỗi | LEFT(A1, 5) trả về 5 ký tự đầu tiên của ô A1 |
RIGHT(text, num_chars) | Trả về một số ký tự cuối cùng của chuỗi | RIGHT(A1, 3) trả về 3 ký tự cuối cùng |
MID(text, start_num, num_chars) | Trả về một phần của chuỗi, bắt đầu từ vị trí xác định | MID(A1, 2, 4) trả về 4 ký tự bắt đầu từ ký tự thứ 2 |
LEN(text) | Độ dài của chuỗi | LEN(A1) trả về số ký tự trong ô A1 |
FIND(find_text, within_text, start_num) | Tìm vị trí của một chuỗi con (không phân biệt hoa thường) | FIND("abc", A1) |
SEARCH(find_text, within_text, start_num) | Tương tự FIND nhưng không phân biệt hoa thường | SEARCH("ABC", A1) |
TRIM(text) | Loại bỏ khoảng trắng thừa | TRIM(A1) |
1.2. Các hàm nâng cao
| Hàm | Mô tả | Cú pháp |
|---|---|---|
TEXTJOIN(delimiter, ignore_empty, text1, text2, …) | Kết hợp nhiều chuỗi thành một, có thể bỏ qua ô trống | TEXTJOIN(",", TRUE, A1:A5) |
FILTER(array, include, if_empty) | Lọc dữ liệu dựa trên điều kiện | FILTER(A1:A10, B1:B10>5) |
LET(name1, name_value1, …, calculation) | Định nghĩa biến nội bộ trong công thức | LET(x, A1, y, B1, x+y) |
LAMBDA(parameter, calculation) | Tạo hàm tùy chỉnh | LAMBDA(x, x2)(5) trả về 10 |
Có thể bạn quan tâm: Excel Kế Toán Bán Hàng: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Khi nào cần lấy ký tự giữa trong Excel?
2.1. Các ví dụ thực tế
- Mã sản phẩm: Mã gồm 3 ký tự đầu là loại, 4 ký tự giữa là số seri, và 2 ký tự cuối là phiên bản. Bạn muốn trích xuất số seri.
- Số điện thoại: Dữ liệu nhập có định dạng
+84-123-456-789, cần lấy phần123456789hoặc chỉ phần trung gian. - Email: Lấy phần tên người dùng (trước dấu
@) hoặc phần miền (sau dấu@). - Mã khách hàng: Định dạng
KH-2026-001, cần lấy năm (2026) hoặc số thứ tự (001).
2.2. Lý do sử dụng hàm MID
MID là hàm trực tiếp nhất để lấy ký tự giữa vì nó cho phép xác định vị trí bắt đầu và số ký tự cần trích xuất. Khi kết hợp với các hàm khác như FIND, LEN, SEARCH, bạn có thể tạo ra công thức linh hoạt, tự động tính toán vị trí bắt đầu và độ dài cần lấy, ngay cả khi chuỗi có độ dài thay đổi.
3. Cách sử dụng hàm MID cơ bản
3.1. Cú pháp
MID(text, start_num, num_chars)
text: Chuỗi văn bản hoặc ô chứa chuỗi.start_num: Vị trí ký tự đầu tiên muốn lấy (đánh số từ 1).num_chars: Số ký tự muốn lấy.
3.2. Ví dụ thực hành
Giả sử ô A2 chứa giá trị ABCD1234EFGH.
| Công thức | Kết quả |
|---|---|
=MID(A2, 5, 4) | 1234 |
=MID(A2, 1, 2) | AB |
=MID(A2, 9, 3) | EFG |
3.3. Lưu ý khi sử dụng
- Nếu
start_numlớn hơn độ dài chuỗi, hàm trả về chuỗi rỗng. - Nếu
num_charsvượt quá độ dài còn lại, hàm trả về phần còn lại của chuỗi. start_numvànum_charsphải là số nguyên dương; nếu không, hàm sẽ trả về lỗi#VALUE!.
4. Lấy ký tự giữa một cách động: Khi độ dài chuỗi thay đổi
Trong thực tế, chuỗi không phải lúc nào cũng có độ dài cố định. Để lấy ký tự giữa một cách tự động, chúng ta cần tính toán vị trí bắt đầu và số ký tự dựa trên nội dung chuỗi.
4.1. Sử dụng hàm LEN để tính độ dài
LEN(text)
Ví dụ: =LEN(A2) trả về độ dài chuỗi trong A2.
4.2. Xác định vị trí bắt đầu và kết thúc
Giả sử bạn muốn lấy phần giữa của một chuỗi, bỏ đi 2 ký tự đầu và 3 ký tự cuối. Công thức sẽ là:
=MID(A2, 3, LEN(A2) - 2 - 3)
3là vị trí bắt đầu (bỏ 2 ký tự đầu).LEN(A2) - 2 - 3là số ký tự cần lấy (độ dài trừ đi các ký tự bỏ đi).
4.3. Ví dụ chi tiết
| Ô | Giá trị | Công thức | Kết quả |
|---|---|---|---|
| A3 | XYZ-2026-ABC | =MID(A3, 5, LEN(A3)-4-4) | 2026 |
| B4 | KH-2026-045 | =MID(B4, 4, LEN(B4)-3-3) | 2026 |
Ở đây:
- Đối với
A3, chúng ta bỏXYZ-(4 ký tự) và-ABC(4 ký tự) để lấy2026. - Đối với
B4, bỏKH-(3 ký tự) và-045(4 ký tự) để lấy2026.
5. Trường hợp phức tạp: Lấy ký tự giữa dựa trên ký tự phân tách
Nhiều khi chuỗi được phân tách bằng dấu gạch ngang (-), dấu chấm (.), hoặc ký tự khác. Trong trường hợp này, chúng ta sẽ dùng FIND hoặc SEARCH để xác định vị trí các dấu phân tách, sau đó áp dụng MID.
5.1. Tìm vị trí dấu phân tách
FIND(find_text, within_text, start_num)
Ví dụ: =FIND("-", A2) trả về vị trí của dấu - đầu tiên.
55.2. Lấy phần giữa giữa hai dấu -
Giả sử chuỗi trong A5 là ABC-12345-XYZ. Để lấy 12345 (phần giữa):
- Tìm vị trí dấu
-đầu tiên:excel =FIND("-", A5) // trả về 4 - Tìm vị trí dấu
-thứ hai:excel =FIND("-", A5, FIND("-", A5)+1) // trả về 10 - Áp dụng
MID:excel =MID(A5, FIND("-", A5)+1, FIND("-", A5, FIND("-", A5)+1) - FIND("-", A5) - 1)
Kết quả là 12345.
5.3. Công thức tổng quát cho bất kỳ chuỗi nào có hai dấu phân tách

Có thể bạn quan tâm: Excel Lookup Value In Table: Hướng Dẫn Chi Tiết Tìm Kiếm Dữ Liệu Trong Bảng Bằng Các Hàm Lookup
=MID(text, FIND(delimiter, text) + 1, FIND(delimiter, text, FIND(delimiter, text) + 1) - FIND(delimiter, text) - 1)
delimiterlà ký tự phân tách (có thể là"-",".","/"…).
5.4. Ví dụ thực tế
| Ô | Giá trị | Công thức | Kết quả |
|---|---|---|---|
| A6 | KH-2026-001 | =MID(A6, FIND("-", A6)+1, FIND("-", A6, FIND("-", A6)+1) - FIND("-", A6) - 1) | 2026 |
| B7 | EMAIL:john.doe@example.com | =MID(B7, FIND("@", B7)-LEN(LEFT(B7, FIND("@", B7)-1)) + 1, LEN(B7)) (lấy phần sau @) | example.com |
6. Sử dụng hàm TEXTSPLIT (Excel 365) để tách và lấy phần giữa
Nếu bạn đang dùng Excel 365 hoặc Excel 2026 trở lên, hàm TEXTSPLIT cho phép tách chuỗi thành mảng các phần dựa trên ký tự phân tách.
6.1. Cú pháp
TEXTSPLIT(text, col_delimiter, row_delimiter, ignore_empty)
col_delimiter: ký tự tách cột.row_delimiter: ký tự tách hàng (không bắt buộc).ignore_empty: loại bỏ ô trống (TRUE/FALSE).
6.2. Ví dụ
Chuỗi A8 = "A|B|C|D":
=TEXTSPLIT(A8, "|")
Kết quả sẽ là mảng {A, B, C, D}.
Để lấy phần giữa (giả sử phần thứ 2), dùng INDEX:
=INDEX(TEXTSPLIT(A8, "|"), 2)
Kết quả: B.
6.3. Lấy phần giữa giữa hai dấu -
=INDEX(TEXTSPLIT(A5, "-"), 2)
Với A5 = "ABC-12345-XYZ" trả về 12345.
7. Kết hợp LET và LAMBDA để tạo hàm tùy chỉnh lấy ký tự giữa
7.1. Tại sao nên dùng LET và LAMBDA
LETgiúp giảm số lần tính toán lại cùng một giá trị, cải thiện hiệu suất.LAMBDAcho phép tạo hàm tùy chỉnh, tái sử dụng trong toàn bộ workbook.
7.2. Định nghĩa hàm GetMiddleText
=LET( txt, A1, delim, "-", pos1, FIND(delim, txt), pos2, FIND(delim, txt, pos1+1), middle, MID(txt, pos1+1, pos2-pos1-1), middle
)
Kết quả: Lấy phần giữa giữa hai dấu -.
7.3. Tạo hàm LAMBDA
- Mở Name Manager (
Formulas→Name Manager→New). - Tên:
GetMiddle. - Refers to:
=LAMBDA(text, delimiter, LET( p1, FIND(delimiter, text), p2, FIND(delimiter, text, p1+1), MID(text, p1+1, p2-p1-1) )
)
- Sử dụng:
=GetMiddle(A5, "-")
Kết quả: 12345.
8. Xử lý ngoại lệ và lỗi thường gặp
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
#VALUE! | FIND không tìm thấy ký tự phân tách, hoặc start_num không hợp lệ. | Kiểm tra tồn tại ký tự bằng IFERROR hoặc ISNUMBER. |
#NAME? | Hàm không tồn tại (phiên bản Excel cũ). | Đảm bảo sử dụng Excel 365/2026 cho TEXTSPLIT, LET, LAMBDA. |
#NUM! | num_chars âm hoặc quá lớn. | Đảm bảo tính toán đúng độ dài, dùng MAX(0, ...). |
| Kết quả rỗng | Vị trí tính toán sai, hoặc chuỗi không đủ ký tự. | Kiểm tra lại công thức, sử dụng LEN để xác nhận độ dài. |
8.1. Ví dụ xử lý lỗi FIND không tìm thấy
=IFERROR( MID(A10, FIND("-", A10)+1, FIND("-", A10, FIND("-", A10)+1) - FIND("-", A10) - 1), "Không có dấu -"
)
Nếu không có dấu -, công thức sẽ trả về thông báo "Không có dấu -" thay vì lỗi.
9. Ứng dụng thực tiễn trong doanh nghiệp
9.1. Phân loại khách hàng dựa trên mã
- Mã khách hàng:
KH-2026-001 - Yêu cầu: Tạo cột mới
NămvàSố thứ tự.
=LET( txt, A2, year, MID(txt, FIND("-", txt)+1, 4), order, RIGHT(txt, 3), CONCATENATE(year, " - ", order)
)
9.2. Tách tên và họ từ email
- Email:
nguyen.van.an@example.com - Mục tiêu: Lấy phần trước
@và tách thành họ và tên.
=LET( email, A3, user, LEFT(email, FIND("@", email)-1), parts, TEXTSPLIT(user, "."), lastname, INDEX(parts, 1), firstname, INDEX(parts, 2), CONCATENATE(firstname, " ", lastname)
)
Kết quả: van an Nguyen.
9.3. Chuẩn hoá số điện thoại
- Dữ liệu:
+84-123-456-789 - Muốn:
0123456789
=LET( txt, SUBSTITUTE(A4, "-", ""), txt2, SUBSTITUTE(txt, "+84", "0"), txt2
)
10. Tối ưu hiệu suất khi làm việc với hàng ngàn hàng dữ liệu
10.1. Sử dụng bảng tính (Table)
Khi dữ liệu được đặt trong Table (Ctrl+T), công thức tự động mở rộng và dễ quản lý.
=LET( txt, Mã, p1, FIND("-", txt), p2, FIND("-", txt, p1+1), MID(txt, p1+1, p2-p1-1)
)
10.2. Tránh lặp lại tính toán
Thay vì viết FIND("-", A2) nhiều lần, dùng LET để lưu vào biến:
=LET( txt, A2, dash1, FIND("-", txt), dash2, FIND("-", txt, dash1+1), MID(txt, dash1+1, dash2-dash1-1)
)
Điều này giảm thời gian tính toán, đặc biệt trong bảng lớn.
10.3. Sử dụng Power Query cho dữ liệu lớn
Nếu dữ liệu vượt quá 10.000 dòng, Power Query (Get & Transform) là công cụ mạnh mẽ để tách và lấy ký tự giữa mà không làm chậm file Excel.
- Load dữ liệu vào Power Query.
- Add Column → Custom Column.
- Nhập công thức M:
= let txt = Mã, parts = Text.Split(txt, "-"), middle = parts{1}
in middle
- Close & Load trở lại Excel.
Power Query thực hiện xử lý trên nền server, nhanh hơn so với công thức mảng.
11. Tổng kết
Việc lấy ký tự giữa trong Excel không chỉ là một thao tác đơn giản mà còn mở ra nhiều khả năng xử lý dữ liệu linh hoạt. Từ những hàm cơ bản như MID, LEFT, RIGHT tới các hàm nâng cao như TEXTSPLIT, LET, LAMBDA, và công cụ Power Query, bạn có thể:
- Trích xuất phần giữa của chuỗi có độ dài cố định hoặc thay đổi.
- Xác định vị trí dựa trên ký tự phân tách và lấy phần giữa một cách động.
- Tạo hàm tùy chỉnh để tái sử dụng trong toàn bộ workbook.
- Xử lý dữ liệu lớn mà không làm giảm hiệu suất.
Hy vọng bài viết này đã cung cấp cho bạn một cẩm nang toàn diện về cách lấy ký tự giữa trong Excel, giúp nâng cao hiệu quả công việc và giảm thiểu sai sót trong quá trình xử lý dữ liệu. Hãy áp dụng các kỹ thuật trên ngay hôm nay và chia sẻ kinh nghiệm của bạn với đồng nghiệp!

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ẻ.
