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
11,758
Được thích
17,592
Đ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
11,758
Được thích
17,592
Đ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
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.
 

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
11,758
Được thích
17,592
Đ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
11,758
Được thích
17,592
Đ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:

hocexcel_1991

Bắt đầu học Excel
Tham gia ngày
9 Tháng bảy 2018
Bài viết
470
Được thích
866
Điểm
335
Nơi ở
Từ Sơn, Bắc Ninh

thp100994

Thành viên mới
Tham gia ngày
22 Tháng năm 2020
Bài viết
1
Được thích
0
Điểm
13
Tuổi
26
=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
 

hongtrang26

Thành viên hoạt động
Tham gia ngày
10 Tháng mười một 2011
Bài viết
183
Được thích
188
Điểm
380
Tuổi
36
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
bạn làm vào đâu sao ko đưa file lên mới biết bạn sai ở đâu chứ
 
Top Bottom