Tách Số Và Chữ Trong Một Ô Excel: Hướng Dẫn Chi Tiết

Giới thiệu

Trong thực tế làm việc với dữ liệu, ta thường gặp trường hợp “trộn” giữa ký tự chữ (hoặc ký tự đặc biệt) và số trong một ô duy nhất. Ví dụ: “A123”, “123B”, “V2023-05-01”, “ABCD1234”… Khi dữ liệu này được nhập vào bảng tính Excel, việc phân tách các thành phần số và chữ thường trở nên cần thiết cho nhiều mục đích: tính toán, phân loại, lọc dữ liệu, tạo báo cáo, hoặc chuẩn bị dữ liệu nhập vào hệ thống khác.

Trong bài viết này, chúng ta sẽ đi sâu vào các cách thực hiện tách số và chữ trong một ô Excel, từ phương pháp đơn giản nhất (sử dụng công thức và chức năng sẵn có của Excel) cho tới những kỹ thuật nâng cao như dùng hàm REGEX, Power Query, hoặc viết macro VBA. Bạn sẽ biết được công cụ nào phù hợp với từng tình huống, cách áp dụng từng bước cụ thể, và những lưu ý khi làm việc với dữ liệu có dạng “số + chữ” hay “chữ + số”.

Lưu ý: Để thực hiện các công thức dưới đây, bạn cần nhập dữ liệu vào ô A1 (hoặc bất kỳ ô nào bạn muốn xử lý). Nếu bạn sử dụng Excel 365/Excel 2026, các hàm mới như TEXTSPLIT, FILTERXML, REGEXEXTRACT sẽ sẵn có. Nếu không, bạn có thể sử dụng Power Query hoặc VBA để đạt được kết quả tương tự.

1. Phương pháp 1: Sử dụng hàm LEFT, RIGHT, MID, FIND, SEARCH

1.1. Khi số nằm ở đầu ô

Ví dụ ôutlich A1 = “123ABC”. Bạn muốn tách phần số “123” và phần chữ “ABC”.

Công thức lấy số:

=LEFT(A1, FIND(TRUE, ISNUMBER(--MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1))) - 1

Giải thích: Hàm MID lấy từng ký tự trong ô, ISNUMBER(--MID(...)) xác định xem ký tự đó có phải là số hay không. Hàm FIND tìm vị trí đầu tiên của ký tự không phải số, trừ 1 để lấy phần số. Để công thức này hoạt động, nhớ nhấn Ctrl+Shift+Enter (đối với Excel 2026 trở xuống) hoặc nhập vào một ô bình thường nếu dùng Excel 365.

Công thức lấy chữ:

=RIGHT(A1, LEN(A1) - FIND(TRUE, ISNUMBER(--MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1)))) 

Giải thích: Tương tự, ta tìm vị trí đầu tiên của ký tự không phải số, rồi lấy phần còn lại bằng RIGHT.

1.2. Khi chữ nằm ở đầu ô

Ví dụ A1 = “ABC123”. Bạn muốn tách “ABC” và “123”.

Công thức lấy chữ:

=LEFT(A1, FIND(TRUE, ISNUMBER(--MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1))) - 1

Lưu ý: Cách này giống như trường hợp trước, nhưng vì chữ đứng đầu, phần đầu tiên của chuỗi sẽ là chữ, nên công thức giống nhau.

Công thức lấy số:

=RIGHT(A1, LEN(A1) - FIND(TRUE, ISNUMBER(--MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1)))) 

1.3. Khi có ký tự đặc biệt, dấu cách, hoặc dấu gạch ngang

Nếu dữ liệu có dạng “AB-123”, “123-XYZ”, “ABC 456”, bạn cần điều chỉnh công thức để bỏ qua ký tự đặc biệt. Một cách đơn giản là dùng hàm SUBSTITUTE để loại bỏ ký tự không cần thiết trước khi áp dụng công thức trên, hoặc dùng một công thức phức tạp hơn với FILTERXML.

Ví dụ:цә A1 = “AB-123”.

Tách số:

=VALUE(TRIM(MID(SUBSTITUTE(A1,"-"," "),2,LEN(A1))))

萝

Giải thích: SUBSTITUTE thay thế dấu gạch ngang bằng khoảng trắng, MID(...,2,...) lấy phần sau dấu gạch ngang (vì phần trước là “AB”). TRIM loại bỏ khoảng trắng thừa, VALUE chuyển thành số.

2. Phương pháp 2: Sử dụng hàm TEXTSPLIT (Excel 365)

Nếu bạn đang dùng Excel 365, hàm TEXTSPLIT rất tiện lợi để chia chuỗi dựa trên ký tự phân tách.

Cách dùng:

Giả sử ô A1 = “123 Bees 456”.

=TEXTSPLIT(A1, " ", , TRUE)

