Formule avec donnée d'entrée variable

Bonjour tout le monde!

j'espère que vous allez bien! Me voila de retour, toujours avec mon fichier de gestion de ferme virtuelle (pour ceux et celles qui se souviennent m'avoir aidé par le passé).

De retour sur le jeu, après quelques années de pause, le jeu a bien évolué, et mon fichier de l'époque, toujours bien apprécié par la communauté...mais périmé, et trop "usine à gaz" pour le mettre à jour, du coup je refais (je tente) une version plus light. Nouvelle version, donc refonte à 99%, retravailler toutes les formules...bref : l'éclate (ça tombe bien : en ce moment, u boulot, c'est pas ça...)!!

Bref, si je suis là, c'est pas pour raconter ma vie, mais c'est parce que j'ai besoin d'un coup de main

j'ai laissé que le minimum dans le fichier ci-joint, pour ne pas trop embrouiller les esprits

Voila comment marche le fichier :

onglet animaux :

1) en D4 le joueur choisis le pays de son exploitation. Ça a une incidence, entr'autre, sur les cultures possibles et donc sur les aliments des animaux.

2) en H11 il choisis le type de ration qu'il utilise

3) en H17 et H18, il choisis les aliments spécifiques de sa ration (en gros la ration a des aliments fixes, et d'autres "selon le choix du joueur")

4) entre D8 et E21, il indique le nombre d'animaux dans sa ferme.

le reste des options n'est pas utilisable dans l'exemple joint mais n'a pas d'incidence à mon problème

Dans l'onglet coût, en B6 il renseigne une durée de stockage de marchandises, et en fonction (non opérationnel dans l'exemple joint), le fichier checke les quantités nécessaires, les stocks existants, et définie les quantités à acheter pour répondre à l'objectif de durée.

L'onglet BDD (celui qui nous concerne ici), c'est... la base de données , données issues des règles du jeu, et je m'en sers aussi pour faire quelques calculs, dont notamment les calculs d'aliments nécessaires pour les animaux... et c'est là qu'on arrive à mon souci...

Ce qui nous intéresse ici se trouve donc dans l'onglet BDD, entre les colonnes AP et AY, et plus exactement la ligne 164 (si le problème est résolu ici, les lignes suivantes (en orange) sont +/- un copier coller...)

le tableau en orange donc...

Sur la ligne 163, ca affiche la ration renseignée dans l'onglet "animaux". De là, ca renseigne les composants/aliments qui composent la ration (avec un recherchev tout bête) dans le grand tableau du dessus (entre les lignes 28 et 160)qui est la base de donnée, avec les quantités/animal (un extract des règles quoi...)

