lọc số và ký tự trong cùng một chuỗi?

Liên hệ QC
Nhìn mọi người bàn luận về vòng lặp và viết công thức trong VBA mà e thèm quá..ôi cái đầu e nó không tải nổi +-+-+-++-+-+-+. Nếu làm được hoàn toàn bằng hàm Excel mà không cần viết code thì hay quá
 
Lọc số trên mỗi dòng khác nhau.

BIOBABY 724, 50G, COM, 1X1
BIOBABY 724, 100G, COM, 1X1
BIOLACTYL 724, , BOT, 1X14
BIOLACTYL 724, , V NANG, 2X15
BIOTOP (HANKOOK) 724, , V NANG, 10X10
BIPHERAN HANYOUNG 724, 75MG, V NANG, 10X10
BISCAN-G 724, , V NANG, 10X12
BOLINAN 724, 2GR, V NEN, 2X20
LIVERHEL (BORAM) 724, , V NANG, 12X5
BUSCOPAN 724, 10MG, V NEN, 5X10
CARBOGAST 724, , V NEN, 2X15
CARBOSYLANE 724, , V NANG, 8X12

Ví dụ mình có dữ liệu như trên, mình muốn lọc số 724 ra và, mỗi dòng số 724 nằm vị trí không giống nhau. Làm cách nào để lọc số đó ra.
Xin giúp đỡ.
 
BIOBABY 724, 50G, COM, 1X1
BIOBABY 724, 100G, COM, 1X1
BIOLACTYL 724, , BOT, 1X14
BIOLACTYL 724, , V NANG, 2X15
BIOTOP (HANKOOK) 724, , V NANG, 10X10
BIPHERAN HANYOUNG 724, 75MG, V NANG, 10X10
BISCAN-G 724, , V NANG, 10X12
BOLINAN 724, 2GR, V NEN, 2X20
LIVERHEL (BORAM) 724, , V NANG, 12X5
BUSCOPAN 724, 10MG, V NEN, 5X10
CARBOGAST 724, , V NEN, 2X15
CARBOSYLANE 724, , V NANG, 8X12

Ví dụ mình có dữ liệu như trên, mình muốn lọc số 724 ra và, mỗi dòng số 724 nằm vị trí không giống nhau. Làm cách nào để lọc số đó ra.
Xin giúp đỡ.
Đưa file giống thật lên đi, muốn lấy số nào phải có quy luật chứ (ví dụ tất cả con số trước dấu phẩy đầu tiên) chứ nếu theo ví dụ của bạn thì cứ gõ 724 là xong.
 
BIOBABY 724, 50G, COM, 1X1
BIOBABY 724, 100G, COM, 1X1
BIOLACTYL 724, , BOT, 1X14
BIOLACTYL 724, , V NANG, 2X15
BIOTOP (HANKOOK) 724, , V NANG, 10X10
BIPHERAN HANYOUNG 724, 75MG, V NANG, 10X10
BISCAN-G 724, , V NANG, 10X12
BOLINAN 724, 2GR, V NEN, 2X20
LIVERHEL (BORAM) 724, , V NANG, 12X5
BUSCOPAN 724, 10MG, V NEN, 5X10
CARBOGAST 724, , V NEN, 2X15
CARBOSYLANE 724, , V NANG, 8X12

Ví dụ mình có dữ liệu như trên, mình muốn lọc số 724 ra và, mỗi dòng số 724 nằm vị trí không giống nhau. Làm cách nào để lọc số đó ra.
Xin giúp đỡ.

Như bạn miêu tả thì bạn muốn lấy 3 ký tự đứng trước dấu "," đầu tiên phải không ? Nếu đúng vậy thì bạn dùng công thức này:

=RIGHT(LEFT(A1,FIND(",",A1)-1),3)

Với A1 là ô chứa dữ liệu.
 
Đưa file giống thật lên đi, muốn lấy số nào phải có quy luật chứ (ví dụ tất cả con số trước dấu phẩy đầu tiên) chứ nếu theo ví dụ của bạn thì cứ gõ 724 là xong.

Mình đã up lên, số 724 không theo thứ tự nhất định. Nằm ở nhiều vị trí khác nhau. Có những dòng không chứa số 724, quan trọng là mình muốn lọc ra nhưng bó tay rồi.
 

File đính kèm

  • Items.rar
    142.1 KB · Đọc: 11
Mình đã up lên, số 724 không theo thứ tự nhất định. Nằm ở nhiều vị trí khác nhau. Có những dòng không chứa số 724, quan trọng là mình muốn lọc ra nhưng bó tay rồi.
Tức là dòng nào có số 724 thì lấy, không có thì thôi, đúng không?
Nếu đúng vậy thì đây là bài toán tìm sự tồn tại của 1 chuổi nhỏ trong chuổi lớn ---> Có thể dùng COUNTIF để kiểm tra
Ví dụ: =COUNTIF(A2,"*724*")
Còn nếu bạn muốn TRÍCH LỌC SỐ nào đó thì bắt buộc phải có 1 quy luật đi kèm
 

