Re bonjour et tous mes voeux pour ceux que ne m'auraient pas encore lu.
j'ai une matrice avec en colonne 1 une liste de lettre a,b,c,d,e,f,g... et
en colonne 2 une pondération 0,1,0,0,1,1,1....
sur la case A1 je saisie une des lettres de la colonne 1 disons "c"
je souhaite voir apparaitre en case A2 la première lettre à partir de "c"
choisie en A1 ayant 1 comme pondération. en l'occurence "e"
Les plages {a;b; } et {0;1; .} Sont nommées "lettres" et "pondérations" La lettre de référence est en A1 En A2 : =INDEX(lettres;EQUIV(1;DECALER(C2;EQUIV(A1;lettres;0);0;NBVAL(pondérations)-EQUIV(A1;lettres;0));0)+EQUIV(A1;lettres;0))
AV
Les plages {a;b; } et {0;1; .} Sont nommées "lettres" et "pondérations"
La lettre de référence est en A1
En A2 :
=INDEX(lettres;EQUIV(1;DECALER(C2;EQUIV(A1;lettres;0);0;NBVAL(pondérations)-EQUIV(A1;lettres;0));0)+EQUIV(A1;lettres;0))
Les plages {a;b; } et {0;1; .} Sont nommées "lettres" et "pondérations" La lettre de référence est en A1 En A2 : =INDEX(lettres;EQUIV(1;DECALER(C2;EQUIV(A1;lettres;0);0;NBVAL(pondérations)-EQUIV(A1;lettres;0));0)+EQUIV(A1;lettres;0))
MERCI, AV j'ai traité dans ce sens en utilisant la commande "SI".
j'ai un nouveau besoin très proche :
nous sommes toujours dans les listes "lettres" et "pondération"
en A1 je saisie une lettre. ce que je souhaite en A2 : 1- si la pondération est 1 alors A2 = A1 (inchangé par rapport à la demande initiale) 2- si la pondération est 0 alors A2 recherche la lettre précédente (et non plus la suivante) dont la pondération est 1. 3- s'il n'y a pas de précédente vrai alors A2 sera égal à la première lettre de la liste.
Merci de ton aide... lorsque tu auras le temps ;-)
Cordialement, Scherzando
"AV" a écrit dans le message de news:
ce que je n'ai pas dit : si A1 = b et que sa pondération est 1 alors je souhaite A2 = b
MERCI, AV j'ai traité dans ce sens en utilisant la commande "SI".
j'ai un nouveau besoin très proche :
nous sommes toujours dans les listes "lettres" et "pondération"
en A1 je saisie une lettre.
ce que je souhaite en A2 :
1- si la pondération est 1 alors A2 = A1 (inchangé par rapport à la demande
initiale)
2- si la pondération est 0 alors A2 recherche la lettre précédente (et non
plus la suivante) dont la pondération est 1.
3- s'il n'y a pas de précédente vrai alors A2 sera égal à la première
lettre de la liste.
Merci de ton aide... lorsque tu auras le temps ;-)
Cordialement,
Scherzando
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message de news:
encViSpLHHA.960@TK2MSFTNGP04.phx.gbl...
ce que je n'ai pas dit :
si A1 = b et que sa pondération est 1 alors je souhaite A2 = b
MERCI, AV j'ai traité dans ce sens en utilisant la commande "SI".
j'ai un nouveau besoin très proche :
nous sommes toujours dans les listes "lettres" et "pondération"
en A1 je saisie une lettre. ce que je souhaite en A2 : 1- si la pondération est 1 alors A2 = A1 (inchangé par rapport à la demande initiale) 2- si la pondération est 0 alors A2 recherche la lettre précédente (et non plus la suivante) dont la pondération est 1. 3- s'il n'y a pas de précédente vrai alors A2 sera égal à la première lettre de la liste.
Merci de ton aide... lorsque tu auras le temps ;-)
Cordialement, Scherzando
"AV" a écrit dans le message de news:
ce que je n'ai pas dit : si A1 = b et que sa pondération est 1 alors je souhaite A2 = b
En ajoutant un nom ("débPlg"), faisant référence à : =INDIRECT(ADRESSE(LIGNE(Pondération);COLONNE(Pondération)))
La formule finale (matricielle) pourrait être : =SI(INDEX(Pondération;EQUIV(A1;lettres;0));A1;INDEX(lettres;EQUIV(MAX(LIGNE(DECALER(débPlg;EQUIV($A$1;lettres;0);0;EQUIV($A$1;lettres;0)))*DECALER(débPlg;EQUIV($A$1;lettres;0);0;EQUIV($A$1;lettres;0)));LIGNE(DECALER(débPlg;EQUIV($A$1;lettres;0);0;EQUIV($A$1;lettres;0)))*DECALER(débPlg;EQUIV($A$1;lettres;0);0;EQUIV($A$1;lettres;0));0)-1))
exemple là : http://cjoint.com/?bdoZTmiK8B
AV
En ajoutant un nom ("débPlg"), faisant référence à :
=INDIRECT(ADRESSE(LIGNE(Pondération);COLONNE(Pondération)))
La formule finale (matricielle) pourrait être :
=SI(INDEX(Pondération;EQUIV(A1;lettres;0));A1;INDEX(lettres;EQUIV(MAX(LIGNE(DECALER(débPlg;EQUIV($A$1;lettres;0);0;EQUIV($A$1;lettres;0)))*DECALER(débPlg;EQUIV($A$1;lettres;0);0;EQUIV($A$1;lettres;0)));LIGNE(DECALER(débPlg;EQUIV($A$1;lettres;0);0;EQUIV($A$1;lettres;0)))*DECALER(débPlg;EQUIV($A$1;lettres;0);0;EQUIV($A$1;lettres;0));0)-1))
En ajoutant un nom ("débPlg"), faisant référence à : =INDIRECT(ADRESSE(LIGNE(Pondération);COLONNE(Pondération)))
La formule finale (matricielle) pourrait être : =SI(INDEX(Pondération;EQUIV(A1;lettres;0));A1;INDEX(lettres;EQUIV(MAX(LIGNE(DECALER(débPlg;EQUIV($A$1;lettres;0);0;EQUIV($A$1;lettres;0)))*DECALER(débPlg;EQUIV($A$1;lettres;0);0;EQUIV($A$1;lettres;0)));LIGNE(DECALER(débPlg;EQUIV($A$1;lettres;0);0;EQUIV($A$1;lettres;0)))*DECALER(débPlg;EQUIV($A$1;lettres;0);0;EQUIV($A$1;lettres;0));0)-1))
exemple là : http://cjoint.com/?bdoZTmiK8B
AV
Pierre CFI [mvp]
pas perdu la form, AV :o))
-- Pierre CFI MVP Microsoft Access
"AV" a écrit dans le message de news:
En ajoutant un nom ("débPlg"), faisant référence à : =INDIRECT(ADRESSE(LIGNE(Pondération);COLONNE(Pondération)))