OVH Cloud OVH Cloud

Décompte de ligne avec condition

15 réponses
Avatar
Vincent J.
Bonjour,

J'ai un tableau qui comporte plusieurs centaines de lignes et en
simplifiant 3 colonnes.
Une colonne A qui comporte des 0, 1 ou 2 ; une colonne B qui comporte une
date et une colonne C qui comporte une autre date. (Dates sous forme
JJ/MM/AAAA)

Il m'a déjà été expiqué comment faire pour compter le nombre de ligne dans
la colonne A qui comporte le chiffre 0, le chiffre 1 ou le chiffre 2.
Formule utilisée:
=NB.SI(Feuille2!A:A;Données!A3)
Ou Feuille2!A:A est la colonne comportant les 0,1,2 et Données!A3 est la
référence à une cellule comportant la valeur à recherchée (ici, 1)

J'aimerai savoir comment faire pour ajouter une condition à ce décompte?
C'est à dire: Je souhaite connaitre le nombre de ligne dans le tableau pour
lequel la colonne A est égale à 1 ET que la différence entre la colonne B et
C soit inférieur ou égale à 10 années...

Merci de votre aide.

Vincent

5 réponses

1 2
Avatar
Daniel
C'est l'inconvénient des fonctions matricielles. Si tes plages évoluent,
définis des plages dynamiques, ou mets :
Feuille2!B1:B65535 au lieu de Feuille2!B:B.
Daniel
"Vincent J." a écrit dans le message de news:

Impeccable !

Par contre pourquoi ça fonctionne bien sur une plage déterminée et mais
pas lorsque l'on définie une colonne complète.

Je m'explique:
La formule
{=SOMME((Feuille2!B1:B10=1)*SI(ESTNUM(Feuille2!L1:L10);(DATEDIF(Feuille2!L1:L10;Feuille3!B1:B10;"y")>);0))}
fonctionne très bien et me retourne la valeur attendue.

Par contre la formule:
=SOMME((Feuille2!B:B=1)*SI(ESTNUM(Feuille2!L:L);(DATEDIF(Feuille2!L:L;Feuille3!B:B;"y")>);0))
ne fonctionne pas et me donne #NOMBRE...
La seule différence c'est qu'au lieu de cibler un nombre de lignes précis,
je définis les colonnes complétes, car lors de l'import des fichiers, je
ne peux pas prévoir le nombre de lignes importées dans le tableau.

Merci pour cette précision

Vincent




Avatar
Vincent J.
"Daniel" a écrit dans le message de news:

C'est l'inconvénient des fonctions matricielles. Si tes plages évoluent,
définis des plages dynamiques, ou mets :
Feuille2!B1:B65535 au lieu de Feuille2!B:B.


D'accord !

Merci
VIncent

Avatar
Daniel
=SOMME((A1:A2=1)*SI(ET(ESTNUM(B1:B2);B1:B2<="01/01/2007");(DATEDIF(B1:B2;"01/01/2007";"y")>);0))
Daniel
"Vincent J." a écrit dans le message de news:

J'ai:
A1=1 B1/01/1980
A2=1 B2/01/2000

J'utilise une variante de la formule ci dessus, qui me permet de calculer
le nombre de ligne pour lesquelles A = 1 ET "l'année en cours - B >

{=SOMME((A1:A2=1)*SI(ESTNUM(B1:B2);(DATEDIF(B1:B2;"01/01/2007";"y")>);0))}

Ma problématique, c'est que dans la colonne B, je tombe par moment sur des
dates >01/01/2007, du coup cela plante...
Que faire sur cette formule pour que les lignes pour lesquels B est
supérieur à 01/01/2007 soit exclues du décomptes ?

Merci
Vincent



Avatar
Vincent J.
"Daniel" a écrit dans le message de news:
%
=SOMME((A1:A2=1)*SI(ET(ESTNUM(B1:B2);B1:B2<="01/01/2007");(DATEDIF(B1:B2;"01/01/2007";"y")>);0))


Je te remercie pour ta patience, mais j'ai l'impression que cela ne
fonctionne pas.
En utilisant cette formule, associée à 01/01/1988 en B1 et 01/01/2008 en B2,
il me renvoit la réponse #NOMBRE!
La formule devrait me renvoyer 1 en réponse

Si je pose 01/01/1980 en B1 et 01/01/2006 en B2, il me renvoit 1 ce qui est
correcte.
On dirait donc que la condition qui verifie si B1:B2<="01/01/2007 n'est pas
prise en compte.

Merci!

Vincent

Avatar
Daniel
Je commence à fatiguer !
Matricielle toujours :
=SOMME((A1:A2=1)*SI((ESTNUM(B1:B2)*(B1:B2<="01/01/2007"*1));(DATEDIF(B1:B2;"01/01/2007";"y")>);0))
Daniel
"Vincent J." a écrit dans le message de news:


"Daniel" a écrit dans le message de news:
%
=SOMME((A1:A2=1)*SI(ET(ESTNUM(B1:B2);B1:B2<="01/01/2007");(DATEDIF(B1:B2;"01/01/2007";"y")>);0))


Je te remercie pour ta patience, mais j'ai l'impression que cela ne
fonctionne pas.
En utilisant cette formule, associée à 01/01/1988 en B1 et 01/01/2008 en
B2, il me renvoit la réponse #NOMBRE!
La formule devrait me renvoyer 1 en réponse

Si je pose 01/01/1980 en B1 et 01/01/2006 en B2, il me renvoit 1 ce qui
est correcte.
On dirait donc que la condition qui verifie si B1:B2<="01/01/2007 n'est
pas prise en compte.

Merci!

Vincent





1 2