OVH Cloud OVH Cloud

Formule similaire EQUIV()

5 réponses
Avatar
christian
Bonjour
Dans un tableau(Colonnes A:D),en colonne B, se trouve=20
diff=E9rentes valeurs.
En I1:I4, se trouve diff=E9rentes valeurs fixes.
J'ai attribu=E9 un nom pour la zone I1:I4.
Je souhaiterais pouvoir coller en colonne F, la valeur=20
fixe reprise en I1:I4
se rapprochant le plus de la colonne B.
J'ai essay=E9 avec la fonction EQUIV(), mais celle-ci ne me=20
renvoit qu'une position et non la valeur.
Exemple:
Valeurs fixes: 16,5359
(I1:I4) 18,4449
20,0649
21,9979

A B C D E F
1004 16,479 17,762 15,233 16,5359
1005 16,484 17,761 16,323 16,5359
1006 16,482 17,761 19,789 16,5359
1019 18,408 17,764 16,091 18,4449 =09
1020 18,414 17,764 11,277 18,4449
1021 18,416 17,764 8,854 18,4449
1067 20,079 17,999 16,086 20,0649
1068 20,088 18,002 11,587 20,0649
1069 20,086 18,001 8,613 20,0649
=20
Quelle formule devrais-je utiliser pour effectuer cette=20
op=E9ration.
Merci d'avance pour votre aide.=20
Christian

5 réponses

Avatar
Modeste
Bonjour,
AV étant absent....
la fonction INDEX
il est souhaitable que la table I1:I4 soit triée

Fx=INDEX(I1:I4;EQUIV(Bx;I1:I4;1);1)

@+
-----Message d'origine-----
Bonjour
Dans un tableau(Colonnes A:D),en colonne B, se trouve
différentes valeurs.
En I1:I4, se trouve différentes valeurs fixes.
J'ai attribué un nom pour la zone I1:I4.
Je souhaiterais pouvoir coller en colonne F, la valeur
fixe reprise en I1:I4
se rapprochant le plus de la colonne B.
J'ai essayé avec la fonction EQUIV(), mais celle-ci ne
me

renvoit qu'une position et non la valeur.
Exemple:
Valeurs fixes: 16,5359
(I1:I4) 18,4449
20,0649
21,9979

A B C D E F
1004 16,479 17,762 15,233 16,5359
1005 16,484 17,761 16,323 16,5359
1006 16,482 17,761 19,789 16,5359
1019 18,408 17,764 16,091 18,4449
1020 18,414 17,764 11,277 18,4449
1021 18,416 17,764 8,854 18,4449
1067 20,079 17,999 16,086 20,0649
1068 20,088 18,002 11,587 20,0649
1069 20,086 18,001 8,613 20,0649

Quelle formule devrais-je utiliser pour effectuer cette
opération.
Merci d'avance pour votre aide.
Christian
.



Avatar
christian
Bonjour Modeste
Merci de m'avoir répondu.
Concernant la formule INDEX(), cela ne convient pas. Les
valeurs se trouvant dans la colonne B ne correspondant
pas exactement aux valeurs fixes de la table en I1:I4, je
reçois le message d'erreur #N/A.
J'avais déja esseyé cette formule auparavant.
Christian
-----Message d'origine-----
Bonjour,
AV étant absent....
la fonction INDEX
il est souhaitable que la table I1:I4 soit triée

Fx=INDEX(I1:I4;EQUIV(Bx;I1:I4;1);1)

@+
-----Message d'origine-----
Bonjour
Dans un tableau(Colonnes A:D),en colonne B, se trouve
différentes valeurs.
En I1:I4, se trouve différentes valeurs fixes.
J'ai attribué un nom pour la zone I1:I4.
Je souhaiterais pouvoir coller en colonne F, la valeur
fixe reprise en I1:I4
se rapprochant le plus de la colonne B.
J'ai essayé avec la fonction EQUIV(), mais celle-ci ne
me

renvoit qu'une position et non la valeur.
Exemple:
Valeurs fixes: 16,5359
(I1:I4) 18,4449
20,0649
21,9979

A B C D E F
1004 16,479 17,762 15,233 16,5359
1005 16,484 17,761 16,323 16,5359
1006 16,482 17,761 19,789 16,5359
1019 18,408 17,764 16,091 18,4449
1020 18,414 17,764 11,277 18,4449
1021 18,416 17,764 8,854 18,4449
1067 20,079 17,999 16,086 20,0649
1068 20,088 18,002 11,587 20,0649
1069 20,086 18,001 8,613 20,0649

Quelle formule devrais-je utiliser pour effectuer cette
opération.
Merci d'avance pour votre aide.
Christian
.

.





Avatar
Modeste
Bonjour,
le probleme ne vient pas de la fonction INDEX
mais de la valeur retournée par EQUIV
pour une valeur approchée inférieure
il faut :
que la plage I1:In soit triée de façon croissante
et
que le parametre type fourni a EQUIV soit =1

