trinhquocdat1510
Thành viên mới
- Tham gia
- 15/1/20
- Bài viết
- 6
- Được thích
- 6
Thử sửa thành:=IFERROR(INDEX($C$2:$C$16, SMALL(IF($F$2=B2:B16, ROW(C2:C16)-1,””), ROW()-3)),””)
UDF là gì vậy bác. e thấy file bác có hàm thống kê. sao làm được vậy bác.Bạn xem cách mình làm bỡi UDF
Mã KH Số lượng A 500Mã KH Tổng B 300A 99742 C 400B 4954 D 20C 1004 E 70D 504 A 5E 568 F 41C 556A 98798B 4654A 435E 498C 48D 484A 4
Function ThongKe(Rng As Range)
Dim Arr()
Dim J As Long, W As Integer, Num As Long, Z As Long, VTr As Integer
Dim Tmp As String, sTrC As String
Arr() = Rng.Value
ReDim dArr(1 To UBound(Arr()), 1 To 2) As String
For J = 1 To UBound(Arr())
VTr = InStr(sTrC, Arr(J, 1))
If VTr < 1 Then
sTrC = sTrC & Arr(J, 1)
Tmp = Arr(J, 1): Num = Arr(J, 2)
For Z = J + 1 To UBound(Arr())
If Arr(Z, 1) = Tmp Then Num = Num + Arr(Z, 2)
Next Z
If Num > Arr(J, 2) Then
W = W + 1: dArr(W, 1) = Tmp
dArr(W, 2) = CStr(Num)
End If
End If
Next J
If W Then
ThongKe = dArr()
End If
End Function
Function KhongTrung(Rg0 As Range)
Dim sRng As Range, Rng As Range
Dim J As Long, W As Integer, Rws As Long, VTr As Integer
Dim MaKH As String
Rws = Rg0.Rows.Count: MaKH = "@@@"
ReDim Arr(1 To Rws + 1, 1 To 2) As String : W = 1
Arr(1, 1) = "Mã Khách Hàng": Arr(1, 2) = "Sô Luong"
Arr(2, 1) = "Nothing!"
For J = 1 To Rws
VTr = InStr(MaKH, Rg0(1).Offset(J - 1).Value)
If VTr < 1 Then
MaKH = MaKH & Rg0(1).Offset(J - 1).Value
Set Rng = Rg0(1).Offset(J).Resize(Rws)
Set sRng = Rng.Find(Rg0(1).Offset(J - 1), , xlFormulas, xlWhole)
If sRng Is Nothing Then
W = W + 1: Arr(W, 1) = Rg0(1).Offset(J - 1).Value
Arr(W, 2) = Str(Rg0(1).Offset(J - 1, 1).Value)
End If
End If
Next J
KhongTrung = Arr()
End Function
Đọc file của bạn chẳng hiểu gì cả. Bạn có thể nói rõ được không?Em chào các anh chị, em muốn tìm các giá trị như trong file đính kèm sau.
Mong anh chị giúp đỡ ạ !!
Công thứcEm chào các anh chị, em muốn tìm các giá trị như trong file đính kèm sau.
Mong anh chị giúp đỡ ạ !!
M15=IFERROR(AGGREGATE(15,6,INDEX($E$11:$I$43,,INDEX({1,2,4,5},,COLUMN(A$1)))/($D$11:$D$43=$L$15),ROWS($1:1)),"")
=IFERROR(INDEX($C$2:$C$16, SMALL(IF($F$2=B2:B16, ROW(C2:C16)-1,””), ROW()-3)),””)
e thấy lệnh mà sao không dùng không dùng được các bác.
Bác nào chỉ giáo e với e cảm ơn ạ.
bạn làm vào đâu sao ko đưa file lên mới biết bạn sai ở đâu chứEm sử dụng theo hướng dẫn trên mà sao bị lỗi #NAME? ( đã ctrl+shìt+enter) được mỗi dòng đầu, chỉnh sửa tên tra cứu lại bị lỗi luôn cả dòng đâu