Déterminer le nombre de cellule égale à un critère sans les doublons

Bonjour à tous,

J’ai quelques compétences avec Excel, mais j’avoue humblement que je cale sur une fonction qui doit-être sans doute très simple pour certain d’entre vous.
je cherche à calculer le nombre de personnes qui sont par exemple malade sans passer par un filtre. Bien entendu, je ne veux pas compter une personne 2 fois . C’est bien le nombre de personnes malade sur une période. Je précise bien le nombre de personnes et non le nombre de jour (ça, je pense pouvoir y arriver !!).

Je ne sais pas si je suis assez précis mais je reste à votre disposition pour de plus amples renseignements.

Merci à Tous Exemple Malade.xlsx (15,1 Ko)

Bonjour,
Je te propose deux solutions:
Avec formules et ajout d’une colonne (qui peut être masquée)

A mettre en E3 et tirer vers le bas - Cela comptabilise le Nb de personnes sans doublons avec critère

=SI(ET(NB.SI(C3;"*Malade*");NB.SI(B$2:B2;B3)=0);MAX(E$2:E2)+1;"")

A mettre en C16 pour le résultat : `

Exemple Malade.xlsx (15,8 Ko)

Avec une fonction personnalisée à mettre dans un Module

Function CompteSansDoublons(champ As Range, champcritere As Range, critere As String)
Dim Mondico, i%
  Set Mondico = CreateObject("Scripting.Dictionary") 'Création Dictionnaire
  For i = 1 To champ.Count 'Boucle sur la plage CHAMP
    If UCase(champcritere(i).Value) Like UCase(critere) Then 'Si le ChampCritère contient le Critère en majuscule
      If Not Mondico.Exists(champ(i).Value) Then Mondico.Add champ(i).Value, champ(i).Value 'si le champ n'existe pas
    End If                                      'Alors j'ajoute 1 au dictionnaire
  Next i
  CompteSansDoublons = Mondico.Count 'Nb de champ ajouté au dictionnaire sans doublons
End Function

Exemple Malade.xlsm (21,7 Ko)

`

1 « J'aime »

Merci pour votre réponse. J’ai opté pour la première solution.
1000 merci pour vos propositions.

Bonjour,

Je reviens vers vous, pour voir essayer de faire évoluer mon fichier. Comment faire pour faire le même calcul en fonction des dates (le calcul se fait du lundi au dimanche de la semaine, ensuite il se remet à zéro).
J’espère avoir était précis dans ma demande.

Et encore merci pour vos précieux conseil.

Bonjour,

Il faudrait avoir un classeur exemple plus précis, car je suppose qu’il faut faire le même type de calcul mais par semaine du Lundi au Dimanche

Bonjour,

En effet, il faut faire le même type de calcul à la semaine voir au mois quand je fais un bilan mensuel.
Je vous mets en ligne l’exemple …

MerciExemple Malade.xlsx (16,5 Ko)

Bonjour,

A tester
Exemple Malade (2).xlsx (17,0 Ko)

Bonjour,

Merci pour la réponse. je regarde si cela répond à mon attente.

En tout cas merci car grâce à vous, je me perfectionne dans excel.

Merci

Le ven. 26 oct. 2018 à 00:57, Mimimathy88 contact@formuleexcel.com a écrit :

Bonjour,

A partir de votre exemple, comment remplir “automatiquement” le tableau.
Pour résumer, je souhaite par la suite réaliser un tableau de bord et donc il me faut récupérer les données (le nombre de malade) par semaine directement ds mon tableau.

MerExemple Malade.xlsx (17,6 Ko)
ci pour votre collaboration.

Bonjour,

formule à mettre en K3 et à valider en matricielle (CTRL + MAJ + Entrée) et tirer vers le bas

=NB(SI((NO.SEMAINE.ISO($A$3:$A$19)=H3);$E$3:$E$19))&" malade(s)"

OU

=NB.SI.ENS($A$3:$A$19;">="&I3;$A$3:$A$19;"<="&J3;$C$3:$C$19;"*Malade*")&" malade(s)"

à valider normalement et tirer vers le bas

Exemple Malade (3).xlsx (17,7 Ko)

Bonjour,

Super, je vais utiliser la première solution mais la seconde est bien aussi.
Je vous remercie pour cette aide précieuse.

Merci