Kiến Thức Excel Hàm lấy ký tự sau dấu gạch ngang (-) trong Excel

Hàm lấy ký tự sau dấu gạch ngang (-) trong Excel

Để lấy ký tự sau dấu gạch ngang (-) trong Excel, ta có thể sử dụng kết hợp các hàm LEN, MID, FIND, TEXTAFTER. Dưới đây là hướng dẫn chi tiết các cách áp dụng trong từng trường hợp cụ thể:

1. Lấy tất cả các ký tự sau dấu – gạch ngang đầu tiên

Ví dụ ô A2 chứa mã SKU như sau SKU-2025, giờ ta muốn tách phần năm 2025 trong mã SKU sau dấu gạch ngang đầu tiên thì ta có thể sử dụng công thức sau:

  • Phiên bản Excel 365/2021 trở lên: =TEXTAFTER(A2, "-")
    • Hàm TEXTAFTER trả về toàn bộ phần sau dấu – đâu tiên trong ô A2.
  • Phiên bản Excel 2019 trở xuống: =MID(A2, FIND("-", A2) + 1, LEN(A2))
    • Hàm FIND("-",A2)+1: vị trí ký tự ngay sau dấu -
    • Hàm MID(..., ..., LEN(A2)) cắt từ vị trí tìm được ở hàm FIND đến hết chuỗi.

Trong trường hợp ta nếu không có dấu – thì hàm trả về rỗng thay vì thông báo lỗi thì sẽ bọc thêm hàm IFEROR(...,"") như sau:

  • =IFERROR(TEXTAFTER(A2, "-"), "")
  • =IFERROR(MID(A2, FIND("-", A2) + 1, LEN(A2)), "")

Nếu hay gặp lỗi có khoảng trắng sau dấu gạch ngang - (ví dụ: “Mã - 001“) thì ta bọc thêm hàm TRIM để loại bỏ khoảng trắng thừa:

  • =TRIM(IFERROR(TEXTAFTER(A2,"-"), ""))
  • =TRIM(IFERROR(MID(A2,FIND("-",A2)+1,LEN(A2)),""))

lấy ký tự sau dấu gạch ngang đầu tiên

2. Lấy tất cả các ký tự sau dấu gạch ngang – cuối cùng

Ví dụ với chuỗi có nhiều dấu gạch ngang như ô A3 chứa SP-ALPHA-001 và muốn lấy phần 001 nằm sau dấu gạch ngang cuối cùng của ô A3 thì ta sử dụng công thức sau:

  • Excel 365/2021 trở lên: =TEXTAFTER(A3, "-", -1)
    • -1 ở tham số instance_num nghĩa là lấy sau lần xuất hiện cuối cùng.
  • Excel 2019 trở về: =MID(A3,FIND("♦", SUBSTITUTE(A3, "-", "♦", LEN(A3)-LEN(SUBSTITUTE(A3,"-","")))) + 1,LEN(A3))
    • LEN(A2)-LEN(SUBSTITUTE(A2,"-","")): đếm số dấu gạch ngang -
    • SUBSTITUTE(..., "-", "♦", số_lần): thay dấu gạch ngang - cuối bằng ký tự đánh dấu (ở đây là ).
    • FIND("♦", ...): Tìm vị trí của ký tự đánh dấu rồi cắt phần phía sau.

Lưu ý: Ta có thể bọc thêm hàm IFEROR để loại bỏ thông báo lỗi khi không tìm thấy dấu gạch ngang hoặc hàm TRIM để loại bỏ các khoảng trắng thừa ở phần kết quả tìm được nếu cần như mục 1.

lấy ký tự dâu dấu gạch ngang cuối cùng

3. Lấy ký tự từ dấu gạch ngang thứ n trở đi

Với chuỗi có nhiều dấu gạch nối như A17 là 2025-09-22-report và ta chỉ muốn lấy ký tự   nằm sau dấu gạch nối thứ 2 trở đi (22-report) thì ta sử dụng công thức sau:

  • Excel 365/2021 trở lên: =TEXTAFTER(A17, "-", 2)
  • Excel 2019 trở xuống: =MID(A17,FIND("♦", SUBSTITUTE(A17,"-","♦", 2)) + 1,LEN(A17))

Trong 2 công thức trên, ta có thể đổi số 2 thành n để lấy ký tự sau dấu gạch ngang thứ n.

Để tránh hiển thị thông báo lỗi khi không tìm thấy dấu gạch ngang thì ta cũng nên sử dụng hàm IFEROR bọc bên ngoài:

  • =IFERROR(TEXTAFTER(A2, "-", 2), "")
  • =IFERROR(MID(A2,FIND("♦", SUBSTITUTE(A2,"-","♦", 2)) + 1,LEN(A2)),"")

lấy ký tự sau dấu gạch ngang thứ n

eyeXem File thực hành cách lấy ký tự sau dấu gạch ngang

Trên đây là hướng dẫn chi tiết cách để sử dụng hàm lấy phần chuỗi ký tự sau dấu gạch ngang/gạch nối trong Excel. Với cách này ta có thể áp dụng trong các tình huống như tách các phần tử trong mã SKU, mã hóa đơn, đường dẫn file, địa chỉ, đơn đặt hàng,… trong quá trình làm việc với bảng tính. Mong rằng bài viết hữu ích và áp dụng thành công!

Các hàm Excel sử dụng trong bài viết:

Hàm Mô tả Có từ phiên bản
TEXTAFTER Trả phần chuỗi sau 1 đoạn văn bản Microsoft 365 / 2021
MID Cắt chuỗi từ vị trí xác định Tất cả
FIND Tìm vị trí chuỗi con (phân biệt HOA/thường) Tất cả
LEN Độ dài chuỗi Tất cả
TRIM Xoá khoảng trắng thừa Tất cả
TEXT Định dạng số về chuỗi Tất cả