duplicaten tellen en per regel optellen

Status
Niet open voor verdere reacties.

Interface

Gebruiker
Lid geworden
27 jan 2009
Berichten
156
Ik heb een array met letters, ik zou in de kolom daarvoor graag de duplicaten tellen maar dan ook in chronologische volgorde nummeren (zoals onderstaande):

1 A
2 A
3 A
4 A
5 A
1 B
2 B
6 A

Kan iemand mij even op weg helpen hoe ik dit efficient aan kan pakken me vba code?
 
Kan toch met een formule of denk ik te eenvoudig?
 

Bijlagen

  • HelpMij_duplicaat_teller.xlsb
    8,3 KB · Weergaven: 26
Met formules was niet helemaal de bedoeling, het is gelukt met Application.match icm application.count


Code:
Dim sq          As Variant
Dim sq2         As Variant
Dim i           As Integer

sq2 = Sheets(1).Range("g1:g8")

With ThisWorkbook.Sheets(1)
    For i = 1 To 8
        sq = Sheets(1).Range("g1:g" & i)
        .Cells(i, 4) = Application.Count(Application.Match(sq, Array(sq2(i, 1)), 0))
    Next i
End With
 
Eigenlijk gebruik je nu ook Excelformules: count en match

Het kan ook zo:
Code:
Sub M_snb() 
  sn = Sheets(1).Range("g3:g10")

  For j = 1 To UBound(sn)
    sn(j, 1) = Evaluate("Sum(N(" & Sheets(1).Cells(3, 7).Resize(j).Address & "=""" & sn(j, 1) & """))")
  Next

  Sheets(1).Range("f3:f10")=sn
end sub

Dit gebruik van 'Match' - met een array als resultante- vind ik wel creatief :thumb:

Kan ook zo geschreven worden:

Code:
Sub M_tst()
   sn = Sheets(1).Range("g3:g10")

    For j = 1 To 8
        sn(j, 1) = Application.Count(Application.Match(Sheets(1).Cells(3, 7).Resize(j), Array(sn(j, 1)), 0))
    Next
End Sub
 
Laatst bewerkt:
Code:
Sub hsv()Dim sv
sv = Sheets(1).Range("f3:g10")
 For j = 1 To 8
   sv(j, 1) = Application.CountIf(Cells(3, 7).Resize(j), sv(j, 2))
 Next
    Range("f3:g10") = sv
End Sub
 
Dank snb en HSV voor jullie reactie, ik ben me zeer bewust dat dit uiteindelijk ook formules zijn. Ik wilde alleen niet het werkblad aanspreken en daarop formules toepassen maar alleen in de code.

Uiteindelijk goed gelukt dus met mijn code al is het wel cool om te zien hoe jullie beide dat dan weer oplossen (die code ziet er toch wel net iets netter uit :) ). Altijd meerdere wegen naar Rome zullen we maar zeggen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan