Mục lục bài viết
Hàm Tách Số Ra Khỏi Chuỗi Trong Excel
Trong Excel, bạn có thể sử dụng hàm TRÍCHXUẤT để tách số ra khỏi một chuỗi.
Cú pháp của hàm TRÍCHXUẤT như sau:
=TRÍCH.XUẤT(Chuỗi, Bắt_đầu, Độ_dài)
Trong đó:
– Chuỗi là giá trị cần tách số ra.
– Bắt_đầu là vị trí bắt đầu tách.
– Độ_dài là số ký tự muốn tách ra.
Ví dụ, nếu bạn có một chuỗi “123abc” và muốn tách số ra, bạn có thể sử dụng hàm TRÍCHXUẤT như sau:
=TRÍCH.XUẤT(“123abc”, 1, 3)
Kết quả sẽ là số “123”.
Nếu bạn muốn tách số từ cuối chuỗi, bạn cần tính độ dài của chuỗi ban đầu và sử dụng công thức như sau:
=TRÍCH.XUẤT(Chuỗi, Độ_dài_chuỗi – Độ_dài_số + 1, Độ_dài_số)
Ví dụ, nếu bạn có chuỗi “abc456” và muốn tách số từ cuối chuỗi, bạn có thể sử dụng hàm TRÍCHXUẤT như sau:
=TRÍCH.XUẤT(“abc456”, LEN(“abc456”) – 3 + 1, 3)
Kết quả sẽ là số “456”.
Hy vọng câu trả lời này hữu ích với bạn!
Cách tách số và chữ ra khỏi chuỗi trong Excel (Không cần VBA)
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.
Bước 2: Tại cửa sổ lệnh nhập đoạn Code sau:
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ẽ:
Bước 4: Copy công thức cho các ô còn lại có kết quả sau:
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.
Bước 2: Tại cửa sổ lệnh nhập đoạn Code sau:
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ẽ:
Bước 4: Hàm Tach_so() chỉ có 1 tham số là vị tí ô cần tách.
Bước 5: Copy công thức cho các ô còn lại ta có kết quả:
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!