Chiêu 28: Trích xuất dữ liệu số trong 1 chuỗi bằng VBA Bạn thường lấy dữ liệu từ nguồn ngoài, chẳng hạn từ Internet, trong đó có dữ liệu số xen lẫn chữ như: “1,” hoặc “USD 2,”, thậm chí còn phức tạp hơn. Và cũng có khi bạn đã nhập liệu hỗn hợp text và số không theo quy luật nào để có thể lấy riêng số ra bằng các hàm tách chuỗi thông thường. Dùng 1 hàm tự tạo viết bằng VBA, bạn có thể trích xuất riêng phần số ra, dù cho chuỗi có kiểu dạng gì đi. | Chiêu 28 Trích xuất dữ liệu số trong 1 chuỗi bằng VBA Bạn thường lấy dữ liệu từ nguồn ngoài chẳng hạn từ Internet trong đó có dữ liệu số xen lẫn chữ như 1 hoặc USD 2 thậm chí còn phức tạp hơn. Và cũng có khi bạn đã nhập liệu hỗn hợp text và số không theo quy luật nào để có thể lấy riêng số ra bằng các hàm tách chuỗi thông thường. Dùng 1 hàm tự tạo viết bằng VBA bạn có thể trích xuất riêng phần số ra dù cho chuỗi có kiểu dạng gì đi nữa. Bạn hãy nhấn Alt-F11 để vào cửa sổ VBA insert 1 module và dán đoạn code sau vào PHP Code 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ào lại Excel trong ô B1 gõ dữ liệu số xen lẫn text tuỳ ý trong ô kế bên C1 gõ công thức ExtractNumber B 1 Ta sẽ có kết quả như hình C1 fx eztractriumber B1 A B c D EUR 26 200 3 USD 14 500 Í 145zset54 j USD 5 Bổ sung Vẫn còn chút vấn đề nếu dữ liệu là số thập phân như ô B5 hoặc dữ liệu gồm 2 nhóm số riêng biệt trở lên như ô B4 kết quả sẽ không như ý muốn. 1. Để giải quyết vấn đề số thập phân ptm0412 có 1 hàm khác PHP Code Comment 1 BEGIN TEMPLATE bbcode_php _ Comment 2 END TEMPLATE bbcode_php Comment 3 BEGIN TEMPLATE bbcode_php Function CtoN Mystr As String Optional Dautp As String As Double Dim Kqng Kqtp Neg As Double Kqtam As String Dim Sotp As Double Le As Byte Neg 1 Le 0 For i 1 To Len Mystr tam Mid Mystr i 1 Select Case tam Case 0 To 9 Kqtam Kqtam tam Case - Neg -1 Case Dautp Kqng Kqtam Le 1 Mystr Right Mystr Len Mystr - i Kqtp CtoN Mystr Sotp Kqtp 10 -Len Kqtp End Select Next i Select Case Le Case 0 CtoN IIf Kqtam 0 Kqtam Case 1 CtoN Kqng Sotp End Select CtoN CtoN Neg End Function Ghi chú - Khi sử dụng hàm này bạn sẽ thêm vào hàm 1 tham số cho biết dấu thập phân là dấu nào hay . . Thí dụ CtoN USD . và