Bạn dùng code sau nhé: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
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ái này chỉ có thể thực hiện bằng VBA thôi bạ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
Mình làm như vầy: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
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
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