Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Si avec conditions et recherche de valeur

  • Initiateur de la discussion Initiateur de la discussion cardi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cardi

XLDnaute Junior
Bonjour à tous,

Je suis bloqué sur une formule simple je pense :

Dans un tableau j'ai 2 colonnes (B et C) :

Colonne B, j'ai des niveaux 1, 2 ou 3

Colonne C, des valeurs

Dans la colonne E, je cherche à calculer des valeurs en multipliant les niveaux, par exemple la valeur E4:

Si B8 = 1 alors E8 = C8
Si B8 = 2 alors E8 = C8 * la prochaine valeur au dessus ayant le niveau 1
Si B8 = 3, alors E8 = C8 * la prochaine valeur au dessus ayant le niveau 2 * la prochaine valeur au dessus ayant le niveau 1

Dans le ficher joint, par exemple pour la valeur E 11 :

B 11 = 3 soit E11 = C11 * C10 * C8

Merci d'avance,

CARDI
 

Pièces jointes

Dernière édition:
Bonjour,

Cela ne fonctionne pas de mon côté. Effectivement en B1 il n'y a rien, j'ai mis à jour mon message.

Si B8 = 1 alors E8 = C8
Si B8 = 2 alors E8 = C8 * la prochaine valeur au dessus ayant le niveau 1
Si B8 = 3, alors E8 = C8 * la prochaine valeur au dessus ayant le niveau 2 * la prochaine valeur au dessus ayant le niveau 1
 

Pièces jointes

Votre formule fonctionne seulement si les niveaux 1/2/3 se suivent 1-> 2 -> 3 mais dans mon cas, ce n'est pas le cas :


ligneniveauxquantitévaleurs recherchées
1​
1​
5​
5​
2​
2​
2​
10​
3​
2​
1​
5​
4​
3​
4​
20​
5​
1​
3​
3​
6​
2​
1​
3​
7​
2​
3​
9​
8​
3​
10​
90​
9​
1​
50​
50​
10​
2​
8​
400​
11​
3​
4​
1600​
12​
3​
2​
800​


Par exemple ligne 12 est un niveau 3 avec une quantité de 2. La quantité juste au-dessus en niveau 2 est 8 et la quantité encore plus haut en niveau 1 est 50. Cela donne donc 2 * 8 * 50 = 800

Autres exemples :

Ligne 4 = 4 * 1 * 5 = 20
Ligne 10 = 8 * 50 = 400
Ligne 3 = 1 * 5 = 5

Il faut a chaque fois remonter au niveau inférieur pour récupérer la valeur associée.

Merci.
 
Re,
Voici ce que j'ai pu faire avec une macro ( difficile avec formules )
La ligne 12 je trouve 150 au lieu de 50 ! ( qui a raison ?)
Quant à la ligne 4 compte tenu qu'il n'y a rien au dessus la macro m'affiche 10 au lieu de 5 ( mais ça je peux se corriger en évitant que la macro fasse les même calcul sur cette ligne !
 

Pièces jointes

Bonjour à tous,

A essayer cette formule matricielle:
VB:
=SI($B4=1;$C4;SI($B4=2;$C4*SIERREUR(INDEX(C$3:C3;PETITE.VALEUR(SI(B$3:B3=1;LIGNE(B$3:B3)-2);NB.SI(B$3:B3;1)));0);SI($B4=3;$C4*SIERREUR(INDEX(C$3:C3;PETITE.VALEUR(SI(B$3:B3=2;LIGNE(B$3:B3)-2);NB.SI(B$3:B3;2)));0)*SIERREUR(INDEX(C$3:C3;PETITE.VALEUR(SI(B$3:B3=1;LIGNE(B$3:B3)-2);NB.SI(B$3:B3;1)));0))))
A valider par Ctrl+Maj+Entrée

JHA
 

Pièces jointes

Bonjour le Forum,
Bonjour Cardi, JBARBE🙂 , JHA 🙂,

alors ma pierre à l'édifice comme JHA une formule matricielle à priori un peu plus courte que celle de JHA je joint le premier fichier de de JBARBE dans lequel j'ai ajouté ma pierre et celle de JHA

Cordialement

EDIT a priori ligne 12 la valeur reste a 50 puisque que le niveau est a 1 on ne va pas chercher au dessus comme pour par exemple la ligne 8 du moins suivant ma compréhension
 

Pièces jointes

Dernière édition:
Bonjour jocelyn, Cardi, JHA,
EDIT a priori ligne 12 la valeur reste a 50 puisque que le niveau est a 1 on ne va pas chercher au dessus comme pour par exemple la ligne 8 du moins suivant ma compréhension
Pour la ligne 8 >>>Niveau 1 quantité 3 >>>3 Ligne 6 Niveau 2 Quantité 1 >>> 3 * 1 = 3
Cardi a dit si je ne me trompe post#1:
Si B8 = 2 alors E8 = C8 * la prochaine valeur au dessus ayant le niveau 1
Si B8 = 3, alors E8 = C8 * la prochaine valeur au dessus ayant le niveau 2
Pour moi il est question de la prochaine valeur au dessus dans tout les cas !
Mais attendons la réponse de Cardi qui n'a pas été trés précis dans sa demande jusqu'à maintenant mis à part ses solutions !
Bonne soirée !
 
Dernière édition:
bonjours à tous,

Merci beaucoup, les solutions de Jocelyn et JHA fonctionnent parfaitement.

Je préfère cette solution plutôt qu'une macro.

Effectivement la ligne 12, la valeur doit bien être à 50 car on est en niveau 1.

Vous m'enlever une bonne épine du pied, je n'aurai jamais réussi tout seul.

Bonne journée à tous
 
bonjours à tous,
Effectivement la ligne 12, la valeur doit bien être à 50 car on est en niveau 1.
Bonne journée à tous
Bonjour cardi, tous, toutes,
Malgré ton désaccord avec comme solution une macro, je n'ai toujours pas compris cette solution ligne 12 car il y a toujours un niveau 1 et un niveau 2 d’après ta demande !
Ligne 12 > 1 Ligne 10 > 2 = 50 * 3=150
Ligne 8 > 1 ligne 6 > 2 = 3 * 1 = 3
Bien entendu la Ligne 12 avec tes 50 pouvait se faire par macro !
Mais le fait comme tu le dit ( car on est en niveau 1 ) me laisse pantois !
Bonne journée !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
193
Réponses
1
Affichages
133
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…