Excel formule variables

Fermé
Mr.Buzz Messages postés 7 Date d'inscription mercredi 21 octobre 2020 Statut Membre Dernière intervention 11 décembre 2020 - 21 oct. 2020 à 14:23
Raymond PENTIER Messages postés 58499 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 juin 2024 - 25 oct. 2020 à 01:38
Bonjour,

Je cherche à faire fonctionner une formule avec plusieurs variables (A, B, C) qui varieront selon le choix que je fais dans une liste déroulante (choix_1, choix_2 etc ayant chacun des valeurs définies dans un tableau des variables A, B et C). J'espère être assez clair.

Je ne vois absolument pas comment m'y prendre. Des conseils ?

Merci d'avance pour vos réponses
A voir également:

8 réponses

yg_be Messages postés 22895 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juin 2024 1 478
Modifié le 21 oct. 2020 à 14:42
bonjour,
donne peut-être un exemple.
0
Raymond PENTIER Messages postés 58499 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 juin 2024 17 132
21 oct. 2020 à 20:20
Bonjour.

C'est très simple : Tu fais un tableau de correspondance entre lettres et nombres, puis tu utilises la liste déroulante de cellule, d'une part, et la fonction RECHERCHEV, d'autre part.
0
Mr.Buzz Messages postés 7 Date d'inscription mercredi 21 octobre 2020 Statut Membre Dernière intervention 11 décembre 2020 1
22 oct. 2020 à 14:41
Je pense ne pas avoir été assez clair. Je vais donc vous donner un exemple concret.

Je suis un joueur de figurines de l'univers Warhammer 40k, jeu qui obéit à des règles. J'aimerais faire une feuille de calcul excel pour être capable de déterminer combien de touches, blessures et morts en moyenne un tel type d'arme peut occasionner à un tel autre type d'unité.

Je pourrai tout simplement rentrer à la main les 6, 8 variables nécessaires mais c'est un peu rébarbatif et j'aimerais simplifier la chose. Pour cela je souhaiterais que la formule, me permettant de calculer les touches/blessures/morts moyen, soit alimentée par 2 tableaux de données (Armes avec comme variables Attacks/Strengh/PA et Unités avec comme variables Toughness/Wounds/Sv). Il n'y aurait alors qu'à sélectionner via un menu déroulant l'arme et via un autre menu déroulant l'unité puis rentrer quelques variables optionnelles (présence de couvert ou non, nombre de tirs par exemple) pour avoir à l'affichage le nombre de tirs, touches, blessures, morts moyen.

La formule n'est pas compliquée. Je ne sais juste pas comment relier les listes déroulantes à leur tableau de données respectif et la formule.
J'espère pouvoir me passer d'une macro que je serai bien incapable de programmer.

Merci pour votre patience.
0
yg_be Messages postés 22895 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juin 2024 1 478
22 oct. 2020 à 14:56
cela reste un peu flou, il serait sans doute utile que tu partages ton fichier, ou que tu fasses une description plus concrète. de ce que tu veux vois où dans ton classeur. pourquoi ne partages-tu pas la formule?

de ce que je comprends, pourquoi ne pas utiliser des listes déroulantes pour peupler des cellules, et ensuite utiliser ces cellules dans la formule?
0
Mr.Buzz Messages postés 7 Date d'inscription mercredi 21 octobre 2020 Statut Membre Dernière intervention 11 décembre 2020 1
23 oct. 2020 à 18:52
Je ne vois pas bien ce que tu veux dire par "peupler des cellules".

La formule n'est pas vraiment le problème même si elle n'est pas aussi simple que je le pensais.

Je vous partage ce que j'ai fait pour l'instant qui est assez basique (tableaux de données + listes déroulantes). J'ai mis pour l'instant une addition des variables. Je n'ai pas eu le temps de me pencher plus que ça sur la formule que j'utiliserai in fine mais ça devrait suffire pour que vous compreniez ma démarche. Grosso modo que le résultat de mon addition change lorsque je change ma sélection dans les listes déroulantes.

https://www.cjoint.com/c/JJxqRYstjmn
0
yg_be Messages postés 22895 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juin 2024 1 478
Modifié le 23 oct. 2020 à 19:08
en fait, tu n'as pas expliqué ce que tu voulais obtenir. pourquoi ne donnes-tu pas quelques exemples, montrant les résultats attendus quand tu changes les choix dans les menus déroulants?
ta formule est
=Armes!C2+Armes!D2+Armes!E2+Armes!F2+Unités!B2+Unités!C2+Unités!D2

veux-tu aller chercher dans Armes et dans Unités des valeurs sur les lignes qui correspondent à ce que tu as en B2 et C2 dans l'onglet Interface?
connais-tu la fonction RECHERCHEV? https://support.microsoft.com/fr-fr/office/recherchev-recherchev-fonction-0bbc8083-26fe-4963-8ab8-93a18ad188a1

ce qui est précisément la solution propose par Raymond le 21 oct. 2020 à 20:20. as-tu essayé de la comprendre?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mr.Buzz Messages postés 7 Date d'inscription mercredi 21 octobre 2020 Statut Membre Dernière intervention 11 décembre 2020 1
23 oct. 2020 à 19:42
C'est tellement évident pour moi que j'ai du mal à expliquer du coup mais je vais essayer d'être plus clair.
Chaque armes se définit par 5 variables (Range, Attack, Strengh, AP, Damage). Toutes les armes ont des profils différents. Lorsque je change dans la liste déroulante le type d'arme, je m'attends à ce que les variables cités ci dessus changent de valeur aussi dans la formule.

