Thứ Bảy, 8 tháng 11, 2014

Lấy số trong excel

1. Dùng

=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ố

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 :)

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é!