Le tableau orange multiplie donc les quantités, aliment par aliment, selon le nombre d'animaux dans les différentes tranches d'âge (la aussi par un recherchev.. je fais avec mes connaissances, mais s'il y a mieux (hors VBA), je suis preneur aussi!).

Jusque la, tout va bien...

La ou ca se corse, c'est pour les aliments spécifiques : ils ne sont pas toujours à la même place dans les données de base... Certes je pourrais les déplacer dans le tableau blanc pour les faire arriver toujours au même endroit dans les rations... On va dire que c'est mon plan B...le plan A étant de trouver une formule qui va bien sans avoir a modifier l'ordre des données en blanc...

Lors de la création du tableau orange, j'étais sur la dernière ration du tableau blanc. Donc les lignes 169, 170, 171 et 173, 174 sont bien les aliments disponibles et spécifiques choisis par le joueur... Du coup, mes quantités d'aliment sont bons (pour cette ration là), a savoir que les non choisis par le joueur tombent à 0

Mon problème : si je change de ration, ben... ca fausse tout. Ma recherche est donc une formule que je balance dans tout le tableau orange, pour calculer les quantités nécessaires, et qui marche quelle que soit la ration choisie (et les spécificités du joueur...)

IMPERATIF : dans la colonne AQ, je ne peux pas mettre vide les aliments non choisis par le joueur, car dans mon onglet "cout", je scanne justement tous ces "tableaux orange" à la recherche des différents aliments pour faire mes totaux (avec ce cher recherchev...) et comme le joueur, par ex, pour les bovins peux choisir du blé, mais pour ses moutons non pas du blé mais de l'orge, si je scanne les tableaux à la recherche du blé, si la case orange est vide, ca met le bazar...

Bon, désolé pour le pavé... et merci pour vos pistes!

10simagri-ep.xlsx (126.36 Ko)

Salut,

1er info

pour la BDD tu peux travailler avec INDEX(..;EQUIV(...)) avec une recherche multicritères (type de ration; 2 aliments pour le EQUIV avec validation de la formule avec Ctrl+Alt+Entré

2;

peut tu fournir un fichier avec le résultat attendue (sans les formule par exemple) car je ne suis pas sur d'avoir tout compris.

Bonjour,

pour le index(equiv), je ne connais pas... (oui mes connaissances sont un peu limitées avec excel...faut dire que c'est loin d'être mon outil de travail)

J'ai un peu modifié le fichier d'origine : j'ai rappatrié tout le nécessaire sur le même onglet, et limité à 2 rations possibles...

En blanc : toujours la base de donnée (extraite des règles du jeu)

en orange le résultat souhaité

et nouveau : en bleu un exemple "concret" de ma demande... En le faisant de cette manière, j'ai peut etre trouvé une formule du coup...(pas sûr...) mais peut être pas la plus simple non plus...

En espérant que c'est plus clair : c'est toujours compliqué d'expliquer qque chose qu'on connait dans les moindres détails

4simagri-ep.xlsx (117.12 Ko)

Yes : j'ai trouvé une formule qui marche

Voir la partie en orange.

mais s'il y a plus simple, je suis preneur et si plus simple il n'y a pas, ben... merci à Oonizuk pour son idée de "fournir un fichier avec le résultat attendue (sans les formule par exemple)", qui avec juste des mots, m'a fait trouver , par 1 moyen, le résultat attendu...

Je ne met pas le post comme résolu pour le moment, au cas où...

5simagri-ep.xlsx (116.72 Ko)

un petit conseil :

il faut mieux que ta BDD soit en dur et pas fonction de "si" ,quitte à ajouter tous les aliments et mettre leur quantité à 0 quand il sont pas nécéssaire

J'ai fait une petite modif de la BDD en ajoutant également les spécialités de chaque ration

INDEX (EQUIV)) à la "même" fonction que rechercheV mais est bien plus puissant. Tu trouvera bcp d'info sur internet. Il permet de faire par exemple une recherche multicritère. (Attention pour le multicritère il faut valider la formule par ctrl+shift+entrée)

La formule utilisé dans le fichier joint est générique et peux etre glissé.

Tes listes en cascade devrait être également écrites en dur est utilisée ensuite la fonction "INDIRECT("type_ration_cell"&"_s1") par exemple pour les spécialités après avoir renommée correctement les listes...

8simagri-ep-1.xlsx (124.69 Ko)

Merci Oozinuk

Dans un 1er temps, je vais continuer avec la formule de mon précédent post... le temps de décortiquer ton travail, que je garde précieusement car même si le résultat obtenu est le même, tes formules intègrent des critères qui me sont inconnus...et comme je n'aime pas "copier-coller" le travail d'un autre sans en avoir saisi le sens avant...

En tout cas, merci pour t'être penché sur mon problème!

Je passe le topic en résolu... Du coup, si ca bloque les autres éventuelles réponses, y a toujours les MP

Pour info le index(equiv,..)) fait ce que tu as crée manuellement avec la 1ère colonne de chiffre. plein d'info sur le net

Au vue du nombre de données importante en entrée je te conseil d'utiliser les tableaux préformatés dans excel. voir exemple

  • les formules sont plus clairs
  • tu peux ajouter des lignes au tableau sans modifié tes formules
  • tu peux ensuite facilement utiliser un tableau croisé dynamique pour faire toutes les comparaisons que tu veux... voir exemple
10simagri-ep-1-1.xlsx (80.47 Ko)
Rechercher des sujets similaires à "formule donnee entree variable"