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:
1
2
3
4
5
6
7
8
9
10
11
12
| 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