Đếm lọc trùng có điều kiện

  • Thread starter Thread starter hml89
  • Ngày gửi Ngày gửi
Liên hệ QC

hml89

Thành viên tiêu biểu
Tham gia
14/9/12
Bài viết
526
Được thích
392
Giới tính
Nam
Xin chào tất cả anh/chị /em trong diễn đàn.
Cho tôi xin hỏi cách đếm lọc trùng có điều kiện ở 3 cột( cột A,B,C) Nếu cột A,B,C giống nhau, thì nó chỉ tính là 1, còn khác 1 trong 3 cột thì tính là khác. Chi tiết tôi có làm trong file đính kèm.
Xin cám ơn
 

File đính kèm

Lần chỉnh sửa cuối:
Xin chào tất cả anh/chị /em trong diễn đàn.
Cho tôi xin hỏi cách đếm lọc trùng có điều kiện ở 3 cột. Chi tiết tôi có làm trong file đính kèm.
Xin cám ơn
Thử công thức này xem
Mã:
F4=SUMPRODUCT(($D$4:$D$10=F$3)/COUNTIFS($A$4:$A$10,$A$4:$A$10,$D$4:$D$10,$D$4:$D$10))
 
Thử công thức này xem
Mã:
F4=SUMPRODUCT(($D$4:$D$10=F$3)/COUNTIFS($A$4:$A$10,$A$4:$A$10,$D$4:$D$10,$D$4:$D$10))
Xin chào bạn, mình muốn đếm trùng khi cả 3 cột A,B,C giống nhau thì nó chỉ tính là 1, còn 1 trong 3 cột khác nhau thì nó sẽ tính khác nhau.
 
Xin chào bạn, mình muốn đếm trùng khi cả 3 cột A,B,C giống nhau thì nó chỉ tính là 1, còn 1 trong 3 cột khác nhau thì nó sẽ tính khác nhau.
Vậy thử công thức này xem, nhấn Ctrl+Shift+Enter nhé
Mã:
=SUM(($D$4:$D$10=G$3)*IFERROR(1/COUNTIFS($A$4:$A$10,$A$4:$A$10,$D$4:$D$10,$D$4:$D$10,$B$4:$B$10,$B$4:$B$10,$C$4:$C$10,$C$4:$C$10),0))
 
Vậy thử công thức này xem, nhấn Ctrl+Shift+Enter nhé
Mã:
=SUM(($D$4:$D$10=G$3)*IFERROR(1/COUNTIFS($A$4:$A$10,$A$4:$A$10,$D$4:$D$10,$D$4:$D$10,$B$4:$B$10,$B$4:$B$10,$C$4:$C$10,$C$4:$C$10),0))
có cách nào không phải dùng mảng cho đỡ nặng không bạn nhỉ
 

File đính kèm

bạn thử cái code cùi nè xem sao: ^^^^
Mã:
Sub dem_GPE()
Dim i As Long, eR As Long
Dim j As Long, k As Long
Dim sArr(), dArr(), kArr()
With Sheet1
    eR = .Range("A" & Rows.Count).End(3).Row
    sArr = .Range("A4:D" & eR).Value
    kArr = .Range("F3:J3").Value
    With CreateObject("scripting.dictionary")
        For i = 1 To UBound(sArr)
        Key = sArr(i, 1) & sArr(i, 2) & sArr(i, 3) & sArr(i, 4)
          If Not .exists(Key) Then
                .Item(Key) = i
          End If
        Next i
    ReDim dArr(1 To 1, 1 To 5)
        For j = 1 To UBound(kArr, 2)
        k = 0
        For Each Key In .keys
        If Key Like "*" & kArr(1, j) & "*" Then
            k = k + 1
            dArr(1, j) = k
        End If
        Next
        Next j
    
    End With
    .Range("F4").Resize(1, 5) = dArr
End With
End Sub
 
bạn thử cái code cùi nè xem sao: ^^^^
Mã:
Sub dem_GPE()
Dim i As Long, eR As Long
Dim j As Long, k As Long
Dim sArr(), dArr(), kArr()
With Sheet1
    eR = .Range("A" & Rows.Count).End(3).Row
    sArr = .Range("A4:D" & eR).Value
    kArr = .Range("F3:J3").Value
    With CreateObject("scripting.dictionary")
        For i = 1 To UBound(sArr)
        Key = sArr(i, 1) & sArr(i, 2) & sArr(i, 3) & sArr(i, 4)
          If Not .exists(Key) Then
                .Item(Key) = i
          End If
        Next i
    ReDim dArr(1 To 1, 1 To 5)
        For j = 1 To UBound(kArr, 2)
        k = 0
        For Each Key In .keys
        If Key Like "*" & kArr(1, j) & "*" Then
            k = k + 1
            dArr(1, j) = k
        End If
        Next
        Next j
   
    End With
    .Range("F4").Resize(1, 5) = dArr
End With
End Sub
cám ơn bạn!
 
Web KT

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

Back
Top Bottom