Giải thích: Hàm TEXTSPLIT chia chuỗi dựa trên dấu cách. Tham số thứ ba (đánh dấu bằng ,) là dấu phân tách chuỗi; dấu TRUE để bỏ qua các phần tử rỗng. Kết quả trả về là một mảng, bạn có thể lấy phần tử thứ nhất (số) bằng INDEX:

=INDEX(TEXTSPLIT(A1, " ", , TRUE), 1)

Lưu ý జీవిత: Nếu chuỗi có ký tự khác nhau làm phân tách (dấu gạch ngang, dấu chấm, v.v.), thay " " bằng ký tự tương ứng.

3. Phương pháp 3: Sử dụng hàm REGEXEXTRACT (Excel 365)

Excel 365 cung cấp hàm REGEXEXTRACTimasoq, rất mạnh mẽ khi làm việc với chuỗi phức tạp.

3.1. Lấy phần số

Giả sử ô A1 = “ID-12345-XYZ”.

=REGEXEXTRACT(A1, "\d+")

Giải thích: \d+ là biểu thức chính quy tìm một hoặc nhiều chữ số liên tiếp. Hàm sẽ trả về “12345”.

3.2. Lấy phần chữ

=REGEXEXTRACT(A1, "A-Za-z+")

Giải thích: A-Za-z+ tìm một chuỗi ký tự chữ liên tiếp. Nếu chuỗi có nhiều phần chữ, hàm sẽ trả về phần đầu tiên.

3.3. Trường hợp phức tạp: Lấy cả phần số và chữ đồng thời

Bạn có thể kết hợp REGEXEXTRACT với REGEXREPLACE để loại bỏ phần không cần thiết:

=REGEXREPLACE(A1, "^A-Za-z", "")

Giải thích: ^A-Za-z là bất kỳ ký tự nào không phải chữ باہر. Hàm sẽ loại bỏ tất cả ký tự không phải chữ, giữ lại phần chữ “IDXYZ”.

4. Phương pháp 4: Dùng Power Query (Get & Transform)

Power Query là công cụ mạnh mẽ trong Excel để làm sạch và biến đổi dữ liệu. Khi dữ liệu có quy định rõ ràng về vị trí số và chữ, Power Query giúp tách chúng một cách nhanh chóng và tự động.

Tách Số Và Chữ Trong 1 Ô Excel
Tách Số Và Chữ Trong 1 Ô Excel

4.1. Bước 1: Chọn dữ liệu > Trình bày > Từ bảng hoặc vùng

Khi bạn đã chọn vùng dữ liệu, Power Query sẽ mở ra giao diện chỉnh sửa.

4.2. Bước 2: Thêm cột tùy chỉnh

  • Chọn Add Column → Custom Column.
  • Đặt tên cột “Số” và nhập công thức:
Text.Select(Column1, {"0".."9"})

Giải thích: Hàm Text.Select lọc ra chỉ các ký tự nằm trong dãy “0”..“9”.

  • Đặt tên cột “Chữ” và nhập công thức:
Text.Select(Column1, {"A".."Z", "a".."z"})

Giải thích: Lọc ra các ký tự chữ (cả hoa và thường).

4.3. Bước 3: Chuyển dữ liệu về Excel

  • Nhấn Close & Load → Close & Load To… → chọn “Table” và đặt vị trí.

Lưu ý: Power Query rất thích hợp khi làm việc với hàng ngàn dòng dữ liệu. Khi có dữ liệu mới, bạn chỉ cần làm mới query (Refresh) để tự động cập nhật.

5. Phương pháp 5: Viết macro VBA

Nếu bạn cần tự động hóa quy trình tách số và chữ cho một cột dài dữ liệu, macro VBA Olaf là một lựa chọn hiệu quả.

5.1. Mã VBA mẫu

Sub SplitNumberAndLetter() Dim rng As Range Dim cell As Range Dim inputText As String Dim numPart As String Dim letPart As String Dim i As Long ' Chọn vùng dữ liệu cần xử lý Set rng = Application.Selection For Each cell In rng inputText = cell.Value numPart = "" letPart = "" For i = 1 To Len(inputText) If IsNumeric(Mid(inputText, i, 1)) Then numPart = numPart & Mid(inputText, i, 1) Else letPart = letPart & Mid(inputText, i, 1) End If Next i ' Ghi kết quả vào cột kế tiếp cell.Offset(0, 1).Value = numPart cell.Offset(0, 2).Value = letPart Next cell
End Sub

Cách chạy: Mở VBA Editor (Alt+F11), northern một module mới, dán mã vào, lưu. Quay lại Excel, chọn vùng dữ liệu, nhấn Alt+F8, chạy macro SplitNumberAndLetter.

5.2. Giải thích nhanh

  • IsNumeric kiểm tra ký tự có phải là số hay không.
  • Mid lấy ký tự tại vị trí i.
  • Offset để ghi kết quả vào cột kế tiếp (độ lệch 1 và 2 cột).

