Lọc và cắt chuỗi trong excel (1 người xem)

  • Thread starter Thread starter vtsu23
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

vtsu23

Thành viên mới
Tham gia
27/3/14
Bài viết
13
Được thích
2
Chào các ACE mình có một vấn đề nhưng tìm mãi không ra cách để giải quyết trường hợp này. mình có 1 file excel nó như file mình đính kèm:
Vấn đề là trong file này có cột tên thuốc mà trong mõi ô của cột đó thì có nhiều loại thuốc, có khi một loại thuốc xuất hiện 2 lần trong ô mình muốn lấy số lượng của 1 loại thuốc trong đó ra thì phải làm sau?
ACE chú ý dùm trong ô thuốc đó có 1 loại thuốc xuất hiện 2 lần nhe và khi mình lấy số lượng thuốc ra thì phải + số lượng của loại thuốc có xuất hiện 2 lần.
VD: trong ô A1 có 2 loại thuốc là: (Acetyl leucin(Aleucin 500mg)(2013) (10 viên); Alphachymotrypsin 4.2mg(2014) (10 viên);)và ô A2 củng là 2 loại nhưng bì trùng 1 loại thuốc là: (Acetyl leucin(Aleucin 500mg)(2013) (10 viên); Alphachymotrypsin 4.2mg(2014) (3 viên);Alphachymotrypsin 4.2mg(2014) (8 viên);)
Kết quả mình cần tìm là số lượng thuốc Alphachymotrypsin 4.2mg(2014) hiện ra ở cột B1:10 và B2: 11
 

File đính kèm

Số lượng 1 lần thì công thức có thể giải quyết cho bạn còn nếu có 2 lần thì bạn dùng hàm tự tạo vậy

Mã:
Function Thuoc(Rng As Range, Crit As Range)
    Crit1 = Replace(Replace(Crit.Text, "(", "\("), ")", "\)")
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = Crit1 & "\s\((\d+)"
        For Each m In .Execute(Rng.Text)
            Thuoc = Thuoc + CLng(m.submatches(0))
        Next
    End With
End Function

Cách thêm hàm tự tạo thì bạn đọc diễn đàn, Cách dùng thì thế này
Mã:
=thuoc(A2,B2)
 
Chào các ACE mình có một vấn đề nhưng tìm mãi không ra cách để giải quyết trường hợp này. mình có 1 file excel nó như file mình đính kèm:
Vấn đề là trong file này có cột tên thuốc mà trong mõi ô của cột đó thì có nhiều loại thuốc, có khi một loại thuốc xuất hiện 2 lần trong ô mình muốn lấy số lượng của 1 loại thuốc trong đó ra thì phải làm sau?
ACE chú ý dùm trong ô thuốc đó có 1 loại thuốc xuất hiện 2 lần nhe và khi mình lấy số lượng thuốc ra thì phải + số lượng của loại thuốc có xuất hiện 2 lần.
VD: trong ô A1 có 2 loại thuốc là: (Acetyl leucin(Aleucin 500mg)(2013) (10 viên); Alphachymotrypsin 4.2mg(2014) (10 viên);)và ô A2 củng là 2 loại nhưng bì trùng 1 loại thuốc là: (Acetyl leucin(Aleucin 500mg)(2013) (10 viên); Alphachymotrypsin 4.2mg(2014) (3 viên);Alphachymotrypsin 4.2mg(2014) (8 viên);)
Kết quả mình cần tìm là số lượng thuốc Alphachymotrypsin 4.2mg(2014) hiện ra ở cột B1:10 và B2: 11
Góp thêm một mẫu nữa bạn tham khảo xem sao
Mã:
Public Function Dem(Goc, Dk)
With CreateObject("vbscript.regexp")
.Global = 1
.Pattern = "[^\+]*(\+\d+)[^\+]*"
Dem = Evaluate(.Replace(Replace(Goc, Dk & " " & "(", "+"), "$1"))
End With
End Function
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom