XL 2013 Calculer le nombre de valeurs différentes en fonction de critères

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 !

lemarsupial69

XLDnaute Nouveau
Bonjour à tous,

Tout d'abord, s'agissant de mon tout premier post sur ce forum, merci de vous montrer compréhensifs ;-)

Je suis autodidacte sur excel et ne maitrise pour l'instant que les formules de base

Dans le tableau joint au présent, je souhaiterais pourvoir calculer le nombre de n° de dossier différents répondant à deux critères (dans l'exemple, ville=lyon et type=location)

Merci d'avance
 

Pièces jointes

Rebonjour à tous,

Merci pour vos propositions mais j'ai peut être mal exprimé ma requête.

Dans mon exemple, la colonne C contient des numéros de dossiers. Certains numéros reviennent plusieurs fois. Je souhaiterais savoir combien de numéros de dossiers différents répondent au critère LYON et LOCATION. Si un même n° de dossier répond plusieurs fois aux critères, il ne doit être compté qu'une fois.

Merci
 
Re @lemarsupial69,

Pour simplifier la formule finale, on a ajouté une colonne auxiliaire (colonne E). Cette colonne contient la formule suivante en E2 à copier vers le bas:
Code:
=B2&"\"&D2&"\"&C2


Pour le calcul du nombre de dossiers, voir la formule matricielle en H3:
VB:
=SOMME((B2:B9=G2)*(D2:D9=G4)*(EQUIV(E2:E9;E2:E9;0)=LIGNE(E2:E9)-1))

Formule matricielle:
Cette formule doit être validée par la combinaison des trois touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée.

edit : bonsoir @job75 🙂
 

Pièces jointes

Dernière édition:
Bonjour lemarsupial69, xUpsilon, mapomme,

Voyez le fichier joint et cette fonction VBA à placer impérativement dans un module standard :
VB:
Function NbDossier(debut As Range, crit1$, col1, crit2$, col2, coldossier)
Dim P As Range, d As Object, i&
If crit1 Like "<*>" Then crit1 = "*" 'caractère générique *
If crit2 Like "<*>" Then crit2 = "*"
crit1 = UCase(crit1): crit2 = UCase(crit2) 'majuscules
Set P = debut.Parent.Range("A1", debut.Parent.UsedRange)
col1 = Intersect(col1, P) 'matrice, plus rapide
col2 = Intersect(col2, P)
coldossier = Intersect(coldossier, P)
Set d = CreateObject("Scripting.Dictionary")
d.compareMode = vbTextCompare 'la casse est ignorée
For i = debut.Row + 1 To UBound(col1)
    If UCase(col1(i, 1)) Like crit1 And UCase(col2(i, 1)) Like crit2 And coldossier(i, 1) <> "" Then d(coldossier(i, 1)) = ""
Next
NbDossier = d.Count
End Function
Elles est utilisée en I5 avec cette formule :
Code:
=NbDossier(A1;G3;B:B;I3;D:D;C:C)
A+
 

Pièces jointes

- 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

Discussions similaires

Retour