Lưu ý: Macro có thể chạy chậm nếu dữ liệu vượtствия vài ngàn dòng. Trong trường hợp đó, cân nhắc chuyển sang Power Query hoặc cài đặt Application.ScreenUpdating = False.

6. Các tình huống thực tế và cách xử lý

6.1. Dữ liệu nhập từ hệ thống cũ

Bạn nhận được dữ liệu dạng “00123ABC”, “XYZ456”. Khi nhập vào Excel, có thể xuất hiện “00123ABC” bị chuyển thành số 123ABC (vì Excel tự động chuyển đổi). Để giữ nguyên định dạng, hãy nhập dữ liệu vào ô dưới dạng văn bản ('00123ABC) hoặc chọn cột trước và thiết lập kiểu dữ liệu là “Text”.

6.2. Tách số và chữ khi dữ liệu có định dạng phức tạp (ví dụ: “AB-123-CD-456”)

Bạnmarked muốn lấy số “123” và “456” riêng biệt. Dùng Power Query hoặc macro để lọc ra các chuỗi số liên tiếp.

Power Query:

let Source = Excel.CurrentWorkbook(){Name="Table1"}Content, AddColumns = Table.AddColumn(Source, "Numbers", each Text.Select(Column1, {"0".."9"}))
in AddColumns

Kết quả: Mỗi ô sẽ có cột “Numbers” chứa chuỗi số liên tiếp. Bạn có thể dùng Text.Split để chia thành nhiều cột nếu cần.

6.3. Tách số từ chuỗi có ký tự đặc biệt (dấu gạch ngang, dấu chấm, dấu phẩy)

Nếu dữ liệu có dạng “12.34-56”, bạn có thể dùng SUBSTITUTE để gán dấu gạch ngang bằng dấu chấm, rồi dùng TEXTSPLIT.

=TEXTSPLIT(SUBSTITUTE(A1,"-","."), ".", , TRUE)

Kết quả: Mảng chứa “12.34” và “56”.

6.4. Xử lý dữ liệu lớn (hàng triệu hàng)

  • Với Excel 365: Dùng Power Query vì nó có thể xử lý dữ liệu lớn hơn giới hạn của overdang.
  • Với Excel 2026: Macro VBA tốc độ chậm hơn nhiều khi xử lý hàng triệu dòng. Bạn nên tách dữ liệu thành nhiều khối nhỏ hoặc chuyển sang phần mềm chuyên dụng như Power BI hoặc Python với Pandas.

7. Lưu ý khi làm việc với dữ liệu số và chữ

Câu hỏiMẹo / Giải pháp
Dữ liệu bị thay đổi công thức khi kéo sang ô khácSử dụng $ để cố định tham chiếu (ví dụ: $A$1).
Số bị mất chữ số đầu tiênĐặt cột là kiểu “Text” trước khi nhập dữ liệu.
Định dạng ngày bị mấtKhi tách số, dùng DATEVALUE hoặc TEXT để giữ nguyên định dạng.
Cần giữ nguyên dấu cáchSử dụng TRIM để loại bỏ khoảng trắng thừa.
Có ký tự Unicode (tiếng Việt, tiếng Trung)Đảm bảo tính năng TEXTSPLIT hoặc REGEXEXTRACT hỗ trợ Unicode.
Làm sạch dữ liệu trước khi táchDùng SUBSTITUTE để loại bỏ ký tự đặc biệt; dùng CLEAN để loại bỏ ký tự điều khiển.

8. Kết luận

Tách số và chữ trong một ô Excel là một kỹ năng cơ bản nhưng quan trọng trong công việc xử lý dữ liệu. Dựa vào mức độ phức tạp của dữ liệu và công cụ bạn có, bạn có thể chọn một trong các phương pháp sau:

  1. Công thức thủ công (LEFT, RIGHT, MID, FIND, SEARCH) – thích hợp cho dữ liệu ngắn, dễ hiểu, và không cần tự động hóa.
  2. Hàm mới trong Excel 365 (TEXTSPLIT, REGEXEXTRACT) – nhanh, mạnh mẽ và linh hoạt.
  3. Power Query – tốt cho dữ liệu lớn, cần tái sử dụng quy trình, tự động.
  4. Macro VBA – thích hợp khi quy trình tách phức tạp, cần tùy biến cao và có thể lặp lại nhiều lần.

Tùy vào yêu cầu thực tế và độ phức tạp của dữ liệu, bạn có thể kết hợp các công cụ này để đạt được kết quả tối ưu nhất. Đừng quên kiểm tra kỹ dữ liệu sau khi tách để tránh mất mát thông tin quan trọng. Chúc bạn thành công trong việc xử lý dữ liệu Excel!

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