Compter des lignes sans les doublons avec des conditions restrictives d'autres colonn

mayok

XLDnaute Nouveau
Bonjour,
Après avoir parcouru de long en large le forum et avoir trouvé des éléments de réponse à ma question, je n'ai pas trouvé l'outil idéal!
Voici mon problème :
Je souhaite avoir le résultat d'un nombre de dates pour lesquelles il y aurait eu une opération particulière, opération pouvant être effectuée par plusieurs ouvriers :

Date Opération Ouvrier
02/01/12 Irrigation John
03/01/12 Irrigation John
04/01/12 Irrigation John
04/01/12 Irrigation Henri
05/01/12 Labour Bernard
06/07/12 Irrigation John

Pour cet exemple je souhaiterais avoir le nombre de jours totaux passés à l'irrigation, tous ouvrier confondus, c'est à dire dans l'exemple présent : 4 jours (John et Henri ayant été 2 à l'irrigation le même jour, cela ne compte qu'une journée.

Je voudrais que ce résultat s'affiche sur une feuille dédiée, sur laquelle 2 case permettent de rentrer une date de début et une date de fin. J'ai bien réussit en faisant :

=NB.SI.ENS(Date;">="&Datedébut;Date;"<="&Datefin;Opération;"="Irrigation)

Mais cela ne me supprime pas les doublons et m'affiche le résultat 5.
Comment puis-je faire pour enlever les doublons dans une telle formule.

J'ai vu les solutions avec SOMMEPROD, mais dans mon cas cela ne peut pas être combiné avec des critères sur plusieurs colonnes.

Merci d'avance pour votre aide et longue vie au forum qui m'a permis de me sortir de bien des situations périlleuses!
 

mayok

XLDnaute Nouveau
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

Voici le fichier excel correspondant :
La page synthese de données avec les données brutes.
La page Irrigation qui comporte une TCD, pour synthèse générale et un tableau avec la formule que je souhaite appliquer
La page listes avec les listes à destination de la page synthèse.

L'idée est que ce ne sera pas moi qui utiliserais ce tableur mais une personne ne s'occupant que de la saisie des données dans la page de synthèse. c'est pourquoi je souhaite que la formule soit au plus simple et que cette personne n'ait qu'à modifier les dates en jaune de la page Irrigation pour obtenir ses résultats.
Merci d'avance
 

Pièces jointes

  • Test.xls
    35 KB · Affichages: 181
  • Test.xls
    35 KB · Affichages: 185
  • Test.xls
    35 KB · Affichages: 189
Dernière édition:

VDAVID

XLDnaute Impliqué
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

Bonjour Mayok,

Avec une colonne intermédiaire sur ta feuille synthèse de données et un SOMMEPROD, cela fonctionne.
Un test en P.J

Bonne journée!
 

Pièces jointes

  • Test(1).xls
    46 KB · Affichages: 220
  • Test(1).xls
    46 KB · Affichages: 194
  • Test(1).xls
    46 KB · Affichages: 196

mayok

XLDnaute Nouveau
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

Salut VDAVID

Effectivement ta solution a l'air simple, cependant un dysfonctionnement :
-Si les données dates ne sont pas saisies les unes à la suite des autres, cela ne fonctionne pas.
Dans l'exemple que tu m'as renvoyé, on a bien un résultat de 4 journées d'irrigation alors que celui-ci devrait être de 3...( le 02/12/2012, 2 ouvriers ont participé à l'irrigation)
Ca ne résoud donc pas mon problème!:eek:
 

VDAVID

XLDnaute Impliqué
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

Re mayok,

Effectivement, je ne me suis pas assez plongé dans ton problème et la formule ne fonctionne pas.

Je l'ai modifiée, à vérifier en P.J

Bonne journée
 

Pièces jointes

  • Test(1).xls
    47.5 KB · Affichages: 177
  • Test(1).xls
    47.5 KB · Affichages: 160
  • Test(1).xls
    47.5 KB · Affichages: 159

mayok

XLDnaute Nouveau
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

Salut David et merci pour tes réponses rapides!!

J'ai regardé de plus près cette deuxième version que tu propose, intéressant avec cette fonction RECHERCHEV, je n'y avait pas pensé! Merci beaucoup!

Cette formule fonctionne parfaitement, par contre elle nécessite d'actualiser la formule de base à chaque nouvelle saisie de ligne afin de rentrer la nouvelle plage de cellules dans la fonction SOMMEPROD. (dans ton exemple comprise entre $B$2:$B$19)
Sais tu si il y aurait une possibilité de faire en sorte que cette plage s'actualise d'elle même?Je m'explique :
-Dans mon cas la personne qui va saisir les lignes de données dans le tableau excel ne doit pas avoir à faire de manipulations dans les formules du tableau, l'idéal étant que ta formule soit déjà étendue au préalable dans la colonne A sur un nombre gigantesque de lignes, ou bien que l'opérateur n'ait qu'à utiliser la poignée de recopie pour faire appliquer cette formule.
Hors dans ton exemple il faut changer le contenu de la première cellule en fonction du nombre de lignes pour ensuite l'appliquer.
J'ai essayé en mettant B:B et cela ne fonctionne pas, ni avec B$:B35000 (un genre d'infini...)
Aurais tu une possibilité pour étendre cette formule sans intervention dans la formule de base?

