=value(right(A1,3)) right (A1,3) , để lấy 100 ( đang la chuỗi ) muốn chuyển 100 ( chuỗi ) thành sỗ = value ( 100 ) A1=value(right(A1,3))=100 A2=value(right(A2,2))=50
2. Dùng macro
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
---------------------------------
// phần này không ghi trong macro => hàm lấy chuỗi đưa vào 1 tham số là rCell khai báo 3 biến là lCount để đếm chiều dài chuỗi, kiểu Long 2 biến text kiểu string. thiết lập sText = tham số rCell lặp, đếm chiều dài từng ký tự trong chuỗi text: lCount = Len(sText) To 1 Step -1 chạy điều kiện trong vòng lặp: nếu IsNumeric(Mid(sText, lCount, 1)) hảm IsNumeric(text) kiểm tra có phải là số không? hàm Mid(): lấy text, bao gồm Mid(text,chiều dài, start) - Nếu là số, thực hiện: lNum = Mid(sText, lCount, 1) & lNum Kết thúc hàm If. trả lại số
- Bước 4: Quay lại Microsoft Excel, bạn dùng hàm ExtractNumber như hình bên dưới:
Không có nhận xét nào:
Đăng nhận xét
Cám ơn bạn đã quan tâm đến bài viết của mình nhé!