OVH Cloud OVH Cloud

Index-ligne-decaler et compagnie

13 réponses
Avatar
Patrick BASTARD
Bonsoir, toutes et tous.

Je coince sur le tableau suivant :
http://cjoint.com/?bCtpdbB2mz

Des dates en colonne B, des pourcentages en colonne E
Une mise en forme conditionnelle est appliquée, et un résultat est calculé
sur les lignes en fonction de critères saisis dans 2 cellules (numéros de
lignes)
Je souhaite saisir, plutôt que les numéros de lignes, les dates (début et
fin).
J'ai essayé avec Index(), Ligne(), Décaler(), mais sans succès.

Le résultat souhaité est plus explicite dans le fichier dont je joins le
lien.

Je vous remercie par avance de vos suggestions
--
Bien amicordialement,
P. Bastard

10 réponses

1 2
Avatar
JpPradier
Bonsoir Patrick

Voici ton fichier modifié : http://cjoint.com/?bCt6MPwJxR

J'ai utilisé des noms pour la ligne de début et la ligne de fin , identiques dans les
formules et dans la MEFC. Si tu modifies le nb de lignes de ton entete, il suffit de
modifier le nombre dans les 2 noms.
La formule pour la ligne de début :

=5+Equiv($B$4;$B$6:$B$71;0)

j-p
Avatar
LSteph
Bonsoir Patrick,

http://cjoint.com/?bCugsZ6PsJ

formule:
=SOMME(INDIRECT("C"&EQUIV($B4;$B$1:$B$71)):INDIRECT("C"&EQUIV($B5;$B$1:$B$71)))

mefc:
=ET($B6>=$B$4;$B6<=$B$5)

Stéphane

"Patrick BASTARD" a écrit dans le
message de news: %
Bonsoir, toutes et tous.

Je coince sur le tableau suivant :
http://cjoint.com/?bCtpdbB2mz

Des dates en colonne B, des pourcentages en colonne E
Une mise en forme conditionnelle est appliquée, et un résultat est calculé
sur les lignes en fonction de critères saisis dans 2 cellules (numéros de
lignes)
Je souhaite saisir, plutôt que les numéros de lignes, les dates (début et
fin).
J'ai essayé avec Index(), Ligne(), Décaler(), mais sans succès.

Le résultat souhaité est plus explicite dans le fichier dont je joins le
lien.

Je vous remercie par avance de vos suggestions
--
Bien amicordialement,
P. Bastard



Avatar
Patrick BASTARD
Bonsoir, JPP , et P'tit Steph...

Un grand merci pour votre aide

Question subsidiaire (concernant la soluce de LSteph)
Comment se fait-il que =EQUIV($B4;$B$1:$B$71) ne renvoie pas 4 ?

Bonne fin de WE à toutes et tous.


--
Bien amicordialement,
P. Bastard

Bonsoir, toutes et tous.

Je coince sur le tableau suivant :
http://cjoint.com/?bCtpdbB2mz

Des dates en colonne B, des pourcentages en colonne E
Une mise en forme conditionnelle est appliquée, et un résultat est
calculé sur les lignes en fonction de critères saisis dans 2 cellules
(numéros de lignes)
Je souhaite saisir, plutôt que les numéros de lignes, les dates
(début et fin).
J'ai essayé avec Index(), Ligne(), Décaler(), mais sans succès.

Le résultat souhaité est plus explicite dans le fichier dont je joins
le lien.

Je vous remercie par avance de vos suggestions


Avatar
LSteph
Question subsidiaire (concernant la soluce de LSteph)
Comment se fait-il que =EQUIV($B4;$B$1:$B$71) ne renvoie pas 4 ?


EQUIV($B4;$B$1:$B$71)
cherche dans la matrice b1:b71 la valeur contenue en b4 et renvoie sa
position , dans ton exemple si je saisis 14/01/2006 en b4
cela renvoie 17 car le 14 janvier se trouve à la ligne 17 ce qui va bien,
il me semble, dans ta formule indirect.

;-)

l'pti' Steph

"Patrick BASTARD" a écrit dans le
message de news:

Bonsoir, JPP , et P'tit Steph...

Un grand merci pour votre aide

Question subsidiaire (concernant la soluce de LSteph)
Comment se fait-il que =EQUIV($B4;$B$1:$B$71) ne renvoie pas 4 ?

