Hôm nay bỗng nhận được một tập tin excel của khách hàng, trong đó có một cột mã chấm công có số, có chữ lộn xộn nhau không theo một qui luật nào hết (ví dụ: M123E, 155D, F33). Nhưng mình thì cần mã chấm công chỉ toàn số thôi (ví dụ: 123, 155, 33). Làm sao tách được số ra khỏi chuỗi, trong khi excel không có hàm đó. Làm cách nào đây? Chẳng lẽ làm bằng tay, làm biết đến bao giờ cho xong, mấy ngàn dòng dữ liệu lận đó!

Không sao, trong excel không có hàm tách chuỗi cũng không sao. Chúng ta có thể tự viết hàm ExtractNumber để dùng. Excel có công cụ hỗ trợ chúng ta viết hàm theo ý mình. Đây là cách giải quyết cho bài toán trên.

Nào chúng ta bắt đầu cùng nhau giải quyết:

  • Bước 1: mở Microsoft Excel lên
  • Bước 2: nhấn Alt + F11 -> mở ra cửa sổ Microsoft Visual Basic -> Insert -> Module

 

  • Bước 3: Bạn nhập đoạn code bên dưới vào cửa sổ Book1-Module1 (Code), hình minh hoại bên dưới:
Function ExtractNumber(rCell As Range)
Dim lCount As Long
Dim sText As String
Dim lNum As String
sText = rCell
For lCount = Len(sText) To 1 Step -1
If IsNumeric(Mid(sText, lCount, 1)) Then
lNum = Mid(sText, lCount, 1) & lNum
End If
Next lCount
ExtractNumber = CLng(lNum)
End Function


Vậy là bạn đã có thể dùng hàm ExtractNumber để tách số ra khỏi chuỗi rồi đó.

  • Bước 4: Quay lại Microsoft Excel, bạn dùng hàm ExtractNumber như hình bên dưới:


=> Chúc bạn thành công :)