pour une valeur approchée supérieure
il faut :
que la plage I1:In soit triée de façon décroissante
et
que le parametre type fourni a EQUIV soit = -1

voir plus bas selon ton exemple

tiré de l"aide :
../..
EQUIV(valeur_cherchée;matrice_recherche;type)
type est le nombre -1, 0 ou 1 qui indique comment
Microsoft Excel doit procéder pour comparer l'argument
valeur_cherchée aux valeurs de l'argument
matrice_recherche.

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. Les valeurs
de l'argument matrice_recherche doivent être placées en
ordre croissant : ...-2, -1, 0, 1, 2, ..., A-Z, FAUX,
VRAI.

Si la valeur de l'argument type est 0, la fonction EQUIV
trouve la première valeur exactement équivalente à celle
de l'argument valeur_cherchée. Les valeurs de l'argument
matrice_recherche peuvent être placées dans un ordre
quelconque.

Si la valeur de l'argument type est -1, la fonction EQUIV
trouve la plus petite valeur qui est supérieure ou égale
à celle de l'argument valeur_cherchée. Les valeurs de
l'argument matrice_recherche doivent être placées en
ordre décroissant : VRAI, FAUX, Z-A, ..., 2, 1, 0, -1, -
2, ..., et ainsi de suite.

Si l'argument type est omis, la valeur par défaut est 1.

attention également aux problemes de bornes
exemple:
B F G I K
16,479 0 16,5359 0 100
16,484 0 16,5359 16,5359 21,9979
16,482 0 16,5359 18,4449 20,0649
18,408 16,5359 18,4449 20,0649 18,4449
18,414 16,5359 18,4449 21,9979 16,5359
18,45 18,4449 20,0649 100 10
20,079 20,0649 21,9979
20,088 20,0649 21,9979 Listeplus ListeMoins
23,086 21,9979 100

F1=INDEX(ListePlus;EQUIV(B1;ListePlus;1);1)

G1=INDEX(ListeMoins;EQUIV(B1;ListeMoins;-1);1)

@+




-----Message d'origine-----
Bonjour Modeste
Merci de m'avoir répondu.
Concernant la formule INDEX(), cela ne convient pas. Les
valeurs se trouvant dans la colonne B ne correspondant
pas exactement aux valeurs fixes de la table en I1:I4,
je

reçois le message d'erreur #N/A.
J'avais déja esseyé cette formule auparavant.
Christian
-----Message d'origine-----
Bonjour,
AV étant absent....
la fonction INDEX
il est souhaitable que la table I1:I4 soit triée

Fx=INDEX(I1:I4;EQUIV(Bx;I1:I4;1);1)

@+
-----Message d'origine-----
Bonjour
Dans un tableau(Colonnes A:D),en colonne B, se trouve
différentes valeurs.
En I1:I4, se trouve différentes valeurs fixes.
J'ai attribué un nom pour la zone I1:I4.
Je souhaiterais pouvoir coller en colonne F, la valeur
fixe reprise en I1:I4
se rapprochant le plus de la colonne B.
J'ai essayé avec la fonction EQUIV(), mais celle-ci ne
me

renvoit qu'une position et non la valeur.
Exemple:
Valeurs fixes: 16,5359
(I1:I4) 18,4449
20,0649
21,9979

A B C D E F
1004 16,479 17,762 15,233 16,5359
1005 16,484 17,761 16,323 16,5359
1006 16,482 17,761 19,789 16,5359
1019 18,408 17,764 16,091 18,4449
1020 18,414 17,764 11,277 18,4449
1021 18,416 17,764 8,854 18,4449
1067 20,079 17,999 16,086 20,0649
1068 20,088 18,002 11,587 20,0649
1069 20,086 18,001 8,613 20,0649

Quelle formule devrais-je utiliser pour effectuer
cette



opération.
Merci d'avance pour votre aide.
Christian
.

.


.






Avatar
AV
En B1 et recopie --> Bx
Matricielle (validation par Ctrl + maj + Entrée) :
=INDEX($I$1:$I$4;EQUIV(PETITE.VALEUR(ABS(B1-$I$1:$I$4);1);ABS(B1-$I$1:$I$4);0))

PS : il n'est pas nécessaire que les plages soient triées

AV
Avatar
christian
Merci à vous deux Modeste et AV.
Je vais mettre tout cela en pratique.
Christian
-----Message d'origine-----
En B1 et recopie --> Bx
Matricielle (validation par Ctrl + maj + Entrée) :
=INDEX($I$1:$I$4;EQUIV(PETITE.VALEUR(ABS(B1-
$I$1:$I$4);1);ABS(B1-$I$1:$I$4);0))


PS : il n'est pas nécessaire que les plages soient triées

AV


.