Bonne fin de WE à toutes et tous.


--
Bien amicordialement,
P. Bastard

Bonsoir, toutes et tous.

Je coince sur le tableau suivant :
http://cjoint.com/?bCtpdbB2mz

Des dates en colonne B, des pourcentages en colonne E
Une mise en forme conditionnelle est appliquée, et un résultat est
calculé sur les lignes en fonction de critères saisis dans 2 cellules
(numéros de lignes)
Je souhaite saisir, plutôt que les numéros de lignes, les dates
(début et fin).
J'ai essayé avec Index(), Ligne(), Décaler(), mais sans succès.

Le résultat souhaité est plus explicite dans le fichier dont je joins
le lien.

Je vous remercie par avance de vos suggestions






Avatar
Patrick BASTARD
Re, *LSteph*

EQUIV($B4;$B$1:$B$71)
cherche dans la matrice b1:b71 la valeur contenue en b4 et renvoie sa
position , dans ton exemple si je saisis 14/01/2006 en b4
cela renvoie 17 car le 14 janvier se trouve à la ligne 17


Tout à fait, mais par définition, cette valeur se trouve également en B4,
d'où ma question.
Dans cette syntaxe, l'emplacement du premier argument de Equiv() est-il
exclu de la matrice ?


--
Bien amicordialement,
P. Bastard,
pinailleur qui aime bien comprendre...


;-)

l'pti' Steph

"Patrick BASTARD" a écrit dans le
message de news:

Bonsoir, JPP , et P'tit Steph...

Un grand merci pour votre aide

Question subsidiaire (concernant la soluce de LSteph)
Comment se fait-il que =EQUIV($B4;$B$1:$B$71) ne renvoie pas 4 ?

Bonne fin de WE à toutes et tous.


--
Bien amicordialement,
P. Bastard

Bonsoir, toutes et tous.

Je coince sur le tableau suivant :
http://cjoint.com/?bCtpdbB2mz

Des dates en colonne B, des pourcentages en colonne E
Une mise en forme conditionnelle est appliquée, et un résultat est
calculé sur les lignes en fonction de critères saisis dans 2
cellules (numéros de lignes)
Je souhaite saisir, plutôt que les numéros de lignes, les dates
(début et fin).
J'ai essayé avec Index(), Ligne(), Décaler(), mais sans succès.

Le résultat souhaité est plus explicite dans le fichier dont je
joins le lien.

Je vous remercie par avance de vos suggestions






Avatar
LSteph
Ah que! Mais tu as parfaitement raison !...
et cela aurait pu être une source d'erreur
qui ne m'a pas effleuré l'esprit, aie aie et
curieusement cela fonctionne quand même,
c'est effectivement très étrange "à priori".
Cela mérite de trouver une explication et me laisse tout aussi intéressé que
perplexe.

--
Stéphane

"Patrick BASTARD" a écrit dans le
message de news:
Re, *LSteph*

EQUIV($B4;$B$1:$B$71)
cherche dans la matrice b1:b71 la valeur contenue en b4 et renvoie sa
position , dans ton exemple si je saisis 14/01/2006 en b4
cela renvoie 17 car le 14 janvier se trouve à la ligne 17


Tout à fait, mais par définition, cette valeur se trouve également en B4,
d'où ma question.
Dans cette syntaxe, l'emplacement du premier argument de Equiv() est-il
exclu de la matrice ?


--
Bien amicordialement,
P. Bastard,
pinailleur qui aime bien comprendre...


;-)

l'pti' Steph

"Patrick BASTARD" a écrit dans le
message de news:

Bonsoir, JPP , et P'tit Steph...

Un grand merci pour votre aide

Question subsidiaire (concernant la soluce de LSteph)
Comment se fait-il que =EQUIV($B4;$B$1:$B$71) ne renvoie pas 4 ?

Bonne fin de WE à toutes et tous.


--
Bien amicordialement,
P. Bastard

Bonsoir, toutes et tous.

Je coince sur le tableau suivant :
http://cjoint.com/?bCtpdbB2mz

Des dates en colonne B, des pourcentages en colonne E
Une mise en forme conditionnelle est appliquée, et un résultat est
calculé sur les lignes en fonction de critères saisis dans 2
cellules (numéros de lignes)
Je souhaite saisir, plutôt que les numéros de lignes, les dates
(début et fin).
J'ai essayé avec Index(), Ligne(), Décaler(), mais sans succès.

