
Sub conta()
Dim rng As Range
col = "A"
LR = Cells(Rows.Count, col).End(xlUp).Row
r = 2
first = Cells(r, col)
Do While r < LR
r1 = r
Do While Cells(r, col) = first
r = r + 1
Loop
first = Cells(r, col)
r2 = r - 1
ind = ind + r - r1
Set rng = Range("C" & r1 & ":C" & r2)
ind = ind + conta_univoci(rng)
Set rng = Range("D" & r1 & ":D" & r2)
ind = ind + conta_univoci(rng)
Range("E" & r1 & ":E" & r2).Value = ind
ind = 0
Loop
End Sub
Function conta_univoci(rng As Range)
Dim NoDupes As New Collection
Dim aDati()
aDati = rng
On Error Resume Next
For Each rCell In aDati
If Not IsEmpty(rCell) Then
NoDupes.Add rCell, CStr(rCell)
End If
Next rCell
conta_univoci = NoDupes.Count
End Function
|
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