Par exemple, si l'arme 1 a pour pour valeurs (1, 1, 2, 1, 1), l'addition (ma formule basique temporaire) fera 6. Si je choisis l'arme 2 qui a pour valeurs (3, 3, 3, 3, 5), le résultat sera 17 et ainsi de suite.
Le problème est que je ne vois pas comment faire en sorte que le choix d'arme dans la liste déroulante impacte la valeur des variables dans la formule.

Je ne connaissais pas la fonction RECHERCHEV avant que Raymond n'en parle mais je n'ai pas bien compris en quoi ça pouvait m'être utile.
0
yg_be Messages postés 22895 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juin 2024 1 478
23 oct. 2020 à 21:08
tu continues à donner des exemples qui ne se trouvent pas dans ton fichier, je suppose.
tu n'as pas répondu ) ma question: veux-tu aller chercher dans Armes et dans Unités des valeurs sur les lignes qui correspondent à ce que tu as en B2 et C2 dans l'onglet Interface?

je te conseille de prendre un peu de temps et de faire quelques exercices avec RECHERCHEV.
0
Mr.Buzz Messages postés 7 Date d'inscription mercredi 21 octobre 2020 Statut Membre Dernière intervention 11 décembre 2020 1 > yg_be Messages postés 22895 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juin 2024
Modifié le 24 oct. 2020 à 12:44
C'est exactement ça oui. Je vais essayer de m'exercer avec cette fonction pour mieux la comprendre.

Merci pour vos conseils.
0
Raymond PENTIER Messages postés 58499 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 juin 2024 17 132
24 oct. 2020 à 05:22
Cette fonction peut t'être utile car elle résout ton problème ...
0
Raymond PENTIER Messages postés 58499 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 juin 2024 17 132
Modifié le 24 oct. 2020 à 16:49
Bonjour Mr.Buzz.

Sans avoir ton fichier sous les yeux, il était impossible de comprendre la question que tu nous soumettais ...
En fait, la solution vient de l'utilisation de la fonction INDIRECT !
0
Raymond PENTIER Messages postés 58499 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 juin 2024 17 132
24 oct. 2020 à 19:16
Eh bien, Mr.Buzz, j'ai enfin une solution à te proposer.

Elle nécessite d'aménager ton fichier, car il faut commencer par définir des noms pour 38 plages de cellules dans les feuilles Armes et Unités.
Or ces noms ne doivent pas contenir de caractères réservés comme
* ? /
mais pas non plus d'espace ou de tiret, ce qui entraine l'insertion d'une colonne après la colonne A, avec une formule qui les remplace par un
_
(tiret underscore) ; la même formule sera utilisée dans la feuille Interface en B3 et C3.
Je t'ai mis la liste des noms définis dans Interface.

Ce (gros) travail étant accompli, il ne reste plus qu'à saisir en C6 la formule :
 =INDIRECT(B3) Attack+INDIRECT(B3) Strengh+INDIRECT(B3) AP+INDIRECT(B3) Damage
+INDIRECT(C3) Toughness+INDIRECT(C3) Wounds+INDIRECT(C3) Sv


sachant que la formule
 =Flamer Attack
affiche le contenu de la cellule à l'intersection de ces deux plages de cellules, formule presqu'inconnue des utilisateurs d'Excel, malgré sa simplicité et son efficacité !
https://www.cjoint.com/c/JJyrjUmjCdN
J'espère que cette procédure te satisfera.
0
yg_be Messages postés 22895 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juin 2024 1 478
24 oct. 2020 à 19:22
pourquoi pas de simples RECHERCHEV?
0
Raymond PENTIER Messages postés 58499 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 juin 2024 17 132 > yg_be Messages postés 22895 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juin 2024
24 oct. 2020 à 20:42
J'ai commencé par ça, figure-toi.
Mais si tu essaies, tu te rendras compte que ce n'est pas si évident ...
Amicalement.
0
yg_be Messages postés 22895 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juin 2024 1 478 > Raymond PENTIER Messages postés 58499 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 juin 2024
24 oct. 2020 à 21:15
je pense que cela fonctionne avec, pour Attack, =RECHERCHEV(B2;Armes!A2:G26;4)
0
Raymond PENTIER Messages postés 58499 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 juin 2024 17 132
25 oct. 2020 à 01:38
En effet, mon ami yg_be, cela fonctionne parfaitement.
La fonction RECHERCHEV marche sans problème avec des tirets et des espaces dans les données ...

Par conséquent je présente mes excuses à Mr.Buzz et à tous ceux qui se sont intéressés à cette discussion, et que j'ai entraînés dans des complications inutiles.

En conclusion, sans modifier le fichier initial de Mr.Buzz, la formule donnée par yg_be donnera le résultat voulu :

=RECHERCHEV(B2;Armes!A2:G26;3)+RECHERCHEV(B2;Armes!A2:G26;4)+RECHERCHEV(B2;Armes!A2:G26;5)+RECHERCHEV(B2;Armes!A2:G26;6)+RECHERCHEV(C2;Unités!A2:E6;2)+RECHERCHEV(C2;Unités!A2:E6;3)+RECHERCHEV(C2;Unités!A2:E6;4)

Très cordialement.
0