Ghép tên theo điều kiện

Liên hệ QC

legiangnt

Thành viên chính thức
Tham gia
12/8/08
Bài viết
63
Được thích
8
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 !
 

File đính kèm

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 !

Gửi bạn hàm tự tạo tìm và ghép chuỗi nhiều điều kiện
PHP:
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
 

File đính kèm

Lại dùng đến JoinIf
Ẹc... Ẹc...
PHP:
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
Công thức gõ vào:
=JoinIf($C$3:$C$12,5,$B$3:$B$12,", ")
 

File đính kèm

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.
 

File đính kèm

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.

danh sách của bạn chỉ có B3:B9, điểm C3:C9 mà bạn chọn $C$3:$C$12,5,$B$3:$B$12, thừa 3 dòng nên có dư 3 dấu phẩy ở sau

bạn nhập lại
PHP:
=JoinIf($C$3:$C$9,5,$B$3:$B$9,", ")
là hết bệnh
 
Xin phép bổ sung thêm code như vầy! Bạn xem có dùng được không?
PHP:
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
Thân.
 
Lần chỉnh sửa cuối:
Nếu yêu cầu chỉ có vậy thì tôi sẽ dùng công thức thay cho VBA.
 

File đính kèm

Web KT

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

Back
Top Bottom