Merci encore pour ta participation et ta solution qui est déjà effective!
 

david84

XLDnaute Barbatruc
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

Bonjour,
Sais tu si il y aurait une possibilité de faire en sorte que cette plage s'actualise d'elle même?
Pour cela, il faut rendre tes plages dynamiques en utilisant la fonction DECALER, soit directement à l'intérieur de tes formules, soit en nommant tes plages.
Pour plus d'information sur cette fonction, vois Ce lien n'existe plus et Ce lien n'existe plus par exemple.
A+
 

VDAVID

XLDnaute Impliqué
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

Bonjour Mayok, david84

Comme l'a dit David84 (Qui a un très joli patronyme au passage :p ) il existe pas mal de façon de rendre une plage dynamique.

J'ai mis une des possibilitées en P.J, en utilisant INDIRECT + EQUIV, avec ou sans cellule intermédiaire. La formule va chercher la dernière ligne non vide de la colonne où les dates sont entrées.

Si tu as d'autres questions n'hésites pas !

Bonne journée
 

Pièces jointes

  • Test%281%29(1).xls
    81 KB · Affichages: 106

mayok

XLDnaute Nouveau
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

Merci pour ce lien david84.
J'ai donc bien utilisé la formule décrite pour actualiser la plage donnée, en incrémentant un nom dynamique :
=SI(ESTERREUR(RECHERCHEV(B2;$B$1:B1;1;0));1;SOMMEPROD(1*(operationmax<>E2)*(datemax=B2)))
avec 2 noms pour la colonne date et la colonne opération qui sont en jeu dans la formule SOMMEPROD :
datemax="DECALER('Synthèse Données'!$B$11;1;0;NBVAL('Synthèse Données'!$B:$B)-1)"
operationmax="DECALER('Synthèse Données'!$E$1;1;0;NBVAL('Synthèse Données'!$E:$E)-1)"

Cependant je constate des erreurs dans l'appréciation de la valeur 0 ou 1 (en rouge dans le fichier joint)

Des idées de là où ça cloche, je pense pourtant avoir correctement appliqué la formule?

d'ailleurs la formule finale Irrigation ne fonctionne plus...j'en perds la tête!!
 

Pièces jointes

  • Copie de Test(1)-1.xls
    38.5 KB · Affichages: 90

mayok

XLDnaute Nouveau
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

Vdavid, je viens de voir voir ta dernière contribution, hors si par exemple tu rajoute ne serait-ce qu'une ligne à la suite, par exemple le 25/03/2012 -- Irrigation, cette valeur devrait normalement être comptabilisée 0 et non pas 1 car la formule appliquée en colonne A va de la cellulle A1 à la cellule A19.
C'est pour celle-ci que je souhaite adapter la zone de selection des données
 

VDAVID

XLDnaute Impliqué
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

Re,

Autant pour moi,
Pas réveillé ce matin !

En A2:

=SI(ESTERREUR(RECHERCHEV(B2;$B$1:B1;1;0));1;SOMMEPROD(1*(INDIRECT("$E$2:$E$" & EQUIV(9^9;B:B))<>E2)*(INDIRECT("$B$2:$B$" & EQUIV(9^9;B:B))=B2)))


A faire glisser sur le même principe, INDIRECT + EQUIV
 

mayok

XLDnaute Nouveau
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

J'ai bien appliqué ta modification (en enlevant l'espace dans SOMMEPROD ;) ), mais toujours un souci si je rajoute des lignes supplémentaires :
25/03/2012 Irrigation
02/12/2012 Irrigation
La ligne 02/12 existe bien déjà et il me met bien la valeur 0
Mais la ligne 25/03 existe aussi et il me met la valeur 1

:confused:
 

mayok

XLDnaute Nouveau
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

J'ai bien appliqué ta modification (en enlevant l'espace dans SOMMEPROD ;) ), mais toujours un souci si je rajoute des lignes supplémentaires :
25/03/2012 Irrigation
02/12/2012 Irrigation
La ligne 02/12 existe bien déjà et il me met bien la valeur 0
Mais la ligne 25/03 existe aussi et il me met la valeur 1

:confused:

Et si je rajoute une ligne avec 25/03 et Labour, alors les valeurs passent à 2 !!!
 

david84

XLDnaute Barbatruc
Re : Compter des lignes sans les doublons avec des conditions restrictives d'autres c

Re
Ci-joint une proposition en passant par une table Excel, une colonne intermédiaire et une formule matricielle en F11 de la feuille Irrigation.
Puisque tu passes par une table Excel, pas besoin d'utiliser DECALER puisque les lignes rajoutées dans la table sont automatiquement prises en compte (c'est l'un des intérêt de passer par un tableau de ce type).
Je t'ai également ajouté une ligne de sous-totaux pour info mais tu peux l'enlever si tu veux.
La formule en colonne Test fait référence au filtre de rapport choisi.
A+
 

Pièces jointes

  • Test (34).xls
    120.5 KB · Affichages: 147

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 300
Membres
103 173
dernier inscrit
Cerba95