Bỏ ký tự đầu và cuối của chuỗi

Liên hệ QC

baodaisoi

Thành viên mới
Tham gia
8/11/12
Bài viết
5
Được thích
0
Điểm
0
Nơi ở
TP. Cao Lãnh - Đồng Tháp
Nghề nghiệp
Sinh viên
Tình hình là mình đã tìm các bài viết khác trong chuyên mục này mà honk thấy nên POst bài hỏi mấy bạn.
Tình hình mình cần là lấy các chuỗi số trong chuỗi:

PHP:
B4: QB102S
B5: DD33L
B6: LN8L
B7: QT9L
B8: DT150S
...
Có ai tách số từ cột B không?
Cái đề thi Tin A, nên mình nghĩ chỉ mấy cái hàm thông dụng thôi!

Cụ thể là Files đính kèm:
 

File đính kèm

  • KE TOAN THANH LY HANG TON KHO.xls
    15.5 KB · Đọc: 16
Tình hình là mình đã tìm các bài viết khác trong chuyên mục này mà honk thấy nên POst bài hỏi mấy bạn.
Tình hình mình cần là lấy các chuỗi số trong chuỗi:

PHP:
B4: QB102S
B5: DD33L
B6: LN8L
B7: QT9L
B8: DT150S
...
Có ai tách số từ cột B không?
Cái đề thi Tin A, nên mình nghĩ chỉ mấy cái hàm thông dụng thôi!

Cụ thể là Files đính kèm:
Tình hình là công thức tại C4=MID(B4;3;LEN(B4)-3)
 
@vihoai: ^^'! Củm mơn bạn nhìu hen!
Gút gút!
Tại mình honk bít cái Hàm "Len", lần đầu thấy nó! :D

Có thể Stop bài này đc ùi áh! -\\/.
 
Tình hình sẳn đây hỏi @viehoai luôn nhé!

PHP:
B4: QB102SS
B5: DD33L
B6: LN8LL
B7: QT9LLLL
B8: DT150S
...

Nếu như thế thì mình làm sao tách chữ số ra được?
^^'?
 
Tình hình sẳn đây hỏi @viehoai luôn nhé!

PHP:
B4: QB102SS
B5: DD33L
B6: LN8LL
B7: QT9LLLL
B8: DT150S
...

Nếu như thế thì mình làm sao tách chữ số ra được?
^^'?

Thử vầy xem:
Mã:
=MID(B4,3,LOOKUP(10,1*MID(B4,ROW($1:$255),1),ROW($1:$255))-2)
 
Thử vầy xem:
Mã:
=MID(B4,3,LOOKUP(10,1*MID(B4,ROW($1:$255),1),ROW($1:$255))-2)
Bác giúp em lập công thức tổng quát tương tự như trên để có thể tách lấy số khi số ở bất kỳ vị trí nào và có bao nhiêu số cũng được không chỉ dành cho trường hợp số ở sau 2 ký tự như trên ??
 
Bác ndu cho em ý kiến ở bài #9 với. Vì bác là tác giả của công thức mà!

Vầy thử xem:
Mã:
=MID(B4,LOOKUP(10,1*MID(B4,ROW($1:$255),1),ROW($1:$255))-COUNT(1*MID(B4,ROW($1:$255),1))+1,COUNT(1*MID(B4,ROW($1:$255),1)))
Công thức mảng nha! Phải Ctrl + Shift + Enter
 
Vầy thử xem:
Mã:
=MID(B4,LOOKUP(10,1*MID(B4,ROW($1:$255),1),ROW($1:$255))-COUNT(1*MID(B4,ROW($1:$255),1))+1,COUNT(1*MID(B4,ROW($1:$255),1)))
Công thức mảng nha! Phải Ctrl + Shift + Enter
OK bác ah
Nhưng công thức có thể làm cho 1 trường hợp như thế này không : aabh2436ngm435 (nghĩa là có 1 hoặc nhiều chữ cái xen lẫn giữa các số)!?
 
Bài toán TÁCH SỐ có cả đóng trên diễn đàn rồi (tôi post đã lâu) ---> Sao bạn không tự tìm đi
Chẳng hạn là bài này:
http://www.giaiphapexcel.com/forum/...-mừng-sinh-nhật-GPE-lần-5&p=317705#post317705

"Có cả đống" thì chắc là có nhưng tôi không tìm đọc (hơi lười) nên không biết cái tôi định nói đã có chưa. Thôi thì cứ liều vậy.

