Dò tìm ra nhiều giá trị

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

kstmai

Thành viên mới
Tham gia
4/5/07
Bài viết
39
Được thích
7
mình có data các ô :
A1 : HSnam
A2 : HSnam
A3 : HSnam
B1 : Nam
B2 : Khoa
B3 : Khải
bây giờ ở ô C1 mình muốn khi đánh vào HSnam thì ở ô C2 sẽ thể hiện là "Nam, Khoa, Khải"...
Cảm ơn
 
mình có data các ô :
A1 : HSnam
A2 : HSnam
A3 : HSnam
B1 : Nam
B2 : Khoa
B3 : Khải
bây giờ ở ô C1 mình muốn khi đánh vào HSnam thì ở ô C2 sẽ thể hiện là "Nam, Khoa, Khải"...
Cảm ơn
Bạn dùng code sau nhé:
Mã:
Function TIM(CELLTIM, VUNG As Range, SOCOT As Long)
Dim rCell As Range, KQ
    TIM = CVErr(xlErrNA)
      For Each rCell In VUNG
        If rCell = CELLTIM Then
            KQ = KQ & ", " & rCell.Offset(, SOCOT - 1)
        End If
    Next rCell
       If KQ <> "" Then
        KQ = Right(KQ, Len(KQ) - 1)
        TIM = KQ
    End If
End Function

Cú Pháp:

=TIM(CellTim,VungTim,CotTim)
 

File đính kèm

Ô C2 sẽ như thế nào nếu có 50 người? Bạn dùng thử AutoFilter.
 
mình có data các ô :
A1 : HSnam
A2 : HSnam
A3 : HSnam
B1 : Nam
B2 : Khoa
B3 : Khải
bây giờ ở ô C1 mình muốn khi đánh vào HSnam thì ở ô C2 sẽ thể hiện là "Nam, Khoa, Khải"...
Cảm ơn
Cái này chỉ có thể thực hiện bằng VBA thôi bạn à!
Công thức trong chừng mực nào đó vẫn có thể làm được, với điều kiện số từ cần nối không quá nhiều
Tồng quát nhất là là phương pháp lập trình VBA ---> Nếu bạn đồng ý thì theo khảo bài này:
http://www.giaiphapexcel.com/forum/showpost.php?p=206624&postcount=5
 
mình có data các ô :
A1 : HSnam
A2 : HSnam
A3 : HSnam
B1 : Nam
B2 : Khoa
B3 : Khải
bây giờ ở ô C1 mình muốn khi đánh vào HSnam thì ở ô C2 sẽ thể hiện là "Nam, Khoa, Khải"...
Cảm ơn
Mình làm như vầy:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cll As Range
    If Target.Address <> "$C$1" Then Exit Sub
    [C2] = ""
    For Each Cll In Range([A1], [A65536].End(xlUp))
        If UCase(Cll) = UCase([C1]) Then [C2] = [C2] & Cll.Offset(0, 1) & ", "
    Next Cll
    If [C2] <> "" Then [C2] = Left([C2], Len([C2]) - 2)
End Sub
 

File đính kèm

Thêm 1 tham khảo về hàm mảng người dùng:

PHP:
Option Explicit:        Option Base 1
Function LietKeDS(LookUpRange As Range, Chuan As String)
 Dim Clls As Range, eRw As Long, jJ As Long
 eRw = LookUpRange.Rows.Count
 ReDim MDL(eRw, 1) As String
 
 For Each Clls In LookUpRange.Cells(1, 1).Resize(eRw)
   If Clls.Value = Chuan Then
      jJ = jJ + 1:         MDL(jJ, 1) = Clls.Offset(, 1).Value
   End If
 Next Clls
 LietKeDS = MDL()
End Function

Cách xài: Tô chọn các ô c2:c5;
Bấm chuột lên thanh công thức & nhập cú pháp =LietKeDS(A1:B5,C1);
Kết thúc hàm mảng bằng tổ hợp các fím quy ước.
 
Web KT

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

Back
Top Bottom