tách số ở giữa chuỗi kí tự ? ai biết chỉ giúp.

Liên hệ QC

saclo35

Thành viên mới
Tham gia
28/7/10
Bài viết
1
Được thích
0
@$@!^%mình gặp rắc rối với bài tập sau
có mã chứng từ là CPU-10-K hoặc ĐR-109-S . làm sao để tách được số ở giữa dấu "-" vậy các bạn. ai pro giúp tớ với. thanks! @$@!^%
 
Tạm dùng công thức loằng ngoằng này vậy. Giả sử ô A1 chứa chuỗi cần tách:

=MID(A1,FIND("-",A1,1)+1,FIND("-",A1,FIND("-",A1,1)+1)-FIND("-",A1,1)-1)
 
A1 là ô chứa chuỗi nguồn thì:
=MID(A1;FIND("-";A1)+1;FIND("-";A1;FIND("-";A1)+1)-FIND("-";A1)-1)

Post xong thì thấy cụ sealand trả lời rồi. hehe
 
Lần chỉnh sửa cuối:
Máy của Songmai thiết lập trong Control Parnel dấu thập phân là ",". Vậy trong công thức phải dùng dấu ";" thay dấu ","
 
@$@!^%mình gặp rắc rối với bài tập sau
có mã chứng từ là CPU-10-K hoặc ĐR-109-S . làm sao để tách được số ở giữa dấu "-" vậy các bạn. ai pro giúp tớ với. thanks! @$@!^%

Bạn thử code này (học lỏm của Ndu)

Mã:
Sub tach()
    For Each cls In [b2].Resize(1000).SpecialCells(2)
        arr = Split(cls, "-")
        cls(1, 2) = arr(1)
    Next
End Sub
 

File đính kèm

  • tachSo.xls
    23.5 KB · Đọc: 66
Bạn thử code này (học lỏm của Ndu)

Mã:
Sub tach()
    For Each cls In [b2].Resize(1000).SpecialCells(2)
        arr = Split(cls, "-")
        cls(1, 2) = arr(1)
    Next
End Sub
Sao anh không tạo thành 1 Function cho dễ dùng nhỉ?
- Có thể dùng Split
- Có thể dùng InStr kết hợp với InStrRev
--------------
Ngoài ra, với bài toán trên thì cách dễ nhất là dùng Text to Columns (trong menu Data)
 
Lần chỉnh sửa cuối:
@$@!^%mình gặp rắc rối với bài tập sau
có mã chứng từ là CPU-10-K hoặc ĐR-109-S . làm sao để tách được số ở giữa dấu "-" vậy các bạn. ai pro giúp tớ với. thanks! @$@!^%
Nếu dữ liệu đúng như thế này thì có ..cả đống cách lấy số ra
Mã:
Public Function LASO(Vung As Range, Dk) As Long
    Dim Tam
        Tam = Split(Vung, Dk)
        LASO = Tam(1)
End Function
Cú pháp: LASO(Cell dữ liệu,"-")
Hoặc là
Mã:
Public Function LASO1(Vung As Range) As Long
    Dim Tam, I
       For I = 1 To Len(Vung)
           If IsNumeric(Mid(Vung, I, 1)) Then Tam = Tam & Mid(Vung, I, 1)
       Next
    LASO1 = Val(Tam)
End Function
Cú pháp: LASO1(Cell dữ liệu)
"Zì" cũng được
Mã:
Public Function LASO2(Vung As Range, Dk) As Long
 LASO2 = Val(Mid(Vung, InStr(1, Vung, Dk) + 1, InStrRev(Vung, Dk) - InStr(1, Vung, Dk)))
End Function
Cú pháp: LASO2(Cell dữ liệu,"-")
 
Cám ơn mọi người, cái này minh đang cần tìm, tiện đây nhờ các bác chỉ giúp cũng tách số nhưng hơi khác một chút là: ví dụ có ô ký tự là 21x31 tách ra 1 ô có số 21 và 1 ô có số 31 thì làm thế nào
 
Cám ơn mọi người, cái này minh đang cần tìm, tiện đây nhờ các bác chỉ giúp cũng tách số nhưng hơi khác một chút là: ví dụ có ô ký tự là 21x31 tách ra 1 ô có số 21 và 1 ô có số 31 thì làm thế nào

Cái này không cần VBA hay công thức mà chỉ cần dùng cái có sẵn trong Excel (Text to columns)
1. Chọn vùng dữ liệu cần tách
2. Vào Data - Text to columns - Click vào Delimited - Next - Click vào Other (bạn gõ x vào ô trống)
3. Finish
 
Cái này không cần VBA hay công thức mà chỉ cần dùng cái có sẵn trong Excel (Text to columns)
1. Chọn vùng dữ liệu cần tách
2. Vào Data - Text to columns - Click vào Delimited - Next - Click vào Other (bạn gõ x vào ô trống)
3. Finish
Cám ơn bạn, mình biết thêm được 1 cách làm, nhưng cách này trong trường hợp hiển thị kết quả ở ô khác, khi thay đổi giá trị ô gốc thì ô kết quả không thay đổi được.
Mình cũng đã tìm trên diễn đàn này và tìm được một đoạn code sau rất đúng ý mình, gửi các bác tham khảo

bài của ptm0412Tách số từ chuỗi phức tạp

http://www.giaiphapexcel.com/forum/showthread.php?23500-tách-riêng-số-từ-chuỗi/page4

Chỉ có một điều không hiểu sao mình không thể lưu code này vào file của minh được, mặc dù đã để enable Macro, mỗi lần mở file lại phải insert code mới dùng được, hay do file minh làm trên Excel 2007. có bác nào chỉ giúp với
 
Cám ơn bạn, mình biết thêm được 1 cách làm, nhưng cách này trong trường hợp hiển thị kết quả ở ô khác, khi thay đổi giá trị ô gốc thì ô kết quả không thay đổi được.
Mình cũng đã tìm trên diễn đàn này và tìm được một đoạn code sau rất đúng ý mình, gửi các bác tham khảo

bài của ptm0412Tách số từ chuỗi phức tạp

http://www.giaiphapexcel.com/forum/showthread.php?23500-tách-riêng-số-từ-chuỗi/page4

Chỉ có một điều không hiểu sao mình không thể lưu code này vào file của minh được, mặc dù đã để enable Macro, mỗi lần mở file lại phải insert code mới dùng được, hay do file minh làm trên Excel 2007. có bác nào chỉ giúp với
Trong EC 2007, nếu trong file có sử dụng macro bạn phải lưu file với địng dạng Xlsm, bạn thử lại xem sao
 
Web KT
Back
Top Bottom