Merci pour votre aide... nouveau besoin.

Le
Scherzando
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"

merci de votre aide précieuse.

Scherzando
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
AV
Le #4139251
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
AV
Le #4139241
PS : la plage pondération est en C2:Cxxx

AV
Scherzando
Le #4139211
Merci.

ça ne fonctionne pas j'ai un #N/A .
je ne comprends pas "C2" n'est-ce pas cela qui perturbe ?



"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))

AV




AV
Le #4139201
ça ne fonctionne pas j'ai un #N/A .
je ne comprends pas "C2" n'est-ce pas cela qui perturbe ?


C2 (comme dit dans le PS) c'est si ta plage "pondérations" commence en C2
Pour ne pas être tributaire de la position des plages :

http://cjoint.com/?bcrqCQuytL

AV

Scherzando
Le #4139191
Parfait...
Merci.

"AV"
PS : la plage pondération est en C2:Cxxx

AV



Scherzando
Le #4139181
ce que je n'ai pas dit :
si A1 = b et que sa pondération est 1 alors je souhaite A2 = b


"AV" OO%
ça ne fonctionne pas j'ai un #N/A .
je ne comprends pas "C2" n'est-ce pas cela qui perturbe ?


C2 (comme dit dans le PS) c'est si ta plage "pondérations" commence en C2
Pour ne pas être tributaire de la position des plages :

http://cjoint.com/?bcrqCQuytL

AV




AV
Le #4139121
ce que je n'ai pas dit :
si A1 = b et que sa pondération est 1 alors je souhaite A2 = b


Modifie la formule comme suit :

=SI(INDEX(Pondération;EQUIV(A1;lettres;0))=1;A1;INDEX(lettres;EQUIV(1;DECALER(INDIRECT(ADRESSE(LIGNE(pondérations);COLONNE(pondérations)));EQUIV(A1;lettres;0);0;NBVAL(pondérations)-EQUIV(A1;lettres;0));0)+EQUIV(A1;lettres;0)))

AV

Scherzando
Le #4139081
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"
ce que je n'ai pas dit :
si A1 = b et que sa pondération est 1 alors je souhaite A2 = b


Modifie la formule comme suit :

=SI(INDEX(Pondération;EQUIV(A1;lettres;0))=1;A1;INDEX(lettres;EQUIV(1;DECALER(INDIRECT(ADRESSE(LIGNE(pondérations);COLONNE(pondérations)));EQUIV(A1;lettres;0);0;NBVAL(pondérations)-EQUIV(A1;lettres;0));0)+EQUIV(A1;lettres;0)))

AV




AV
Le #4138431
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]
Le #4138411
pas perdu la form, AV :o))

--
Pierre CFI
MVP Microsoft Access

"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))


exemple là :
http://cjoint.com/?bdoZTmiK8B

AV



Publicité
Poster une réponse
Anonyme