Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…