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