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

Aide pour Application professionnelle

  • Initiateur de la discussion Initiateur de la discussion chrisgollum
  • Date de début Date de début

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 !

C

chrisgollum

Guest
Bonjour à tous,

Je désire réaliser le tableau en pièce jointe pour une petite application professionnelle.Je n'arrive pas à faire un "comptage" sous conditions.Je l'explique dans le fichier.

Merci d'avance pour toute l'aide que vous pourrez m'apporter.
 

Pièces jointes

Re : Aide pour Application professionnelle

Bonjour le Forum,
Bonjour chrisgollum,

A tester en A10 :

=SOMMEPROD((C2:C6=1530)*(D2😀6=1)*1/NB.SI(B2:B6;B2:B6))

Jocelyn

Le simley est a remplacer par : et D
 
Re : Aide pour Application professionnelle

Bonjour,

Merci cela semble fonctionner. Pour aller plus loin j'aimerais pouvoir compter le nombre de personne differente appartenant au service 1530 et ayant eu soit l'événement 1 soit le 2.

Merci de vos lumières.
 
Re : Aide pour Application professionnelle

Bonjour le Forum,
Bonjour chrisgollum,

A tester en A10 :

=SOMMEPROD((C2:C6=1530)*(D2😀6=1)*1/NB.SI(B2:B6;B2:B6))

Jocelyn

Le simley est a remplacer par : et D

Bonjour Jocelyn,

Bravo pour ta formule mais j'aimerai comprendre la partie
1/NB.SI(B2:B6;B2:B6))

J'ai essayé de décomposer mais je ne comprends pas.
D'avance merci
 
Re : Aide pour Application professionnelle

Re,
Bonjour RENAUDER,

@ chrisgollum a tester sur les nouvelle bases :

=SOMMEPROD((C2:C6=1530)*((D2😀6=1)+(E2:E6=1))*1/NB.SI(B2:B6;B2:B6))

Attention si pour un même nom et sur la même ligne il y a 1 dans l'évenemet 1 et dans l'évènement 2 le résultat sera faux

@ RENAUDER la partie de formule 1/NB.SI(B2:B6;B2:B6) divise la valeur 1 par le nombre trouvé par le NB.SI dans l'exemple avec =SOMMEPROD((C2:C6=1530)*(D2😀6=1)*1/NB.SI(B2:B6;B2:B6)) lorsque NB.SI arrive sur le nom Albert il le trouve 2 fois répondant au critère 1350 et 1 il va donc affecter 1/2 a chacune de ces lignes

Voila j'esère que c'est clair pour toi car en me relisant je n'en suis pas sur en tout cas autrement n'hésite pas

Jocelyn
 
Re : Aide pour Application professionnelle

Bonjour à tous, bonjour Jocelyn,

Je tente de venir à ton aide en apporant un complément d'explication sur cette fonction matricielle :

En colonne A les données suivantes :

aaabccdddb (de A1 à A10)

en B1 : =(1/NB.SI($A$1:$A$10;$A$1:$A$10))
(matricielle)

lorsqu'on sélectionne la formule dans la barre d'outils et qu'on fait F9, on obtient :

{0.333333333333333;0.333333333333333;0.333333333333333;0.5;0.5;0.5;0.333333333333333;0.333333333333333;0.333333333333333;0.5}

En espérant avoir apporté un petit plus pour une meilleure compréhension.

Bon app à tous

@+
 
Re : Aide pour Application professionnelle

Bonjour à tous,

La formule renvoie parfois des valeurs comme 0.5, 1.333, 1.666
Est-ce normal ?

Pour le plaisir, je l'ai fait avec du VBA
Code:
Sub Compte()
    Dim NoDupesUn As New Collection
    Dim NoDupesDeux As New Collection
    Application.ScreenUpdating = False
    MyService = Range("H4").Value
    MyEvt = Range("H5").Value
    On Error Resume Next
    ' Evénement 1 à 1
    Range([B2], [C65536].End(xlUp).Offset(0, 2)).Select
    A = Selection.Value
    For j = 1 To UBound(A, 1)
        If A(j, 3) = 1 And A(j, 2) = MyService Then
            NoDupesUn.Add A(j, 1) & A(j, 2), CStr(A(j, 1) & A(j, 2))
        Else
        End If
    Next j
    ' Evénement 2 à 1
    For k = 1 To UBound(A, 1)
        If A(k, 4) = 1 And A(k, 2) = MyService Then
            NoDupesDeux.Add A(k, 1) & A(k, 2), CStr(A(k, 1) & A(k, 2))
        Else
        End If
    Next k
    On Error GoTo 0
    Range("A10").Value = NoDupesUn.Count
    Range("A11").Value = NoDupesDeux.Count
    Application.Goto Reference:=Range("A1"), scroll:=True
End Sub
 
Dernière édition:
Re : Aide pour Application professionnelle

re,
Bonjour Tibo,

hum hum effectivement RENAUDER des fois cette formule fait des choses bisard a partir du moment ou on lui met des critères je n'ai jamais trops compris pourquoi

Alors voila une formule qui passe par la fonction Fréquence (formule de base que j'ai honteuseument coppiée sur Jean-Marie) c'est une formule matricielle à valider par les touche CTRL, Majuscule et entrée

Jocelyn
 

Pièces jointes

Re : Aide pour Application professionnelle

re,

il est vrai que la fonction : 1/NB.SI(.... ) n'aime pas les cellules vides.

Par contre, je n'ai pas rencontré le problème où ça génère des 1.333 ou des 1.666, ce qui, à mon humble avis, ne devrait en théorie pas arriver puisqu'on divise 1 par un entier (variant de 1 à n). J'aimerais bien voir le cas de figure pour tenter de comprendre le pourquoi de cette anomalie.

Sinon, pour gérer le souci des cellules vides, cette proposition de formule :

=SOMMEPROD(SI(ESTVIDE($A$1:$A$50);"";(1/NB.SI($A$1:$A$50;$A$1:$A$50))))

avec validation matricielle.

@+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Insertion de photo
Réponses
14
Affichages
689
Réponses
1
Affichages
202
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…