XL 2010 [RESOLU] Valeur distincte par agence

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Roni95

XLDnaute Occasionnel
Bonjour le forum,

Je cherche à connaître le nombre de références distinctes par agences en évitant d'avoir à faire plusieurs TCD pour avoir le résultat.

Dans mon exemple, en feuil1, j'obtiens le nombre total de références distinctes quelque soit les agences soit 798.
Maintenant je voudrais savoir le nombre de ces références distinctes dans chaque agence et là ça ne va plus, car dans l'exemple l'agence de Créteil aurait 1184 réfs alors qu'elle n'en a que 688 (voir TCD en Feuil5).

Si quelqu'un avait une solution afin d'avoir une donnée plus rapidement et fiable.

merci par avance pour votre aide
Bonne journée
 

Pièces jointes

Bonjour Roni95, Dugenou,

Une version macro:
Code:
Sub CodeparAgence()
Dim Dico, Dico2, i As Long, TabIni, TabFin, x As Integer, LD As Integer
Set Dico = CreateObject("Scripting.Dictionary")
Set Dico2 = CreateObject("Scripting.Dictionary")
LD = 7 'ligne de début résultat à adapter
x = 0
Application.ScreenUpdating = False
With Worksheets("Feuil2") ' à adapter
TabIni = .Range("A2:B" & .Range("B" & Rows.Count).End(xlUp).Row)

For i = LBound(TabIni) To UBound(TabIni)
    Dico(TabIni(i, 1)) = "" 'dico des agences
Next
ReDim TabFin(1 To Dico.Count, 1 To 2)
For Each clé In Dico.keys
    For i = LBound(TabIni) To UBound(TabIni)
        If TabIni(i, 1) = clé Then Dico2(TabIni(i, 2)) = ""
    Next
    x = x + 1
    TabFin(x, 1) = clé
    TabFin(x, 2) = Dico2.Count
    Dico2.RemoveAll
Next
.Range("I" & LD).Resize(UBound(TabFin, 1), UBound(TabFin, 2)) = TabFin
.Range("I" & LD & ":J" & LD + x).Sort Key1:=.Range("I" & LD), Order1:=xlAscending
End With
Application.ScreenUpdating = True
End Sub

A+
 
J'ai retrouvé une formule de Cisco pour le tout confondu en une seule fois : mais le temps de calcul est important :
=SOMMEPROD(1/NB.SI(B3:B16043;B3:B16043))
Je sèche pour le calcul par agence

Cordialement

Edit : bonjour Paf : en effet je pense que pour un tel volume de données, la macro sera mieux !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour