Chào mọi người,
Dạo này mình hay phải làm việc với các file Excel chứa dữ liệu chuỗi ký tự khá lằng nhằng, kiểu như ABC-123-XYZ_456 hoặc [Project A] Task 001. Việc tách, trích xuất hay thay thế các phần của chuỗi này bằng các hàm có sẵn của Excel đôi khi rất mất thời gian và dễ sai sót.
Mình đã thử tìm hiểu và áp dụng một chút VBA vào để giải quyết vấn đề này và thấy hiệu quả bất ngờ. Hôm nay mình muốn chia sẻ một ví dụ nhỏ để mọi người tham khảo, biết đâu lại giúp ích cho công việc của ai đó.
Giả sử mình có một cột dữ liệu như sau:
ID-ProjectA-Task001
XYZ-ProjectB-Task002
ABC-ProjectC-Task003Mình muốn tách lấy phần tên Project (ProjectA, ProjectB, ProjectC). Với VBA, mình có thể viết một hàm tùy chỉnh đơn giản:
Function ExtractProjectName(inputText As String) As String
Dim parts() As String
parts = Split(inputText, "-")
If UBound(parts) >= 1 Then
ExtractProjectName = parts(1)
Else
ExtractProjectName = ""
End If
End FunctionSau đó, trong Excel, bạn chỉ cần gõ công thức như sau để sử dụng hàm này:
=ExtractProjectName(A1)Kết quả sẽ trả về tên project mà chúng ta cần.
Đây chỉ là một ví dụ rất cơ bản về việc tự động hóa xử lý chuỗi bằng VBA. Với VBA, chúng ta có thể giải quyết được rất nhiều tác vụ phức tạp mà các hàm Excel thông thường khó làm được. Mọi người có kinh nghiệm hoặc có bài toán nào về xử lý chuỗi ký tự phức tạp muốn tự động hóa không, cùng thảo luận nhé!