Compter les valeurs uniques avec conditions

jmg063

XLDnaute Nouveau
Bonjour,

Nouveau sur le forum, je vous soumets un petit problème.

Je cherche à compter des valeurs uniques en fonctions de deux conditions (Date + autre)

J'ai trouvé plusieurs informations qui m'ont permis d'aboutir à la formule matricielle suivante :

=SOMME(N(FREQUENCE(SI($A$2:$A$35=H3;SI($B$2:$B$35=I3;SI($C$2:$C$35<>"";EQUIV($C$2:$C$35;$C$2:$C$35;0))));LIGNE($C$2:$C$35))>0))

Cette fonction ne donne pas les résultats attendus.. En effet en faisant le comptage manuel ou à l'aide d'un filtre élaboré je ne trouve pas le même résultats.

J'ai créé un fichier simplifié pour mieux expliquer ma demande. (le fichier original est mise à jours quotidiennement avec un ajout d'environs 2000 lignes...)

Si vous trouvez l’erreur....

Bonne journée;
Jean-Marie
 

Pièces jointes

  • Recherche valeure unique avec arguments.xlsx
    71.4 KB · Affichages: 311

Dull

XLDnaute Barbatruc
Re : Compter les valeurs uniques avec conditions

Salut jmg063 et Bienvenue, le Forum

Peut-être avec un simple SOMMEPROD en J3 à copier vers le bas

Code:
=SOMMEPROD(($A$2:$A$21=H3)*($B$2:$B$21=I3))

par contre je ne trouve pas le même résultat que toi en en J5 car il y a bien 4 date c pour 4 type z :confused:

A confirmer

Bonne Journée
 

jmg063

XLDnaute Nouveau
Re : Compter les valeurs uniques avec conditions

Bonjour Dull,

Merci pour ta réponse, mas malheureusement elle ne m'aide pas... pour les raisons suivantes :

- Sommeprod est (si je me souviens bien mes recherches) perturbé par les cellules vides...
- l'utilisation de sommeprod que tu me proposes me donnes le nombre de valeur d'un type particulier pour une date particulière... mais il omet la notion de valeur "unique"...

Une autre idée? :)
 

david84

XLDnaute Barbatruc
Re : Compter les valeurs uniques avec conditions

Bonjour, salut Dull:),
à tester :
Code:
=SOMME(N(FREQUENCE(SI(A$2:A$35=H3;SI(B$2:B$35=I3;SI(C$2:C$35<>"";EQUIV(C$2:C$35;C$2:C$35;0))));LIGNE(C$1:C$35))>0))
Le calcul de ton classeur doit être sur le mode de calcul automatique.
A+
 
Dernière édition:

jmg063

XLDnaute Nouveau
Re : Compter les valeurs uniques avec conditions

Bonjour David,

Merci pour ton aide je teste ça d'ici qq heure.

Par défaut mon excel est en manuel... cette formule n'est qu'une parmi tant d'autres qui se recoupent, un calcul de feuille prend entre 5 et 10 minutes... Donc je ne lance les calculs qu'une fois par jour avant la pause café ;)
 

jmg063

XLDnaute Nouveau
Re : Compter les valeurs uniques avec conditions

David,

Je n'ai pas eu le temps de vérifier tq fonction, mais de ce que je vois la seul différence est dans la prtie "ligne"?

JB, ta solution me parait bien et en effet plus rapide, je ne suis pas á l'aise avec le VBA mais je vais tenter de retranscrir ton script sur mon fichier d'origine. Aussi peux tu me confirmer que l'on peux imbriquer des fonctions personnalisé entre elle?

Merci pour votre aide, top et pratique ce forum!
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Compter les valeurs uniques avec conditions

-Alt+F11
-Insertion/Module

Code:
Function ItemsDifferentsCritere(champ, champcritere1, critere1, champcritere2, critere2)
  Application.Volatile
  Set MonDico = CreateObject("Scripting.Dictionary")
  a = champ      ' tableau + rapide
  b = champcritere1
  c = champcritere2
  For i = 1 To champ.Count
    If b(i, 1) = critere1 And c(i, 1) = critere2 And a(i, 1) <> "" Then MonDico(a(i, 1)) = ""
  Next i
  ItemsDifferentsCritere = MonDico.Count
End Function

Pour une maj automatique à la saisie

Code de la feuille

Private Sub Worksheet_Change(ByVal Target As Range)
Calculate
End Sub

JB
 
Dernière édition:

jmg063

XLDnaute Nouveau
Re : Compter les valeurs uniques avec conditions

Bonjour,

Merci JB, j'ai réussi à adapter ton script à mon projet.

En revanche j'ai aussi cherché à le modifier en ajoutant une condition suplémentaire sans succé... Je m'explique

Pour une date donnée j'ai une liste de numéro de téléphone qui peuvent être "pris" ou "perdus"

Ton script me permet bien de compter le nombre de numéro unique pour une date si "pris" ou "perdu"

J'aimerai maintenant compter le nombre de numéro pour une journée "perdus" ET non "pris (Pour une même journée le même numéro peut être deux fois pris et deux fois perdus)

J'ai utiliser la fonction matricielle suivante mais pareil que pour ma premiere demande le résultats n'est pas juste...

=SOMME(N(FREQUENCE(SI(Appels!$A$10000:$A$50000='Résumé Journée'!B77;SI(Appels!$L$10000:$L$50000<>"";EQUIV(Appels!$L$10000:$L$50000;Appels!$L$10000:$L$50000;0)));LIGNE(Appels!$E$10000:$E$50000))>0))-SOMME(N(FREQUENCE(SI(Appels!$A$10000:$A$50000='Résumé Journée'!B77;SI(Appels!$J$10000:$J$50000="Traité";SI(Appels!$L$10000:$L$50000<>"";EQUIV(Appels!$L$10000:$L$50000;Appels!$L$10000:$L$50000;0))));LIGNE(Appels!$E$10000:$E$50000))>0))

Est-ce possible, toute les pistes sont les bienvenue!

PS : merci pour le lien vers le Tuto que je lirai avec attention.

JMG
 

Discussions similaires

Statistiques des forums

Discussions
312 500
Messages
2 089 013
Membres
104 004
dernier inscrit
mista