Xin giúp đỡ về cách tìm kiếm tên theo mã gộp

hml89

Thành viên tiêu biểu
Tham gia ngày
14 Tháng chín 2012
Bài viết
416
Được thích
311
Điểm
410
Kính chào các Thầy và anh,chị,em diễn đàn GPE.

Em đang gặp một rắc rối khi tìm kiếm tên theo mã. Đó là những mã gộp thì em đang không biết làm công thức gì để có thể ghi tên đầy đủ.
Chi tiết em có ghi trong file gửi kèm.
Mong nhận được sự giúp đỡ của cả nhà.

Em cám ơn!
 

File đính kèm

ngo ly

Thành viên mới
Tham gia ngày
23 Tháng ba 2017
Bài viết
27
Được thích
11
Điểm
165
Kế hoạch bạn lên có dựa trên tiêu thức nào không?
 

huuthang_bd

Chuyên gia GPE
Tham gia ngày
10 Tháng chín 2008
Bài viết
7,957
Được thích
9,299
Điểm
860
Nơi ở
TP.HCM
Kính chào các Thầy và anh,chị,em diễn đàn GPE.

Em đang gặp một rắc rối khi tìm kiếm tên theo mã. Đó là những mã gộp thì em đang không biết làm công thức gì để có thể ghi tên đầy đủ.
Chi tiết em có ghi trong file gửi kèm.
Mong nhận được sự giúp đỡ của cả nhà.

Em cám ơn!
Trường hợp này phải dùng VBA.
 

ngo ly

Thành viên mới
Tham gia ngày
23 Tháng ba 2017
Bài viết
27
Được thích
11
Điểm
165
Cách của mình thêm một số thao tác trên excel - cũng ra được kết quả bạn tham khảo :D
 

File đính kèm

Nhattanktnn

Thành viên tích cực
Tham gia ngày
11 Tháng mười một 2016
Bài viết
1,044
Được thích
964
Điểm
360
Kính chào các Thầy và anh,chị,em diễn đàn GPE.

Em đang gặp một rắc rối khi tìm kiếm tên theo mã. Đó là những mã gộp thì em đang không biết làm công thức gì để có thể ghi tên đầy đủ.
Chi tiết em có ghi trong file gửi kèm.
Mong nhận được sự giúp đỡ của cả nhà.

Em cám ơn!
Mình làm thử bạn xem sao: (dùng UDF)
PHP:
Function NoiChuoi(TT As String, Vung As Range, CotSoSanh As Long, CotCanLay As Long) As String
Dim Arr(), TtArr As Variant, R&, I&, J&
Arr = Vung.Value
TtArr = Split(TT, ",")
R = UBound(TtArr)
For I = 0 To R
    For J = 1 To UBound(Arr, 1)
        If Trim(TtArr(I)) = Arr(J, CotSoSanh) Then
            NoiChuoi = IIf(NoiChuoi = "", Arr(J, CotCanLay), NoiChuoi & ", " & Arr(J, CotCanLay))
        End If
    Next
Next
End Function
 

File đính kèm

hocexcel_1991

Bắt đầu học Excel
Tham gia ngày
9 Tháng bảy 2018
Bài viết
512
Được thích
915
Điểm
360
Nơi ở
Từ Sơn, Bắc Ninh
Kính chào các Thầy và anh,chị,em diễn đàn GPE.

Em đang gặp một rắc rối khi tìm kiếm tên theo mã. Đó là những mã gộp thì em đang không biết làm công thức gì để có thể ghi tên đầy đủ.
Chi tiết em có ghi trong file gửi kèm.
Mong nhận được sự giúp đỡ của cả nhà.

Em cám ơn!
Dùng hàm JoinText của thầy @ndu96081631
Nếu bạn dùng Excel 2019 hoặc 365 thì có hàm TEXTJOIN
Mã:
I3=JoinText(", ",IF(MMULT(N(TRIM(MID(SUBSTITUTE(G3,",",REPT(" ",100)),(TRANSPOSE(ROW($1:$10)-1))*100+1,100))=$E$3:$E$22),ROW($1:$10)^0),$C$3:$C$22,1/0))
Nhấn Ctrl+Shirt+Enter
 

File đính kèm