File đính kèm

  • Items_2.rar
    11.2 KB · Đọc: 21
Tức là dòng nào có số 724 thì lấy, không có thì thôi, đúng không?
Nếu đúng vậy thì đây là bài toán tìm sự tồn tại của 1 chuổi nhỏ trong chuổi lớn ---> Có thể dùng COUNTIF để kiểm tra
Ví dụ: =COUNTIF(A2,"*724*")
Còn nếu bạn muốn TRÍCH LỌC SỐ nào đó thì bắt buộc phải có 1 quy luật đi kèm

Nếu dùng công thức: =RIGHT(LEFT(A1,FIND(",",A1)-1),3) của bạn mhung12005 thì mình có thể lọc được 2 mã 724 và 1 mã khác bất kỳ cùng một lúc.
Còn công thức =COUNTIF(A2,"*724*") của bạn ndu96081631 thì mình chỉ lọc được 1 mã 724 thôi. Nếu lọc từ 2 mã trở lên thì thế nào?
 
XIN TRỢ GIÚP TỪ GPE
Tôi có dãy kí tự Ở CELL(A1) LÀ: "H19ST...;Q18LM...;..." Bây giờ tôi muốn ở các cell(b1) là: H19S, ở CELL(B2) LÀ H19T;...;(B4)làQ18L;(B5)là:Q18M...
Rất mong nhận được sự giúp đỡ
 
XIN TRỢ GIÚP TỪ GPE
Tôi có dãy kí tự Ở CELL(A1) LÀ: "H19ST...;Q18LM...;..." Bây giờ tôi muốn ở các cell(b1) là: H19S, ở CELL(B2) LÀ H19T;...;(B4)làQ18L;(B5)là:Q18M...
Rất mong nhận được sự giúp đỡ

Hãy miêu tả dữ liệu vì ví dụ có thể do ngẫu nhiên mà gây hiểu lầm cho người khác. Tôi cho ví dụ
Bạn liệt kê dữ liệu và tôi thấy là "mỗi cụm" gồm 1 chữ cái (phải thế hay do ngẫu nhiên?) và sau đó là số có 2 chữ số (phải thế hay do ngẫu nhiên? Số chữ số tùy ý?), tiếp theo là chuỗi chữ cái (do ngẫu nhiên hay có thể vd. H19STUV1X để rồi tách ra: H19S, H19T, H19U, H19V, H191, H19X???). Sau ";" là chữ cái của mỗi cụm hay có thể có dấu cách?
Những gì bạn không nói thì mãi mãi chỉ nằm trong đầu bạn. Người khác có thể đoán, mà đã là trò đoán thì bao giờ cũng có xác xuất sai. Cho dù lớn hay nhỏ nhưng chắc chắn > 0.
 
Xin trợ giúp

NHỜ ANH EM GPE GIÚP ĐỠ
Chuổi kí tự là có qui luật
"H19STAB;Q18LM...;ANH7CDR...;... Muốn TÁCH CHO vào các ô có kết quả lần lượt là H19S, H19T, H19A, Q18L, Q18M,..., ANH7C,ANH7D,ANH7R, ...Số lượng chữ cái sau mỗi chữ số là bất kì. PHẦN KÍ TỰ MÀU ĐỎ GIỮ NGUYÊN, NẾU HẾT SỐ CHỮ CÁI SAU NÓ THÌ CHUYỂN SANG PHẦN KÍ TỰ MÀU ĐỎ TIẾP THEO.
CẢM ƠN MỌI NGƯỜI

 
Lần chỉnh sửa cuối:
NHỜ ANH EM GPE GIÚP ĐỠ
Chuổi kí tự là có qui luật
"H19STAB;Q18LM...;ANH7CDR...;... Muốn TÁCH CHO vào các ô có kết quả lần lượt là H19S, H19T, H19A, Q18L, Q18M,..., ANH7C,ANH7D,ANH7R, ...Số lượng chữ cái sau mỗi chữ số là bất kì. PHẦN KÍ TỰ MÀU ĐỎ GIỮ NGUYÊN, NẾU HẾT SỐ CHỮ CÁI SAU NÓ THÌ CHUYỂN SANG PHẦN KÍ TỰ MÀU ĐỎ TIẾP THEO.
CẢM ƠN MỌI NGƯỜI

Bạn thử xem file này có đúng như ý bạn không nhé
Không biết cột B của bạn dữ liệu nhập trực tiếp hay cho phép Copy & dán 1 hoặc nhiều cell cùng lúc nữa
Thôi kệ, có gì chưa đúng thì sửa sau vậy
Thân
 

File đính kèm

  • Tach(2).xls
    33 KB · Đọc: 24
Xếp các chuổi giống nhau vào cùng một cột có điều kiện

Đầu tiên xin chân thành cảm ơn concogia (100% như ý rồi đúng là gội rồi mới cạo) và Nhờ anh em GPE giúp đỡ lần nữa "XẾP CÁC CHUỔI CÓ MÃ SỐ GIỐNG NHAU VÀO CÙNG MỘT CỘT CÓ ĐIỀU KIỆN" theo mô tả trong file sau đây.
trân trọng cảm ơn
 
