LÀM THẾ NÀO ĐỂ CÓ ĐƯỢC TẤT CẢ CÁC GIÁ TRỊ TRÙNG LẶP TRONG PHẠM VI TRA CỨU (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

trinhquocdat1510

Thành viên mới
Tham gia
15/1/20
Bài viết
6
Được thích
6
=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 ạ.
 

File đính kèm

  • vlookup-duplicates.png
    vlookup-duplicates.png
    17.1 KB · Đọc: 84
Bạn xem cách mình làm bỡi UDF

Mã KHSố lượng
A
500​
Mã KHTổng
B
300​
A99742
C
400​
B4954
D
20
C1004
E
70​
D504
A
5​
E568
F
41​
C
556​
A
98798​
B
4654​
A
435​
E
498​
C
48​
D
484
A
4​
 

File đính kèm

Nội dung của hàm tự tạo (UDF) là vầy:
PHP:
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
 
thanks bác.
Nhưng hàm này chỉ lọc các giá trị giống nhau thôi à bác.Các giá trị không trùng lặp không lấy ra được à bác.
 
Hàm này thỏa cho iêu cầu của tiêu đề & bài viết đầu tiên của bạn cơ mà?
Còn các trị không trùng lắp thì dể thôi: Viết mới 1 công cụ khác
Nhưng nói trước vì bạn xài Excel của bọn chệch nên mình sẽ không viết tiếp đâu nha; Tìm người khác đi!
 

File đính kèm

  • CV 03.JPG
    CV 03.JPG
    34.1 KB · Đọc: 33
Lần chỉnh sửa cuối:
PHP:
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
 

File đính kèm

  • 814.jpg
    814.jpg
    63 KB · Đọc: 3
Lần chỉnh sửa cuối:
=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 ạ.

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
 
Em bị tương tự như chủ thớt, ai có cách khắc phục chỉ giúp e với ạ. zalo 0336937796 nhé. Em cám ơn nhiều ạ,
 
Web KT

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

Back
Top Bottom