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

URGENT - Quelle fonction choisir?

13 réponses
Avatar
Piloulondon
Bonjour à tous,
Je ne sais pas quoi faire. J'ai un tableau dans lequel j'ai les colonnes
suivante
Code Postal - Litres - Prix Par litres. Le Prix par Lites dépends du code
postal et de la consommation (moins de 100l, entre 101 et 200, entre 201 et
300, etc...)
J'ai un autre tableau qui contient Code Postal et les intervalles avec les
prix.
Comment puis-je faire pour le champs Prix par litre soit automatiquement
remplit en fonction des 2 critères précédents?
Merci.

10 réponses

1 2
Avatar
Trirème
Bonjour Piloulondon
Peux tu décrire ton tableau avec les prix. De cette façon les réponses
proposées tiendront compte de sa structure.
A moins que tu ne sois prêt à modifier ce tableau pour te "plier" aux
réponses proposées.
Pour gagner du temps je suppose que ce tableau de prix est comme ceci :

0 101 201 301
CP1 x y z
CP2 t u v
CP3
...
Si ce tableau est en A1:E4 de la feuil2
Si tes "codes postaux" du tableau à compléter sont en colonne A
Si tes "litres" sont en colonne B
Si les "Prix par litre" sont en colonne C, le tout avec une ligne
d'entêtes et les données commençant en ligne 2... ouf... ouf
Ecris en C2 puis recopie vers le bas :
=INDEX(Feuil2!$A$1:$E$4;EQUIV(A2;Feuil2!$A$1:$A$4;0);EQUIV(B2;Feuil2!$A$1:$E$1;1))

Cordialement
Trirème

Bonjour à tous,
Je ne sais pas quoi faire. J'ai un tableau dans lequel j'ai les colonnes
suivante
Code Postal - Litres - Prix Par litres. Le Prix par Lites dépends du code
postal et de la consommation (moins de 100l, entre 101 et 200, entre 201 et
300, etc...)
J'ai un autre tableau qui contient Code Postal et les intervalles avec les
prix.
Comment puis-je faire pour le champs Prix par litre soit automatiquement
remplit en fonction des 2 critères précédents?
Merci.


Avatar
Piloulondon
Bonjour Trirème,
Je n'ai pas encore essayé la formule que tu m'as fournie.
Mon tableau en feuille2 ressemble à celui qui tu as proposé.

CP De 0 à 999litres De1000à1999 litres De 2000à2999 ...
CP1 1.2 0.8 0.2
CP2 2.0 1.7 1.0
CP3 4.52 4.20 4.0
etc...

Le tableau en feuille 1 a plus de colonnes. Les colonnes CP, Volume/Litre et
Prix au litre ne sont pas en A, B, et C.

La formule que tu m'as donnée tiendra-t-elle compte de l'intervalle en tête
de colonne? A savoir, si le code postal est CP3 et que le volume/litre50,
le prix/litre sera-t-il 4.20?

Merci encore pour ton aide.

"Trirème" wrote:

Bonjour Piloulondon
Peux tu décrire ton tableau avec les prix. De cette façon les réponses
proposées tiendront compte de sa structure.
A moins que tu ne sois prêt à modifier ce tableau pour te "plier" aux
réponses proposées.
Pour gagner du temps je suppose que ce tableau de prix est comme ceci :

0 101 201 301
CP1 x y z
CP2 t u v
CP3
....
Si ce tableau est en A1:E4 de la feuil2
Si tes "codes postaux" du tableau à compléter sont en colonne A
Si tes "litres" sont en colonne B
Si les "Prix par litre" sont en colonne C, le tout avec une ligne
d'entêtes et les données commençant en ligne 2... ouf... ouf
Ecris en C2 puis recopie vers le bas :
=INDEX(Feuil2!$A$1:$E$4;EQUIV(A2;Feuil2!$A$1:$A$4;0);EQUIV(B2;Feuil2!$A$1:$E$1;1))

Cordialement
Trirème

Bonjour à tous,
Je ne sais pas quoi faire. J'ai un tableau dans lequel j'ai les colonnes
suivante
Code Postal - Litres - Prix Par litres. Le Prix par Lites dépends du code
postal et de la consommation (moins de 100l, entre 101 et 200, entre 201 et
300, etc...)
J'ai un autre tableau qui contient Code Postal et les intervalles avec les
prix.
Comment puis-je faire pour le champs Prix par litre soit automatiquement
remplit en fonction des 2 critères précédents?
Merci.





Avatar
Trirème
Mon tableau en feuille2 ressemble à celui qui tu as proposé.
Ok


Le tableau en feuille 1 a plus de colonnes. Les colonnes CP, Volume/Litre et
Prix au litre ne sont pas en A, B, et C.
Dans ce cas je pense que tu sauras adapter la formule proposée à ta

propre situation. Je te l'explique en détail en cas de besoin mais
l'aide d'Excel devrait t'apporter mieux que moi les quelques autres
options de ces formules.

Décorticage :

=INDEX(Feuil2!$A$1:$E$4;EQUIV(A2;Feuil2!$A$1:$A$4;0);EQUIV(B2;Feuil2!$A$1:$E$1;1))

