Formule nombre occurence

Bonjour à tous,

Je rencontre une diffciulté pour une formule comptant les occurences. MAIS !! C'est une situation un petit peu particulière, je joins le fichier en pièce jointe.

Mon fichier concerne les produits en litige par jour. J'aimerai pouvoir compter le nombre de fois où un fournisseur est en litige mais en ne comptant le fournisseur qu'une fois par jour (une commande contient plusieurs produits pour un même fournisseur, je ne veux compter l'occurence qu'une fois pour un jour). Seulement, je ne peux pas utiliser la formule nbsiens puisque je n'ai pas de critère date (voir deuxième onglet).

Faites le moi savoir si vous désirez davantage d'informations.

Merci beaucoup pour votre aide précieuse !!!!

Julien

Bonjour, et bonne année !

On dirait qu'elle commence mal... le fichier ne nous est pas parvenu...

@ bientôt

LouReeD

Bonjour LouReeD et bonne année !

En effet elle ne commence pas très bien

Le voici !!

Personne pour m'aider ?

Je reste bloquer...

Bonjour,

je ne peux pas utiliser la formule nbsiens puisque je n'ai pas de critère date (voir deuxième onglet).

Tu n'as pas le choix, il te faut ajouter le critère Date sinon comment veux-tu savoir ce qui appartient à un jour et pas à l'autre ?

Ici, en ajoutant en entête les dates (du 20/12/2019 au 03/01/2019), j'ai utilisé SommeProd() sur une feuille et Nb.Si.Ens() sur une autre, à toi de voir :

Bonjour,

Je pense avoir ce qu'il te faut!

J'ai dû passer par du VBA par contre...

Function NbSiDoublon(plage As Range, critère, plage_doublon As Range) As Double
'Déclaration de variables
Dim colec As New Collection

On Error Resume Next

'Boucle sur les cellules pour voir si elles remplissent le critère et si la date est déjà présente ou non
For Each cel In plage.Cells
    If cel = critère Then
        colec.Remove (CStr(plage_doublon.Cells(cel.Row)))
        colec.Add 1, CStr(plage_doublon.Cells(cel.Row, 1))
    End If
Next cel
On Error GoTo 0

'Retour de la valeur
NbSiDoublon = colec.Count
End Function

Cette fonction personnalisée peut être appelée directement dans le classeur par son nom (comme toute fonction), elle prend trois arguments qui sont obligatoires:

plage As Range, critère, plage_doublon As Range

plage, c'est la plage de cellule où tu vas vérifier ton critère, critère, bon c'est le critère... et plage_doublon, c'est la plage de cellule sur laquelle tu vas checker les doublons, ici ce sera la plage des dates, pour ne pas compter plusieurs fois la même date...

Une fois que tu as tout renseigné, ça te retournera la valeur que tu peux voir dans le fichier, il faudra activer les macros dans le classeur bien sûr, sinon tu auras une erreur au lieu d'avoir la valeur de la fonction.

Voici le fichier:

Bonjour Theze, Bonjour Ausecour,

Merci à tous les deux pour vos réponses !!

La solution de Ausecour me paraît beaucoup plus adaptée !! Je n'avais vraiment pas pensé au VBA pour ma solution puisque je voulais y insérer un filtre date dans le but de pouvoir borner mes dates dans le tableau d'analyse.

Ne saurais-tu pas également comment ajouter un filtre date par VBA ? J'ai essayé par une formule simple mais je n'y parviens pas et idem par VBA. Je souhaite pouvoir ajouter les dates dans des cellules afin de borner la période que je veux analyser.

Merci beaucoup pour ton aide précieuse !!

Julien

Rebonjour,

Je me suis penché sur ta question mais je n'ai rien de concluant pour le moment, il faudrait que je modifie la fonction pour prendre en compte une recherche multicritère... je vais voir si je peux faire ça ou non... Sinon peut-être générer une plage par formule si jamais tes dates sont triées dans l'ordre croissant...

Je ne pourrai pas te répondre tout de suite en tout cas, à bientôt

Bonjour,

Reposé du week-end, j'ai cette fois trouvé une solution, un NB.SI.ENS qui ne compte pas les doublons en plus, et qui peut prendre des comparateurs comme ">=" et "<" en compte.

Je ne te mets pas les lignes de code ici puisque tu peux les retrouver via l'onglet VBA d'Excel, je te joins juste le fichier avec un exemple qui prend les dates entre le 1er décembre 2018 et le 31 décembre 2018, tu peux changer les dates et tester pour voir si tout suit comme prévu.

Je crois que le temps d'exécution de la fonction n'est pas trop mauvais, car je ne parcours pas à nouveau les cellules qui ne correspondaient pas déjà aux critères précédents, puisque soit je ne les ajoute pas à le collection au départ, soit je les enlève de la collection au fur et à mesure

Voici le fichier en question:

Bonjour !

Encore une fois, cela répond parfaitement à ma demande !!

Merci énormément pour ton aide précieuse c'est génial !!

Bonne continuation !!

Bonjour,

De rien, content que ça réponde à ta demande

Bonne continuation

Rechercher des sujets similaires à "formule nombre occurence"