Le résultat souhaité est plus explicite dans le fichier dont je
joins le lien.

Je vous remercie par avance de vos suggestions










Avatar
LSteph
J'ai compris pourquoi:
Si la valeur de l'argument type est 0, la fonction EQUIV trouve la première
valeur exactement équivalente
Si la valeur de l'argument type est 1, la fonction EQUIV trouve la valeur la
plus élevée qui est inférieure
ou égale à celle de l'argument valeur_cherchée..
Or, d'habitude je me sers d'index et equiv pour des matrices de recherche
pas forcément ordonnées et effectivement
j'ajoute en troisième argument ;0 que pour le coup j'ai involontairement
négligé et si je l'avais précisé cela planterait
la formule qui si l'argument est omis considère que l'on a mis 1 et c'est
pour cela que (coup de bol) cela fonctionne
puisque ta matrice est ordonnée.

;o) a+
lSteph
"Patrick BASTARD" a écrit dans le
message de news:
Re, *LSteph*

EQUIV($B4;$B$1:$B$71)
cherche dans la matrice b1:b71 la valeur contenue en b4 et renvoie sa
position , dans ton exemple si je saisis 14/01/2006 en b4
cela renvoie 17 car le 14 janvier se trouve à la ligne 17


Tout à fait, mais par définition, cette valeur se trouve également en B4,
d'où ma question.
Dans cette syntaxe, l'emplacement du premier argument de Equiv() est-il
exclu de la matrice ?


--
Bien amicordialement,
P. Bastard,
pinailleur qui aime bien comprendre...


;-)

l'pti' Steph

"Patrick BASTARD" a écrit dans le
message de news:

Bonsoir, JPP , et P'tit Steph...

Un grand merci pour votre aide

Question subsidiaire (concernant la soluce de LSteph)
Comment se fait-il que =EQUIV($B4;$B$1:$B$71) ne renvoie pas 4 ?

Bonne fin de WE à toutes et tous.


--
Bien amicordialement,
P. Bastard

Bonsoir, toutes et tous.

Je coince sur le tableau suivant :
http://cjoint.com/?bCtpdbB2mz

Des dates en colonne B, des pourcentages en colonne E
Une mise en forme conditionnelle est appliquée, et un résultat est
calculé sur les lignes en fonction de critères saisis dans 2
cellules (numéros de lignes)
Je souhaite saisir, plutôt que les numéros de lignes, les dates
(début et fin).
J'ai essayé avec Index(), Ligne(), Décaler(), mais sans succès.

Le résultat souhaité est plus explicite dans le fichier dont je
joins le lien.

Je vous remercie par avance de vos suggestions










Avatar
JpPradier
Bonsoir aussi Lsteph

A priori, c'est parce que tu as omis le troisieme argument de Equiv. Par defaut celui-ci
est à 1. Et selon l'aide si le 3e argument est à 1, la liste doit etre en ordre croissant.
Avec 0 Equiv(B4;B1:B71;0) renvoie bien 4. C'est la seule explication que je trouve.

j-p
Avatar
LSteph
Bonsoir JpP (itou),

Comme tu peux le lire (ton post arrive juste après) c'est aussi ma
conclusion!
C'est drôle qu'en faisant 2 erreurs on retombe "parfois" sur ses pieds.
1- j'ai pas prêté attention à ce que ma valeur cherchée était dans la même
colonne que la matrice
2- j'ai omis (grand bien m'en a pris) ce troisième argument que d'habitude
je mets toujours à 0.
Après tout cela fera une ficelle somme toute pédagogique.

;o)) bonne soirée.

lSteph

"JpPradier" a écrit dans le message
de news:
Bonsoir aussi Lsteph

A priori, c'est parce que tu as omis le troisieme argument de Equiv. Par
defaut celui-ci
est à 1. Et selon l'aide si le 3e argument est à 1, la liste doit etre en
ordre croissant.
Avec 0 Equiv(B4;B1:B71;0) renvoie bien 4. C'est la seule explication que
je trouve.

j-p



Avatar
JpPradier
Tout a fait.
Bonne soirée ;-)

j-p
1 2