excel_lv1.5

Thành viên tiêu biểu
Tham gia ngày
20 Tháng mười 2017
Bài viết
797
Được thích
1,384
Điểm
360
Dùng hàm JoinText của thầy @ndu96081631
Nếu bạn dùng Excel 2019 hoặc 365 thì có hàm TEXTJOIN
Mã:
I3=JoinText(", ",IF(MMULT(N(TRIM(MID(SUBSTITUTE(G3,",",REPT(" ",100)),(TRANSPOSE(ROW($1:$10)-1))*100+1,100))=$E$3:$E$22),ROW($1:$10)^0),$C$3:$C$22,1/0))
Nhấn Ctrl+Shirt+Enter
Sao bạn không dùng Find hay search nhỉ ?
 

PacificPR

Thành viên mới
Tham gia ngày
6 Tháng năm 2016
Bài viết
1,985
Được thích
2,714
Điểm
360
Nơi ở
Cái Bang
Kính chào các Thầy và anh,chị,em diễn đàn GPE.

Em đang gặp một rắc rối khi tìm kiếm tên theo mã. Đó là những mã gộp thì em đang không biết làm công thức gì để có thể ghi tên đầy đủ.
Chi tiết em có ghi trong file gửi kèm.
Mong nhận được sự giúp đỡ của cả nhà.

Em cám ơn!
Lâu lắm không viết. Luộc hết cả nghề. Bạn tham khảo thử
PHP:
Function HVLOOKUP(ByVal Delimiter As String, ByVal Range, ByVal Criteria, Optional ByVal Find_Range) As String
' Delimiter: Ky tu ngan cach
' Range: Vung chua ket qua tra ve
' Criteria: Chuoi do tim
' Find_Range): vung chua chuoi do tim
    Dim sArr(), tArr(), Dic As Object
    Dim I As Long, R As Long, Ma, Text As String
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Range.Value: tArr = Find_Range.Value
For I = 1 To UBound(tArr)
    If Not Dic.Exists(tArr(I, 1)) Then Dic.Add tArr(I, 1), I
Next I
For Each Ma In Split(Criteria, Delimiter)
    R = Dic.Item(Trim(Ma))
    If R Then Text = IIf(Text = "", sArr(R, 1), Text & Delimiter & sArr(R, 1))
Next
If Len(Text) Then HVLOOKUP = Text
End Function
 

File đính kèm

Lần chỉnh sửa cuối:

huuthang_bd

Chuyên gia GPE
Tham gia ngày
10 Tháng chín 2008
Bài viết
7,957
Được thích
9,299
Điểm
860
Nơi ở
TP.HCM
Lâu lắm không viết. Luộc hết cả nghề. Bạn tham khảo thử
Đã là LOOKUP thì khi không tìm thấy phải trả về kết quả lỗi chứ nhỉ. Ví dụ tôi tìm 03.1-4, !@#$%, 07.1-3 thì phải trả về Tấm bắt, #N/A, Tăng cứng cánh hoặc ít ra là chỉ trả về #N/A thôi chứ.

TB: Hình như là lụt nghề chứ không phải luộc nghề thì phải.
 

hocexcel_1991

Bắt đầu học Excel
Tham gia ngày
9 Tháng bảy 2018
Bài viết
512
Được thích
915
Điểm
360
Nơi ở
Từ Sơn, Bắc Ninh

huhumalu

Thành viên hoạt động
Tham gia ngày
20 Tháng mười 2009
Bài viết
133
Được thích
19
Điểm
670
Tuổi
32
Cái này thì làm hàm thì sẽ dễ dàng hơn. Mình góp vui, mình dùng công thức.
Nó ra một cái rất chi là khổng lồ, các bạn xem vui nhé.
 

File đính kèm

hml89

Thành viên tiêu biểu
Tham gia ngày
14 Tháng chín 2012
Bài viết
416
Được thích
311
Điểm
410
Em Xin chân thành cám ơn các anh, chị và mọi người. Mình sẽ thử từng cách một. Nếu có gặp vướng mắc gì trong lúc làm. Mong nhận được sự giúp đỡ tiếp ạ.

Chúc mọi người ngày mới vui vẻ!
 
Top Bottom