Cách đơn giản nhất là dùng cột phụ thì chủ topic không làm tức là có ý biểu diễn. Để biểu diễn với nhiều người sử dụng excel mức độ cơ bản có thể dùng công thức khủng hoặc vba. Công thức thì em chịu nếu không dùng concat hay textjoin của office365. VBA nếu không tự viết được, người khác hỏi mà bó tay thì biểu diễn làm sao được.
Thực ra đâu có ý biểu diễn gì đâu bạn ạ. Lúc đầu nghĩ có khi phải dùng mảng hay vba mới giải quyết được vấn đề nên gửi topic lên. Còn nếu dùng cột phụ mà giải quyết được vấn đề theo hướng đơn giản đơn thì nhờ bạn giúp nhé. Cảm ơn bạn nhiều.
1. Nếu dùng cột phụ (các ô mình bôi màu xanh), công thức có vẻ hơi dài nhưng dễ viết.
E6=E5& ", "&B6 & " (" & TEXT(C6,"dd/mm/yyyy")&")"
fill xuống E8
Kết quả G4=SUBSTITUTE(RIGHT(E8,LEN(E8)-2),"0 (00/01/1900), ","")
2. Nếu dùng VBA
Mã:
Function xxx$(Data As Range, MaHang, Phi As Range)
Dim arr(), P As Range, i&
arr = Data.Value
For Each P In Phi
For i = 1 To UBound(arr)
If arr(i, 1) = MaHang And arr(i, 4) = P Then
xxx = xxx & ", " & arr(i, 2) & " (" & arr(i, 3) & ")"
Exit For
End If
Next
Next
If Len(xxx) > 0 Then xxx = Right(xxx, Len(xxx) - 2)
End Function
Do vùng Phí chỉ có ít ô nên đọc trực tiếp không ảnh hưởng tốc độ.
Công thức (ô màu đỏ)
=xxx(NGUON!A810,C2,D68)
1. Nếu dùng cột phụ (các ô mình bôi màu xanh), công thức có vẻ hơi dài nhưng dễ viết.
E6=E5& ", "&B6 & " (" & TEXT(C6,"dd/mm/yyyy")&")"
fill xuống E8
Kết quả G4=SUBSTITUTE(RIGHT(E8,LEN(E8)-2),"0 (00/01/1900), ","")
2. Nếu dùng VBA
Mã:
Function xxx$(Data As Range, MaHang, Phi As Range)
Dim arr(), P As Range, i&
arr = Data.Value
For Each P In Phi
For i = 1 To UBound(arr)
If arr(i, 1) = MaHang And arr(i, 4) = P Then
xxx = xxx & ", " & arr(i, 2) & " (" & arr(i, 3) & ")"
Exit For
End If
Next
Next
If Len(xxx) > 0 Then xxx = Right(xxx, Len(xxx) - 2)
End Function
Do vùng Phí chỉ có ít ô nên đọc trực tiếp không ảnh hưởng tốc độ.
Công thức (ô màu đỏ)
=xxx(NGUON!A810,C2,D68)
1. Nếu dùng cột phụ (các ô mình bôi màu xanh), công thức có vẻ hơi dài nhưng dễ viết.
E6=E5& ", "&B6 & " (" & TEXT(C6,"dd/mm/yyyy")&")"
fill xuống E8
Kết quả G4=SUBSTITUTE(RIGHT(E8,LEN(E8)-2),"0 (00/01/1900), ","")
2. Nếu dùng VBA
Mã:
Function xxx$(Data As Range, MaHang, Phi As Range)
Dim arr(), P As Range, i&
arr = Data.Value
For Each P In Phi
For i = 1 To UBound(arr)
If arr(i, 1) = MaHang And arr(i, 4) = P Then
xxx = xxx & ", " & arr(i, 2) & " (" & arr(i, 3) & ")"
Exit For
End If
Next
Next
If Len(xxx) > 0 Then xxx = Right(xxx, Len(xxx) - 2)
End Function
Do vùng Phí chỉ có ít ô nên đọc trực tiếp không ảnh hưởng tốc độ.
Công thức (ô màu đỏ)
=xxx(NGUON!A810,C2,D68)