Mandrix,
Testei sua sugestão das fórmulas, e por se tratar de uma planilha que chegará a umas 5.000 linhas e 50 colunas, com atualizações diárias e acumulativas dos pedidos, se tornará inviável sua aplicação, devido ao peso atribuído das fórmulas e a demora na conclusão do cálculo...
De qualquer forma, fiz vários testes, com a fórmula sugerida, tentei combinar com uma fórmula matricial ou subtotal, mas não tive êxito...
Consegui um código em VBA de uma função personalizada, que retorna valores únicos, com critérios baseados em outra coluna, porém não consegui integrar com a função subtotal, nem com o comando "EntireRow.Hidden", e quando utilizo algum filtro ela continua buscando todo o intervalo e não apenas os filtrados.
O argumento é:
=CountUniqueItems(I16;F21:F222;E21:E222)
Function UniqueItems(critString As String, RangeCrit As Range, RangeIn As Range) _
As Variant
Dim Unique() As Variant 'Matriz que contém os itens exclusivos
Dim Element As Range
Dim NumUnique As Integer
Dim i As Integer, j As Integer
Dim FoundMatch As Boolean
Dim SearchArray() As Variant
'Contar para o número de elementos únicos
NumUnique = 0
j = 0
For i = 1 To RangeCrit.cells.Count
If RangeCrit.cells(i).Value = critString Then
j = j + 1
ReDim Preserve SearchArray(j)
SearchArray(j) = i
End If
Next i
'Loop através da searcharray
For i = 1 To UBound(SearchArray)
FoundMatch = False
'Tem artigo foi adicionado ainda?
For j = 1 To NumUnique
If RangeIn.cells(SearchArray(i)).Value = Unique(j) Then
FoundMatch = True
GoTo AddItem '(Exit For-Next loop)
End If
Next j
AddItem:
'Se não estiver em lista, adicionar o item à lista única
If Not FoundMatch Then
NumUnique = NumUnique + 1
ReDim Preserve Unique(NumUnique)
Unique(NumUnique) = RangeIn.cells(SearchArray(i)).Value
End If
Next i
UniqueItems = Unique
End Function
Function CountUniqueItems(critString As String, RangeCrit As Range, RangeIn As Range) _
As Integer
CountUniqueItems = UBound(UniqueItems(critString, RangeCrit, RangeIn))
End Function
Talvez, possam me ajudar.
Muito obrigada.
Att.,
Postado : 06/02/2014 9:08 am