Tách số ra khỏi chuỗi trong Excel
  1. Home
  2. Phần mềm
  3. Tách số ra khỏi chuỗi trong Excel
Nguyễn Văn Luyến Nguyễn Văn Luyến 8 năm trước

Tách số ra khỏi chuỗi trong Excel

Trong quá trình làm việc với Excel mình có gặp một số trường hợp yêu cầu tách chỉ lấy phần số trong 1 chuỗi cho trước, nay đăng bài này chia sẻ với các bạn cách làm này. Bài viết dưới đây hướng dẫn chi tiết cách tách số từ chuỗi cho trước trong Excel.

Có 2 cách tách số:

Trường hợp 1: Tách số từ chuỗi và lấy giá trị dương.

Trường hợp 2: Tách số từ chuỗi và lấy cả giá trị âm và dương.

1. Tách số từ chuỗi và lấy giá trị dương

Bước 1: Mở File Excel cần tách số -> Nhấn tổ hợp phím Alt + F11-> cửa sổ VBA xuất hiện -> Vào tab Insert -> Module.

Module

Bước 2: Tại cửa sổ lệnh nhập đoạn Code sau:

Nhập 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

Chú ý: Bạn ghi nhớ tên hàm này nhé vì khi trở về File Excel phải sử dụng tới nó.

Bước 3: Sau khi nhập xong kích chọn Save (do chứa macro nên khi lưu hiển thị hộp thoại thông báo bạn cứ chọn OK nhé) -> Quay trở lại File Excel tìm đến hàm như hình vẽ:

ExtractNumber

Bước 4: Copy công thức cho các ô còn lại có kết quả sau:

Kết quả

2. Tách số từ chuỗi và lấy cả giá trị âm và dương

Bước 1: Mở File Excel cần tách số -> Nhấn tổ hợp phím Alt + F11 -> cửa sổ VBA xuất hiện -> Vào tab Insert -> Module.

Module 2

Bước 2: Tại cửa sổ lệnh nhập đoạn Code sau:

Nhập Code 2

Private Function SuperTrim(TheStr As String)
Dim Temp As String, DoubleSpase As String
DoubleSpase = Chr(32) & Chr(32)
Temp = Trim(TheStr)
Temp = Replace(Temp, DoubleSpase, Chr(32))
Do Until InStr(Temp, DoubleSpase) = 0
Temp = Replace(Temp, DoubleSpase, Chr(32))
Loop
SuperTrim = Temp
End Function

Public Function Tach_So(strText As String)
Dim strText_1 As String
Dim subText() As String, so() As Double
Dim i As Integer, j As Integer, k As Integer, m As Integer
strText = SuperTrim(strText)
subText = Split(strText, " ")
For i = 0 To UBound(subText)
For j = 1 To Len(subText(i))
k = 0
If IsNumeric(Mid(subText(i), j, 1)) _
Or (Mid(subText(i), j, 1) = "-" And IsNumeric(Mid(subText(i), j + 1, 1))) Then
k = j
Exit For
End If
Next j
If k <> 0 Then
m = m + 1
strText_1 = Val(Mid(subText(i), k))
ReDim Preserve so(1 To m) As Double
so(m) = strText_1
End If
Next i
If index > 0 And index <= m Then
Tach_So = so(m)
Else
Tach_So = ""
End If
End Function

Chú ý: Ghi nhớ tên hàm “”Tach_so()”.

Bước 3: Kích chọn Save bạn cứ chọn OK nhé. Quay trở lại file Excel chọn hàm Tach_so() như hình vẽ:

Chọn hàm

Bước 4: Hàm Tach_so() chỉ có 1 tham số là vị tí ô cần tách.

Vị trí ô cần tách

Bước 5: Copy công thức cho các ô còn lại ta có kết quả:

Kết quả 2

Như vậy tách được cả giá trị âm và dương. Và dấu âm ở vị trí đầu tiên của ô đều lấy được.

Chú ý: Các hàm trên chỉ áp dụng với dãy chứa 1 chuỗi kí tự số liền nhau. Trường hợp dữ liệu là nhiều chuỗi kí tự số khác nhau cách nhau bởi những kí tự chữ cái thì giá trị trả về là chuỗi kí tự số đầu tiên.

Chúc các bạn thành công!

Nguồn: //thuthuatphanmem.vn/tach-so-ra-khoi-chuoi-trong-excel/

61 lượt xem | 0 bình luận
Luôn luôn lắng nghe, lâu lâu mới hiểu

Bình luận gần đây

//rongcon.net
Nguyễn Văn Luyến 6 tháng trước
Ưng dụng này rất hay cho người hay thực hiện các biểu mâu, thư mời,...
//rongcon.net
Nguyễn Văn Luyến 6 tháng trước
Chuẩn bị lại lên giá
//rongcon.net
Chuyển Đổi Số 11 tháng trước
Có trang nguồn mình tải á, bạn qua trang đó xem thử. Mình cài được bình thường á
//rongcon.net
Chuyển Đổi Số 11 tháng trước
Mỉnh cũng thấy cái gì hay hay lưu lại trên trang cá nhân khi nào cần lấy ra dùng thôi à. Cảm ơn bạn nhiều!
//rongcon.net
quang tuấn 11 tháng trước
ok cám ơn add
//rongcon.net
Đàm kiên 1 năm trước
sao không thấy hướng dẫn khắc phục lỗi the macro vậy
//rongcon.net
Đàm kiên 1 năm trước
file tải về chỉ có 3 file hướng dẫn chứ không có file cài đặt nhé
//rongcon.net
Nguyễn Văn Luyến 1 năm trước
Bài viết hay
ZaloMessengerEmail
Đồng ý Cookie
Trang web này sử dụng Cookie để nâng cao trải nghiệm duyệt web của bạn và cung cấp các đề xuất được cá nhân hóa. Bằng cách chấp nhận để sử dụng trang web của chúng tôi