Em muốn ghép tên của những học sinh có điểm dưới trung bình vào 1 ô thì dùng công thức thế nào ? Các bác xem hộ file đính kèm rồi hộ em nha. Cám ơn các bác nhiều !
Em muốn ghép tên của những học sinh có điểm dưới trung bình vào 1 ô thì dùng công thức thế nào ? Các bác xem hộ file đính kèm rồi hộ em nha. Cám ơn các bác nhiều !
Function Ghepten(VungTen As Range, VungSo As Range, Dieukien As Variant) As String
Dim Col As Long, So As Range
Col = VungTen.Resize(1, 1).Column - VungSo.Resize(1, 1).Column
Select Case Left(Dieukien, 2)
    Case "<<"
        For Each So In VungSo
        If Val(So) < Val(Trim(Mid(Dieukien, 3))) Then Ghepten = Ghepten & ", " & So.Offset(, Col)
        Next
    Case "<="
        For Each So In VungSo
        If Val(So) <= Val(Trim(Mid(Dieukien, 3))) Then Ghepten = Ghepten & ", " & So.Offset(, Col)
        Next
    Case ">>"
        For Each So In VungSo
        If Val(So) > Val(Trim(Mid(Dieukien, 3))) Then Ghepten = Ghepten & ", " & So.Offset(, Col)
        Next
    Case ">="
        For Each So In VungSo
        If Val(So) >= Val(Trim(Mid(Dieukien, 3))) Then Ghepten = Ghepten & ", " & So.Offset(, Col)
        Next
    Case Else
        For Each So In VungSo
        If Val(So) = Val(Dieukien) Then Ghepten = Ghepten & ", " & So.Offset(, Col)
        Next
End Select
Ghepten = Trim(Mid(Ghepten, 3))
End Function
	Function JoinIf(VungDK As Range, DK As Variant, VungKQ As Range, Optional PC As Variant) As String
  Dim i, Dem As Long
  Dim Temp As String
  Dem = VungDK.Count
  If IsMissing(PC) Then PC = ""
  For i = 1 To Dem
    If VungDK(i) < DK Then Temp = Temp & PC & VungKQ(i)
  Next
  JoinIf = Mid(Temp, Len(PC) + 1, Len(Temp))
End Function
	=JoinIf($C$3:$C$12,5,$B$3:$B$12,", ")
Xin cám ơn các bác rất nhiều. Nếu vùng điều kiện, vùng chọn vẫn giữ nguyên nhưng thay loại điểm thì công thức thay đổi thế nào để mất dấu "," thừa đi. Các bác xem file đính kèm rồi giúp em.
Nhờ các bác giải thích hộ công thức =JoinIf($C$3:$C$12,5,$B$3:$B$12,", "), nhất là số 5.
=JoinIf($C$3:$C$9,5,$B$3:$B$9,", ")
	Function JoinIf(VungDK As Range, DK As Variant, VungKQ As Range, Optional PC As Variant) As String   Dim i, Dem As Long   Dim Temp As String   Dem = VungDK.Count   If IsMissing(PC) Then PC = ""   For i = 1 To Dem     If VungDK(i) < DK Then Temp = Temp & PC & VungKQ(i)     If VungKQ(i) = "" Then Exit For   Next   k = Mid(Temp, Len(PC) + 1, Len(Temp))   JoinIf = Left(k, Len(k) - 2) End Function
	