Thêm điều kiện chút: "Cho một chuỗi ký tự gồm chữ số và không chữ số (dấu ".", "," không là các dấu thập phân). Hãy tách ra các chuỗi có dạng số tự nhiên mà trong 3 chữ số đầu phải có ít nhất 1 chữ số 2"

Vd. chuỗi: "2abc+_*/?12234def1342gh234567 11289 5678 opq000223rst00289 xyz"
Kết quả: 2, 12234, 234567, 11289, 00289
-------------
VBA, công thức đều được
 
"Có cả đống" thì chắc là có nhưng tôi không tìm đọc (hơi lười) nên không biết cái tôi định nói đã có chưa. Thôi thì cứ liều vậy.

Thêm điều kiện chút: "Cho một chuỗi ký tự gồm chữ số và không chữ số (dấu ".", "," không là các dấu thập phân). Hãy tách ra các chuỗi có dạng số tự nhiên mà trong 3 chữ số đầu phải có ít nhất 1 chữ số 2"

Vd. chuỗi: "2abc+_*/?12234def1342gh234567 11289 5678 opq000223rst00289 xyz"
Kết quả: 2, 12234, 234567, 11289, 00289
-------------
VBA, công thức đều được
Một cách "xi-ma-chao" đây
Mã:
Public Function Tach(Cll As Range) As String
    Dim Re As Object, ReTim As Object, A, Kq
    Set Re = CreateObject("vbscript.regexp")
    With Re
        .Global = True
        .Pattern = "[0-9]+"
    End With
        Set ReTim = Re.Execute(Cll)
            For Each A In ReTim
                If InStr(Left(A.Value, 3), "2") Then Kq = Kq & A.Value & ", "
            Next A
    Tach = Left(Kq, Len(Kq) - 2)
End Function
Mình biết pattern có thể tìm được ngay kết quả, nhưng......cóc biết viết làm sao, nhưc cái đầu quá, tới giờ nhậu dzồi
Để tối về tính tiếp
Híc
 

File đính kèm

  • TachSo.xls
    22 KB · Đọc: 3
Một cách "xi-ma-chao" đây
Mã:
Public Function Tach(Cll As Range) As String
    Dim Re As Object, ReTim As Object, A, Kq
    Set Re = CreateObject("vbscript.regexp")
    With Re
        .Global = True
        .Pattern = "[0-9]+"
    End With
        Set ReTim = Re.Execute(Cll)
            For Each A In ReTim
                If InStr(Left(A.Value, 3), "2") Then Kq = Kq & A.Value & ", "
            Next A
    Tach = Left(Kq, Len(Kq) - 2)
End Function
Mình biết pattern có thể tìm được ngay kết quả, nhưng......cóc biết viết làm sao, nhưc cái đầu quá, tới giờ nhậu dzồi
Để tối về tính tiếp
Híc

Đang bàn về công thức mà anh!
 
Một cách "xi-ma-chao" đây
Mã:
Public Function Tach(Cll As Range) As String
    Dim Re As Object, ReTim As Object, A, Kq
    Set Re = CreateObject("vbscript.regexp")
    With Re
        .Global = True
        .Pattern = "[0-9]+"
    End With
        Set ReTim = Re.Execute(Cll)
            For Each A In ReTim
                If InStr(Left(A.Value, 3), "2") Then Kq = Kq & A.Value & ", "
            Next A
    Tach = Left(Kq, Len(Kq) - 2)
End Function
Mình biết pattern có thể tìm được ngay kết quả, nhưng......cóc biết viết làm sao, nhưc cái đầu quá, tới giờ nhậu dzồi
Để tối về tính tiếp
Híc

Vậy thì chúng ta kiên nhẫn đợi cho tới khi cuộc nhậu tàn và cái đầu bớt nhức đây.
À, dùng Instr hả. Thế thì ta phát biểu lại bài:

"Cho một chuỗi ký tự gồm chữ số và không chữ số (dấu ".", "," không là các dấu thập phân). Hãy tách ra các chuỗi có dạng số tự nhiên mà đoạn đầu - độ dài tùy ý - có dạng AA, trong đó A là 1 chuỗi chữ số"

Vd. chuỗi: "2abc+_*/?12234def1313gh234567 11119 5678 opq000223rst00289 xyz"
Kết quả: 1313, 11119, 000223, 00289
 
Web KT
Back
Top Bottom