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

Index equiv, la valeur retourné doit être différente de celle entrée

6 réponses
Avatar
J
Bon dimanche aux lève-tôt

j'ai mis cette formule qui semble faire presque ce que je veux.
=INDEX(echelon;EQUIV($L$43;anciennete;0))

Mais, j'ai des valeurs en L43 qui peuvent être 1,2,3 etc
mais les valeurs "anciennete" sont seulement 0,2,4,6,8,10,12,14,16
et donc, si j'ai L43= 5 ma formule retourne #N/A
or j'aurais voulu que l'on ait la borne inférieure comme résultat,
c'est-à-dire:
valeur résultat
1 1
2 2
3 2
4 4
5 4
6 6
7 6
8 8
9 8
10 10
11 10
Comment faire??
Merci d'avance
@+
J@@

6 réponses

Avatar
Eric
Bonjour,

Et en remplacant le 0 dans la fonction Equiv par 1, ca devrait marcher non ?
=INDEX(echelon;EQUIV($L$43;anciennete;1))
car les valeurs dans la table anciennete sont classées dans l'ordre
croissant.

A+
Eric


Bon dimanche aux lève-tôt

j'ai mis cette formule qui semble faire presque ce que je veux.
=INDEX(echelon;EQUIV($L$43;anciennete;0))

Mais, j'ai des valeurs en L43 qui peuvent être 1,2,3 etc
mais les valeurs "anciennete" sont seulement 0,2,4,6,8,10,12,14,16
et donc, si j'ai L43= 5 ma formule retourne #N/A
or j'aurais voulu que l'on ait la borne inférieure comme résultat,
c'est-à-dire:
valeur résultat
1 1
2 2
3 2
4 4
5 4
6 6
7 6
8 8
9 8
10 10
11 10
Comment faire??
Merci d'avance
@+
J@@




Avatar
RaMa
Bonjour

=INDEX(echelon;MAX(1;$L$43-MOD($L$43;2)))

Salutations
RaMa

"J@@" a écrit dans le message de news:

Bon dimanche aux lève-tôt

j'ai mis cette formule qui semble faire presque ce que je veux.
=INDEX(echelon;EQUIV($L$43;anciennete;0))

Mais, j'ai des valeurs en L43 qui peuvent être 1,2,3 etc
mais les valeurs "anciennete" sont seulement 0,2,4,6,8,10,12,14,16
et donc, si j'ai L43= 5 ma formule retourne #N/A
or j'aurais voulu que l'on ait la borne inférieure comme résultat,
c'est-à-dire:
valeur résultat
1 1
2 2
3 2
4 4
5 4
6 6
7 6
8 8
9 8
10 10
11 10
Comment faire??
Merci d'avance
@+
J@@



Avatar
ChrisV
Bonjour J@@,

Comme le précisait Eric, si les données de la plage "anciennete" (nommée ici
anC) sont classées par ordre croissant, et avec la plage de données
"echelon" nommée ici ecH),
=INDEX(ecH;EQUIV(L$43;anC)) , devrait suffir...

Tu pourrais aussi utiliser...
(selon les données de ton exemple, avec la plage anC et ecH contigues,
nommée ici Zn )
=RECHERCHEV(L$43;Zn;2)

Si toutefois les données n'étaient pas rangées par ordre croissant:
(à saisir sans les { } et valider par Ctrl+Shift+Entrée)
{=INDEX(ecH;EQUIV(PETITE.VALEUR(ABS(L$43-anC);1);ABS(L$43-anC);0))}


ChrisV


"J@@" a écrit dans le message de news:

Bon dimanche aux lève-tôt

j'ai mis cette formule qui semble faire presque ce que je veux.
=INDEX(echelon;EQUIV($L$43;anciennete;0))

Mais, j'ai des valeurs en L43 qui peuvent être 1,2,3 etc
mais les valeurs "anciennete" sont seulement 0,2,4,6,8,10,12,14,16
et donc, si j'ai L43= 5 ma formule retourne #N/A
or j'aurais voulu que l'on ait la borne inférieure comme résultat,
c'est-à-dire:
valeur résultat
1 1
2 2
3 2
4 4
5 4
6 6
7 6
8 8
9 8
10 10
11 10
Comment faire??
Merci d'avance
@+
J@@



Avatar
AV
j'ai mis cette formule qui semble faire presque ce que je veux.
=INDEX(echelon;EQUIV($L$43;anciennete;0))
....................

or j'aurais voulu que l'on ait la borne inférieure comme résultat,


Pour la valeur correspondante exacte ou immédiatement inférieure :
(peu importe que la liste soit triée ou en vrac) :

Une formule générique
Matricielle (validation par ctrl+maj+entrée)
=INDEX(echelon;EQUIV(MAX(SI(ancienneté<=L43;ancienneté));ancienneté;0))

AV

Avatar
J
Bonjour Eric, Rama, ChrisV
bonne nouvelle au saut du lit -)) , je vous remercie grandement
en fait j'avais testé (?!?) la solution Eric, mais sans conviction et avec
des lunettes en peau de saucisson, j'ai donc remis le ;0, et donc mauvais
résultat.
Tout va bien maintenant.
J'ai d'autres questions mais très différentes, j'ouvre un autre fil :
"calcul du pourcentage d'une durée"
@+
encore merci
J@@

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

Bonjour J@@,

Comme le précisait Eric, si les données de la plage "anciennete" (nommée
ici anC) sont classées par ordre croissant, et avec la plage de données
"echelon" nommée ici ecH),
=INDEX(ecH;EQUIV(L$43;anC)) , devrait suffir...

Tu pourrais aussi utiliser...
(selon les données de ton exemple, avec la plage anC et ecH contigues,
nommée ici Zn )
=RECHERCHEV(L$43;Zn;2)

Si toutefois les données n'étaient pas rangées par ordre croissant:
(à saisir sans les { } et valider par Ctrl+Shift+Entrée)
{=INDEX(ecH;EQUIV(PETITE.VALEUR(ABS(L$43-anC);1);ABS(L$43-anC);0))}


ChrisV


"J@@" a écrit dans le message de news:

Bon dimanche aux lève-tôt

j'ai mis cette formule qui semble faire presque ce que je veux.
=INDEX(echelon;EQUIV($L$43;anciennete;0))

Mais, j'ai des valeurs en L43 qui peuvent être 1,2,3 etc
mais les valeurs "anciennete" sont seulement 0,2,4,6,8,10,12,14,16
et donc, si j'ai L43= 5 ma formule retourne #N/A
or j'aurais voulu que l'on ait la borne inférieure comme résultat,
c'est-à-dire:
valeur résultat
1 1
2 2
3 2
4 4
5 4
6 6
7 6
8 8
9 8
10 10
11 10
Comment faire??
Merci d'avance
@+
J@@







Avatar
J
Merci Alain
je note
Bonne soirée
J@@

"AV" <
j'ai mis cette formule qui semble faire presque ce que je veux.
=INDEX(echelon;EQUIV($L$43;anciennete;0))
....................

or j'aurais voulu que l'on ait la borne inférieure comme résultat,


Pour la valeur correspondante exacte ou immédiatement inférieure :
(peu importe que la liste soit triée ou en vrac) :

Une formule générique
Matricielle (validation par ctrl+maj+entrée)
=INDEX(echelon;EQUIV(MAX(SI(ancienneté<=L43;ancienneté));ancienneté;0))

AV