=INDEX(Feuil2!$A$1:$E$4 ...
INDEX(a;b;c) renvoie la valeur tu tableau a se trouvant en ligne b et
colonne c. Ici Feuil2 est à remplacer par le nom de la feuille contenant
ton barème et dans $A$1:$E$4 remplace A, E, 1 et 4 par ce qu'il convient
($A$1:$E$4 pourrait (et devrait) être un nom que tu choisis toi-même).

... ;EQUIV(A2 ...
EQUIV(d;e;f) renvoie la ième ligne ou colonne de d où elle a trouvé la
valeur e. Soit exactement si f=0 soit à peu près si f=1 (f=-1 ordre
décroissant). A2 représente ici la cellule contenant le CP à renseigner
(dans ta feuille1 si j'ai bien compris) donc tu changes le A en conséquence.

... ;Feuil2!$A$1:$A$4;0) ...
idem pour feuil2 et A, 1 et 4. $A$1:$A$4 est ici la 1ère colonne de ton
barème. Le 0 (zéro) demande à EQUIV de trouver exactement le contenu de
A2. Si A2 n'est pas présent dans le barème, EQUIV renvoie un message
d'erreur (à traiter éventuellement).

... ;EQUIV(B2 ...
B2 représente ici la cellule contenant le "Volume/Litre" à renseigner
(dans ta feuille1 si j'ai bien compris) donc tu changes le B en conséquence.

... ;Feuil2!$A$1:$E$1;1)) ...idem pour feuil2 et A, E et 1. $A$1:$E$1
est ici la 1ère ligne de ton barème. Le 1 final demande cette fois à
EQUIV de trouver "à peu près" la valeur cherchée. IL EST ALORS IMPORTANT
QUE LES DONNÉES DU BARÊME SOIENT PRÉSENTÉES PAR ORDRE CROISSANT. Tu dois
cependant te contenter d'écrire dans cette 1ère ligne du barème :
CP 0 1000 2000 ...
(si tu tiens à : CP De 0 à 999litres De1000à1999 litres De
2000à2999 ... dit le, il y a d'autres possibilités avec la fonction
CHOISIR etc...)
La fonction EQUIV "lit" la valeur recherchée de gauche à droite (ou de
haut en bas) et s'arrête si "elle est allée trop loin" en renvoyant le
numéro de colonne juste avant.
exactement le contenu de A2. Si A2 n'est pas dans le barème EQUIV
renvoie un message d'erreur (à traiter éventuellement).

La formule que tu m'as donnée tiendra-t-elle compte de l'intervalle en tête
de colonne? A savoir, si le code postal est CP3 et que le volume/litre50,
le prix/litre sera-t-il 4.20?
Oui.

La fonction EQUIV "lit" la valeur recherchée de gauche à droite (ou de
haut en bas) et s'arrête si "elle est allée trop loin" en renvoyant le
numéro de colonne juste avant.
De même si tu avais 10000000 de litres la fonction EQUIV renverrait la
dernière colonne du barème.


Merci encore pour ton aide.
Au plaisir


Cordialement
Trirème

Avatar
Trirème
Erratum et confuses

EQUIV(d;e;f) renvoie la ième ligne ou colonne de d où elle a trouvé la
valeur e.
EQUIV(d;e;f) renvoie la ième ligne ou colonne de e où elle a trouvé la

valeur d ...
Quand je disais que :
l'aide d'Excel devrait t'apporter mieux que moi les quelques autres
options de ces formules.


Trirème confus :-[

Avatar
ClémentMarcotte
Je n'ai pas encore essayé la formule que tu m'as fournie.


Encore une autre maudite fausse urgence. Dire que le bénévolat se prête déjà
mal aux urgences...

Avatar
AV
Ave Trirème,

=INDEX(Feuil2!$A$1:$E$4;EQUIV(A2;Feuil2!$A$1:$A$4;0);EQUIV(B2;Feuil2!$A$1:$E$1;
1))


Si je puis me permettre un petit commentaire :
Dans la fonction INDEX, je suis résolument, définitivement, péremptoirement,
contre l'utilisation du 3° argument facultatif (N° de colonne)
Cette utilisation ôte tout intérêt à la combinaison de fonctions INDEX/EQUIV par
rapport au "sinistre" RECHERCHEtruc
Le N° de colonne étant donné sous forme de constante, l'insertion/suppression
d'une colonne dans le tableau va, par ex., poser problème
Pourquoi ne pas utiliser simplement la syntaxe
=INDEX($A$1:$A$4;...)

AV pour le smilblick....

Avatar
Trirème
Le N° de colonne étant donné sous forme de constante, l'insertion/suppression
d'une colonne dans le tableau va, par ex., poser problème
??? Mais ici le 3ème argument n'est pas écrit en dur ? Quelque chose

m'aurait échappé ?
Pourquoi ne pas utiliser simplement la syntaxe
=INDEX($A$1:$A$4;...)
C'est rapport au nom de la feuille dans la formule initiale ? Il voulait

montrer que l'on peut disposer du "barème" dans une autre feuille. Et de
toute façon les références des formules se mettent à jour en cas de
changement de nom et d'ajout/suppression. Non ?

AV pour le smilblick....
On n'écrit pas le schmilblick ?

:-P

Cordialement
Trirème

Avatar
AV
C'est rapport au nom de la feuille dans la formule initiale ?


Non, non.. l'ajout ou pas du nom de feuille (référence 3D), n'a rien à voir avec
l'argumentation précitée

On n'écrit pas le schmilblick ?
Réponse exacte !


AV

Avatar
Trirème

Non, non.. l'ajout ou pas du nom de feuille (référence 3D), n'a rien à voir avec
l'argumentation précitée
Excuse moi si j'insiste mais qu'aurai tu répondu ?


Au plaisir d'apprendre
Trirème

Avatar
AV
Excuse moi si j'insiste mais qu'aurai tu répondu ?


=INDEX(Feuil2!$A$1:$A$4;EQUIV(.....))

PS : n'ayant pas lu le fil, je ne me prononce pas sur la validité de la formule
mais sur la syntaxe
AV

1 2