Lấy Ký Tự Giữa Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao

Mục lục bài viết

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.

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àmMô tảCú pháp
LEFT(text, num_chars)Trả về một số ký tự đầu tiên của chuỗiLEFT(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ỗiRIGHT(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 địnhMID(A1, 2, 4) trả về 4 ký tự bắt đầu từ ký tự thứ 2
LEN(text)Độ dài của chuỗiLEN(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ườngSEARCH("ABC", A1)
TRIM(text)Loại bỏ khoảng trắng thừaTRIM(A1)

1.2. Các hàm nâng cao

HàmMô 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ốngTEXTJOIN(",", TRUE, A1:A5)
FILTER(array, include, if_empty)Lọc dữ liệu dựa trên điều kiệnFILTER(A1:A10, B1:B10>5)
LET(name1, name_value1, …, calculation)Định nghĩa biến nội bộ trong công thứcLET(x, A1, y, B1, x+y)
LAMBDA(parameter, calculation)Tạo hàm tùy chỉnhLAMBDA(x, x2)(5) trả về 10

2. Khi nào cần lấy ký tự giữa trong Excel?

2.1. Các ví dụ thực tế

  1. 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.
  2. Số điện thoại: Dữ liệu nhập có định dạng +84-123-456-789, cần lấy phần 123456789 hoặc chỉ phần trung gian.
  3. Email: Lấy phần tên người dùng (trước dấu @) hoặc phần miền (sau dấu @).
  4. 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ứcKế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_num lớn hơn độ dài chuỗi, hàm trả về chuỗi rỗng.
  • Nếu num_chars vượt quá độ dài còn lại, hàm trả về phần còn lại của chuỗi.
  • start_num và num_chars phả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)
  • 3 là vị trí bắt đầu (bỏ 2 ký tự đầu).
  • LEN(A2) - 2 - 3 là 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ứcKết quả
A3XYZ-2026-ABC=MID(A3, 5, LEN(A3)-4-4)2026
B4KH-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ấy 2026.
  • Đối với B4, bỏ KH- (3 ký tự) và -045 (4 ký tự) để lấy 2026.

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):

  1. Tìm vị trí dấu - đầu tiên:
    excel =FIND("-", A5) // trả về 4
  2. Tìm vị trí dấu - thứ hai:
    excel =FIND("-", A5, FIND("-", A5)+1) // trả về 10
  3. Á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

Lấy Ký Tự Giữa Trong Excel
Lấy Ký Tự Giữa Trong Excel
=MID(text, FIND(delimiter, text) + 1, FIND(delimiter, text, FIND(delimiter, text) + 1) - FIND(delimiter, text) - 1)
  • delimiter là ký tự phân tách (có thể là "-", ".", "/" …).

5.4. Ví dụ thực tế

ÔGiá trịCông thứcKết quả
A6KH-2026-001=MID(A6, FIND("-", A6)+1, FIND("-", A6, FIND("-", A6)+1) - FIND("-", A6) - 1)2026
B7EMAIL: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

  • LET giú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.
  • LAMBDA cho 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

  1. Mở Name Manager (Formulas → Name Manager → New).
  2. Tên: GetMiddle.
  3. Refers to:
=LAMBDA(text, delimiter, LET( p1, FIND(delimiter, text), p2, FIND(delimiter, text, p1+1), MID(text, p1+1, p2-p1-1) )
)
  1. Sử dụng:
=GetMiddle(A5, "-")

Kết quả: 12345.

8. Xử lý ngoại lệ và lỗi thường gặp

LỗiNguyên nhânCá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ỗngVị 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ăm và 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.

  1. Load dữ liệu vào Power Query.
  2. Add Column → Custom Column.
  3. Nhập công thức M:
= let txt = Mã, parts = Text.Split(txt, "-"), middle = parts{1}
in middle
  1. 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!

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