Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Merci pour votre aide... nouveau besoin.

13 réponses
Avatar
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

10 réponses

1 2
Avatar
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
Avatar
AV
PS : la plage pondération est en C2:Cxxx

AV
Avatar
Scherzando
Merci.

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



"AV" a écrit dans le message de news:

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




Avatar
AV
ç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

Avatar
Scherzando
Parfait...
Merci.

"AV" a écrit dans le message de news:

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

AV



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


"AV" a écrit dans le message de news:
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




Avatar
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

Avatar
Scherzando
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


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




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

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



1 2