Lần chỉnh sửa cuối:
Đầu tiên xin chân thành cảm ơn concogia (100% như ý rồi đúng là gội rồi mới cạo) và Nhờ anh em GPE giúp đỡ lần nữa "XẾP CÁC CHUỔI CÓ MÃ SỐ GIỐNG NHAU VÀO CÙNG MỘT CỘT CÓ ĐIỀU KIỆN" theo mô tả trong file sau đây.
trân trọng cảm ơn
Thử trong file này xem nhé
Chọn sheet "DICH" xem kết quả
Thân
 

File đính kèm

  • NH_ GPE.rar
    9.4 KB · Đọc: 15
Cảm ơn bạn concogia, xin bạn thêm vài điều kiện như file kèm sau.
cảm ơn nhiều
 
Cảm ơn bạn concogia, xin bạn thêm vài điều kiện như file kèm sau.
cảm ơn nhiều
Những Mã ở kết quả là mình biết trước hay tìm được Mã nào gán Mã đó ??? Trong bài mình cứ tìm được Mã nào thì gán vào kết quả Mã đó
Sao bạn không đưa các kiểu dữ liệu lên một lần thôi nhỉ ???
Chọn sheet "DICH" xem kết quả
Thân
 

File đính kèm

  • NH_ GPE1111111.rar
    10.4 KB · Đọc: 10
Chào bác, chúc bác sức khỏe và nhờ bác giúp file có các kiểu dữ liệu mô tả như file sau
Cảm ơn bác!
 
Chào bác, chúc bác sức khỏe và nhờ bác giúp file có các kiểu dữ liệu mô tả như file sau
Cảm ơn bác!
Bác......nào ???
Má ơi, nhỏ lớn mới thấy cái dữ liệu gì đâu......thấy mà phát ớn
Híc, viết xong hổng biết trúng trật nhưng nhìn lại cũng chẳng biết mình viết cái gì nữa
Nhập vào cột B xong bạn kiểm tra giúp nhé, trúng thì tốt, trật thì ........nhờ Thầy ndu viết giúp nhé, mình muốn "tèo" rồi
Phải Híc 3 cái mới đủ, uống mấy lon về viết xong cái code này.......tỉnh luôn. Phí của "giời" thật
Híc, híc, híc :''":''":''"
 

File đính kèm

  • Tach(2)(1).rar
    14.2 KB · Đọc: 19
Chào bác, chúc bác sức khỏe và nhờ bác giúp file có các kiểu dữ liệu mô tả như file sau
Cảm ơn bác!

Bạn có thói quen là không miêu tả dữ liệu nên tôi thử đoán. Nếu đúng thì tốt, không đúng thì tôi kết thúc ở đây.
Đoán: các cụm từ được phân cách bởi dấu ";". Mỗi cụm từ gồm có: một số chữ cái và tiếp sau là "_", sau nữa là một số tự nhiên nào đó, tiếp theo là một loạt các cụm con (ít nhất là 1) - mỗi cụm con gồm 1 chữ cái (phải là 1 hay hay vd. ngẫu nhiên nó thế?) và sau nó là n chữ số với n ≥ 0. Cuối cùng là một số tự nhiên ở trong ngoặc.
Nếu đúng thế thì code cho sheet "mô tả"
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim objRegExp As Object, match_coll As Object, chuoi, Arr
Dim k As Long, n As Long, m As Long, index As Long, prefix As String, so_lap As Long, match_count As Long, so_text As String
    If Not Intersect(Target, Range("B3:B10000")) Is Nothing Then
        ReDim Arr(1 To 1)
        chuoi = Split(Target, ";")
        Set objRegExp = CreateObject("vbscript.regexp")
        With objRegExp
            .Global = True
            .IgnoreCase = True
            .Pattern = ".+_\d+|[A-Z]\d*|\(\d+"
        End With
        For k = LBound(chuoi) To UBound(chuoi)
            Set match_coll = objRegExp.Execute(chuoi(k))
            prefix = match_coll.Item(0)
            match_count = match_coll.Count
            so_text = match_coll.Item(match_count - 1)
            so_text = Right(so_text, Len(so_text) - 1)
            so_lap = CLng(so_text) \ (match_count - 2)
            ReDim Preserve Arr(1 To UBound(Arr) + CLng(so_text))
            For n = 1 To match_count - 2
                For m = 1 To so_lap
                    Arr(index + (n - 1) * so_lap + m) = prefix & match_coll.Item(n)
                Next m
            Next n
            index = index + CLng(so_text)
        Next k
        ReDim Preserve Arr(1 To UBound(Arr) - 1)
        Target.Offset(, 1).Resize(, 254).ClearContents
        Target.Offset(, 1).Resize(, UBound(Arr)) = Arr
    End If
End Sub
 
Web KT

Bài viết mới nhất

Back
Top Bottom