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

trinhquocdat1510

Thành viên mới
Tham gia ngày
15 Tháng một 2020
Bài viết
6
Được thích
6
Điểm
15
Tuổi
29
=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

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
6,518
Được thích
10,678
Điểm
1,860
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

trinhquocdat1510

Thành viên mới
Tham gia ngày
15 Tháng một 2020
Bài viết
6
Được thích
6
Điểm
15
Tuổi
29
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​
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.
 

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
6,518
Được thích
10,678
Điểm
1,860
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
 

trinhquocdat1510

Thành viên mới
Tham gia ngày
15 Tháng một 2020
Bài viết
6
Được thích
6
Điểm
15
Tuổi
29
Cảm ơn 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.
 

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
6,518
Được thích
10,678
Điểm
1,860
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

Lần chỉnh sửa cuối:

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
6,518
Được thích
10,678
Điểm
1,860
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
 
Lần chỉnh sửa cuối:
Top Bottom