Aide pour une formule excel

Fermé
gosth162 Messages postés 12 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 28 novembre 2010 - 26 nov. 2010 à 21:44
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 28 nov. 2010 à 07:34
Bonjour tous,

Je visite souvent votre site très enrichissant....et je vous sollicite pour une m'aiguiller sur une formule de calcule excel.

Je vais essayer d'expliquer mes attentes mais je ne suis pas doué alors désolé de ma maladresse.

Dans la pièce jointe, j'ai une feuille nommé "SAJ"
Je recherche une formule qui recherche du texte et en fonction du résultat elle modifie la valeur des cellules.

Difficile d'expliquer comme ca alors je vous laisse mon fichier avec quelques explications supplémentaires...

http://www.cijoint.fr/cjlink.php?file=cj201011/cij1UElCfM.xls

Merci de votre aide.....


14 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
27 nov. 2010 à 08:38
Bonjour
même avec votre fichier, on ne comprend pas bien ce que vous voulez faire dans l'ensemble avec le tableau SAJ

Et surtout :
_comment compter vous remplir l'ensemble de ce tableau (manuel, formule)
_Faut il considérer que l'entrée dans la liste de lundi ou l'ensemble du menu?

A tout hasard je vous propose une formule qui détectera si un des plats se trouve dans sans porc ou non.

Pour être simple, surtout si vous devez par la suite éplucher toutes les lignes de votre tableau avec la formule, il faut dans un premier temps nommer votre champ de la feuille Base sans porc, ce sera plus clair dans les formules!

pour l'exemple:
sélectionnez tout le champ B5:B53 de la feuille
selon votre Excel:
avant 2007: barre d'outil / insertion / nom / et nommer (ex BSP)
à partir de 2007: Ruban / Formule / Définir un nom et idem.
Sur la feuille SAJ en F10, la formule:
=SI(NB.SI(BSP;$AN$7)=0;1;"")
ne vous affichera 1 que si la valeur de AN7 n'existe pas dans la liste BSP
S'il faut traiter simultanément les trois plats, c'est un peu plus complexe:
=SI(OU(BSP;$AN$7)=0;BSP;$AN$8)=0;BSP;$AN$9)=0);1;0)

Bien sur vous pouvez avoir une liste nommée différentes pour chaque ligne de votre tableau,correspondant au sans sel ... etc...

Excel offre aussi une possibilité de traiter directement les formules avec ces noms de liste sans réécrire les formules;



revenez si difficultés d'applications ou autre besoins.

Bon WE

Crdlmnt





0
gosth162 Messages postés 12 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 28 novembre 2010
27 nov. 2010 à 09:29
Bonjour Vaucluse,

Merci pour ton aide tu es sur la bonne piste....
Cela dit, mon fichier est effectivement un peut plus complexe.

L'ensemble du tableau est rempli avec des formules.

Il faut aussi tenir compte de tout le menu donc ca sera la 2eme formule a retenir! j'ai fait un essai et la formule m'indique erreur....
=SI(OU(BSP;$AN$7)=0;BSP;$AN$8)=0;BSP;$AN$9)=0);1;0)
Je pense que ca coince la ou c'est inscrit en gras dans la formule.

J'ai remarqué que ta formule choisi soit la cellule "F10" ou soit "F16" et elle bascule la valeur "1"

Le problème est que les effectifs sont variables. Cela veut dire que "F10" a toujours une valeur et que "F16" aussi. et ce n'est pas toujours que 1.

exemple : Lundi soir
ligne normal : 2 repas
ligne repas sans porc : 1 repas

résultat a obtenir :
ligne normal : 3 repas
ligne sans porc : 0 repas

Dans la cas ou il y pas de porc dans le menu, il faut que "f16" vienne s'ajouter a la valeur de "f10" et que "f16" obtienne la valeur 0.
Dans l'autre cas s'il y a du porc au menu, les valeurs de "f10" et "f16" reste inscrite comme sur le tableau, les valeurs ne s'additionnent pas.

Par la suite je ferais de meme avec les autres lignes comme le "sans sel"...etc

je te remet mon fichier pour l'exemple et merci encore de m'aider.

http://www.cijoint.fr/cjlink.php?file=cj201011/cijHaQye43.xls
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
27 nov. 2010 à 09:36
Exact, j'ai zapè la moitié formule comme un mauvais samedi...quelle honte!

=SI(OU(NB.SI(BSP;$AN$7)=0;NB.SI(BSP;$AN$8)=0;NB.SI(BSP;$AN$9)=0);1;0)

Je regardes ça plus en détail avec ton dernier message et je reviens, sans doute poser d'autres questions!

Déjà la première:
quel est le rapport entre ce que tu appelles effectif et les valeurs à entrer? y a t'il plusieurs choses à additionner dans ton tableau?

A te lire
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
Modifié par Vaucluse le 27/11/2010 à 09:52
Suite des questions!
j'avoue que je ne comprend pas le rapport entre ce qu'il faut mettre en F16 lorsque le repas est sans porc, avec la liste de la feuille base sans porc qui ne comprend que des plats avec du porc?
Doit on réellement afficher 1 en F16 quand un des plats du menu se trouve dans cette liste???
Question suivante:
pour gérer au mieux le remplissage du tableau sans s'arracher les doigts à taper des formules, est il acceptable de renvoyer les menus par égalité entre la feuille SAJ (dans des colonnes masquées)et la feuille menu. Ceci afin d'organiser une disposition compatible avec le tableau de récap tout en conservant la présentation de la feuille menu

Et la dernière pour l'instant:
y aura t'il sur la ligne 10 d'autres résultats des lignes d'en dessous à prendre en compte que celui de la ligne F16?

la construction peut être différente selon les résultats à obtenir.

Dés réponse je regarde de plus près.
0
gosth162 Messages postés 12 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 28 novembre 2010
27 nov. 2010 à 11:50
oui je comprend...l'intitulé "sans porc" sous entend "les personnes qui ne mange pas de porc"
donc dans ma base de donnée, on trouve tous les plats interdit pour eux.

en "f16" le "1" est un exemple. En réalité c'est une formule qui est inscrite et reprend le résultat sur un autre tableau.
voici le type de formule :
='C:\Users\Alex\Desktop\Gestion\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F10

Sinon pour les menus il est possible de le copier avec des liaisons sur la feuille "SAJ"...la présentation peut importe!!!

et pour la dernière question, oui il y aura d'autres lignes a prendre en compte mais elles n'utiliseront pas la meme base de donnée (exemple pour le sans poisson, il faut que je crée une autre liste à base de poisson)
je t'ai surligner en couleur toute les lignes concernées qui viendront s'ajouter ou non en "f10".

j'espere t'avoir éclairci un peu plus.....

pour résumer :

quand il y a un repas à base de porc, il faut le compter séparément en "f16"de l'effectif "normal"en "f10"
mais quand il n'y pas de porc au menu le "F16" doit s'additionner dans "normal" en "f10".
et ne plus etre en "f16"!

http://www.cijoint.fr/cjlink.php?file=cj201011/cijAzTq6FH.xls
0
gosth162 Messages postés 12 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 28 novembre 2010
27 nov. 2010 à 12:08
voici une parti du dossier plus complet!

https://www.cjoint.com/?3lBmgcEPVD
0

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

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
27 nov. 2010 à 15:00
Désolé, mais je ne suis toujours pas en phase.
je commence à comprendre en F10, mais ce qui m'échappe:
Quel est le résultat qu'il faut afficher lorsqu'un menu comprend du porc. Si c'est 1, c'est assez facile,s'il faut appliquer une formule ensuite, c'est aussi assez simple, mais s'il faut compter quelque chose, ou trouve t'on les "choses" à compter.
Dans le premier cas, la formule que j'ai proposée, (après correction :-() devrait suffire soit avec:
=SI(OU(NB.SI(....);1;0)
ou avec :
=SI(OU(NB.SI(.............));formule;0)
ensuite le total serait simplement déduit de la formule en ligne10

Mais 'sil y a quelque chose à compter je ne vois pas!

A suivre?
crdlmnt


0
gosth162 Messages postés 12 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 28 novembre 2010
27 nov. 2010 à 15:36
je t'ai mis les explications dans le dossier "effectifs" sur la feuille "SAJ"

dans les dossiers je t'ai mis les fichiers nécessaire au bon fonctionnement des formules

petit probleme avec le site "ci_joint.com" je n'arrive plus a poster mes fichiers donc je t'explique en dessous...dsl

Voici les résultats que l'on doit obtenir

Lundi Midi : menu avec du porc

voici comment mon tableau d'effectifs arrive:

repas normaux : 24 + 1 repas sans porc


Lundi Midi : pas de porc dans le menu

Voici le résultat a obtenir :

Repas normaux : 25
Repas sans porc : 0

j'ai mis tes formules en "f10" et "f16"
celle de "f16" ca l'air d'etre ok

=SI(OU(NB.SI(BSP;'[Menu.xls]Menu Normal'!$B$9)='C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F16;NB.SI(BSP;'[Menu.xls]Menu Normal'!$B$10)='C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F16;NB.SI(BSP;'[Menu.xls]Menu Normal'!$B$11)='C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F16);'C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F16;0)

mais "f10" ne donne toujours pas le résultat souhaité

=SI(OU(NB.SI(BSP;'[Menu.xls]Menu Normal'!$B$9)='C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F10+'C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F16;NB.SI(BSP;'[Menu.xls]Menu Normal'!$B$10)='C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F10+'C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F16;NB.SI(BSP;'[Menu.xls]Menu Normal'!$B$11)='C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F10+'C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F16);'C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F10-'C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F16;'C:\Users\Alex\Desktop\Nouveau dossier (2)\Effectifs et Bon commande\[Saj Etoile.xls]SAJ'!F10)
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
27 nov. 2010 à 15:56
J'espère que tu comprends que ce que tu envoies là pour moi, n'arrange rien, bien au contraire. Je ne peux pas remonter dans tous l'historique de tes fichiers pour traduire ces formules d'autant plus que:
c'est quoi Nouveau dossier
Effectifs et bon de commande?
je n'ai pas de dossier SAJ avec une feuille effectif dans ce que tu as transmis.
et pour reconstituer tout ça, c'est du Nostradmaus.

D'entrée, je ne vois pas comment construire le rapport entre ce que compte la formule NB.SI et ce qui doit lui être égal!
Je continue à y penser mais j'avoue que je suis dubitatif quant à la réussite.

Je crois toutefois que si tu dois empiler les données de tous ces dossiers tu as interêt à te construire un tableau de rappel sur ta feuille de récap, qui te renvoie les valeurs dont tu as besoins pour éviter d'écrire ces tartines.

Ce sera plus facile après :
d'une part d'écrire des égalités simples pour reconstituer les tableaux sur récap, même sur une feuille cachée si besoin
d'autre part d'écrire les formules dont tu as besoins ici.

Au pire je pourrais continuer à t'aider si tu construit un fichier de ce genre, quitte ensuite à remplacer dans les formules mises au point les adresse que tu veux par les adresses directes.
Mais là, je ne crois pas m'en sortir.


un peu désolé moi aussi!


0
gosth162 Messages postés 12 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 28 novembre 2010
Modifié par gosth162 le 27/11/2010 à 16:22
le nouveau dossier etait pour que tu puisses avoir tous les liens pour que la feuille "SAJ"fonctionne telqu'elle existe et parce que tu me demandais s'il y avait des formules dans mon tableau...alors je pensais que le mien etait de te les donner....

je comprend que mes fichiers sont un vrai casse tete...mais je ne sais pas ce que c'est des "égalités"...je suis un gros nul!!!

je veux bien en faire si ca simplifie les choses.....

puis c'est l'inverse, c'est dossier effectif puis sur la feuille SAJ.


En fait qui me manque dans la formule "f10"c'est de pouvoir additionner "f10"+"f16"si il n'y a pas de porc au menu...


Merci d'avoir essayer de m'aider vaucluse
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
27 nov. 2010 à 16:41
Je voulais recharger le dossier, mais ci joint ne fonctionne pas et celui que j'ai déjà dé-zippé n'a pas l'air complet??? ou alors je ne comprend pas.
Pour ce qui est des égalités:
il s'agissait simplement de renvoyer dans une feuille du classeur où tu veux les calculs les feuilles dont tu as besoin venant d'autre classeur:

Simplement en créant une feuille supplémentaire qui s'adresse à ces ou ces classeurs avec simplement pour l'exemple:
en A1: =adresse A1 dans le classeur. Cela sur les colonnes dont tu as besoins pour créer un tableau identique.

Ainsi les nouveaux calculs font références à cette où ces feuilles plutôt que de sortir du classeur et on travaille dans un seul fichier.

Quitte une fois tout mis au point si tu le souhaites, à remplacer dans ces formules les adresses " feuille" par les adresses "classeur"

Quant à additionner F10 et F16 si donc F10=0 c'est facile:
=en F10: si (Formule qui calcule F10)=0;F16)

ou si F10 a une valeur à ajouter, ça va être plus long
=SI(Formule qui calcule F10)>0;F10+F16;Formule qui calcule F10)

A suivre peut être si je peux
0
gosth162 Messages postés 12 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 28 novembre 2010
27 nov. 2010 à 17:14
Merci Vaucluse

Finalement en bidouillant un peu je suis arrivé a faire fonctionner les formules de facon a ce que cela me donne le résultat attendu.....

voici la formule en "f10" :
=SI(OU(NB.SI(BSP1;AM9)=1;NB.SI(BSP1;AM10)=1;NB.SI(BSP1;AM11)=1);'[Saj Etoile.xls]SAJ'!$F$10;'[Saj Etoile.xls]SAJ'!$F$10+'[Saj Etoile.xls]SAJ'!$F$16)

Voici la formule en "f16" :
=SI(OU(NB.SI(BSP;AM9)='[Saj Etoile.xls]SAJ'!F16;NB.SI(BSP;AM10)='[Saj Etoile.xls]SAJ'!F16;NB.SI(BSP;AM11)='[Saj Etoile.xls]SAJ'!F16);'[Saj Etoile.xls]SAJ'!F16;0)

Maintenant il me reste a ajouter le sans sel en "f10"en plus du sans porc

Encore merci du coup de pouce
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
27 nov. 2010 à 17:21
bien l'essentiel est d'avoir réussi à ce que vous vouliez. J'avoue que c'est un peu rageant de savoir que l'on connait probablement la solution, mais que le périmètre est trop complexe pour l'adapter.
Je suis ravi que vous vous en soyez sorti, ce qui prouve que vous êtes loin d'être aussi nul que vous l'annonciez;
Ceci dit, je souhaite pour vous vous qu'il n'y ait pas du porc avec ou sans sel!
Bonne route Au plaisir

Cdlmnt

Ps les formules de votre dernier message sont quand même plus simples à lire que celle du message 8 !!!:-)
0
gosth162 Messages postés 12 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 28 novembre 2010
Modifié par gosth162 le 27/11/2010 à 17:35
la première étape est passée...
cela dit je me pose une question :
Au lieu de choisir plat par plat...pourrait on pas choisir directement des plats?

maintenant je sèche sur la 2eme étape!!!!

comment intégrer une autre condition dans ma formule "f10" pour tenir compte du sans poisson en "f22"?
En fait il faut que j'integre une autre base de donnée dans la formule

Décidement 1 pas en avant, 2 pas en arriere.....
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
27 nov. 2010 à 17:43
Faudra expliquer là
"Au lieu de choisir plat par plat...pourrait on pas choisir directement des plats?"
pour le reste, n'ayant toujours pas compris complètement ou vous voulez en venir, je vous signale à tout hasard que la formule NB.SI fonctionne sur plusieurs colonnes, si par bonheur il pourrait vous être utile de faire une liste sans poisson à coté du sans porc, le champ BSP prend les deux colonne set NB.SI fonctionne que la valeur cherche se trouve dans l'une ou l'autre des colonnes.
Ainsi la condition en F10 s'appliquera aussi bien si les cellules AM9 et consorts sont sans sel ou sans porc.
Peut être faudra il simplement rajouter +F22 derrière +F16
Mais là, je m'égare sans doute un peu.


0
gosth162 Messages postés 12 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 28 novembre 2010
27 nov. 2010 à 18:00
j'ai défini un nom au menu du Lundi midi...ca tiens compte de tout les plats du midi...ca marche nickel.


pour la 2eme piste oui c'est pas bete du tout ce que tu dis de mettre les plats sans pour sans porc et poisson ensemble....je vais essayer et je reviens dire le résultat

merci merci
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
Modifié par Vaucluse le 27/11/2010 à 18:18
"j'ai défini un nom au menu du Lundi midi...ca tiens compte de tout les plats du midi...ca marche nickel."
attention, le fonctionnement est aléatoire, je me suis planté plusieurs fois avec ça
la formule ne prend à priori que le premier de la liste et il ne faut des blancs ni d'un coté ni de l'autre
crdlmnt
0
gosth162 Messages postés 12 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 28 novembre 2010
27 nov. 2010 à 18:25
oui effectivement ca ne fonctionne pas donc retour case depart!!!

finalement c'est bon j'ai réussi a intégrer les sans poisson......cool ca fonctionne bien

j'essaierai de mettre en ligne mon fichier des que le site "cijoint" fonctionne si ca peut aider!!!!

encore un grand merci!!!!
0
gosth162 Messages postés 12 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 28 novembre 2010
27 nov. 2010 à 18:11
Ben ca marche pas de combiné les sans poisson et les sans porc....car dans la formule il ne sépare pas les deux

exemple : si j'ai du poisson au menu il m'inscrira les sans poisson mais aussi les sans porc!!!!!

donc il faut que j'utilise la base de donnée séparément je pense
0
gosth162 Messages postés 12 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 28 novembre 2010
Modifié par gosth162 le 28/11/2010 à 00:12
Je reviens car je rencontre à nouveau un soucis...

Je m'apercois que mes formules ne fonctionnent pas
si je rentre une valeur "1" elle fonctionne

=SI(OU(NB.SI(BSP1;$AM9)='[Saj Etoile.xls]SAJ'!$F$16;NB.SI(BSP1;$AM10)='[Saj Etoile.xls]SAJ'!$F$16;NB.SI(BSP1;$AM11)='[Saj Etoile.xls]SAJ'!$F$16);'[Saj Etoile.xls]SAJ'!$F$16;0)

je ne comprends pas la formule qui ne fonctionne avec une valeur superieur à "1"ca me donne un résultat vide, case vide!!!???

Pourtant dans cette référence ma valeur est 2
='[Saj Etoile.xls]SAJ'!$F$16
et j'obtiens une case vide en résultat
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
Modifié par Vaucluse le 28/11/2010 à 07:40
Si votre référence de valeur est 2, i faut que l'une ou l'autre des conditions soit égales à 2 avec ce que vous avez écrit.

Est ce le cas?

pour vérifier et écrire plus simplement:
dans le classeur et la feuille ou vous avez cette formule, réserver une cellule hors champ (par exemple Z1) dans la quelle vous placez la formule:
='[Saj Etoile.xls]SAJ'!$F$16
ainsi vous pourrez remplacer dans vos formules la tartine '[Saj Etoile.xls]SAJ'!$F$16 par Z1 et vous y verrez beaucoup plus clair

la formule devient
=SI(OU(NB.SI(BSP1;$AM9)=Z1;NB.SI(BSP1;$AM10)=Z1;NB.SI(BSP1;$AM11)=Z1;Z1;0)
(c'est plus facile à vérifier.)

.....et ne renvoi Z1 que si AM9 ou AM10 ou AM11 est égal à Z1 ce qui ne doit pas être le cas, car sauf erreur les NB.SI ne peuvent renvoyer que 1 si BSP1 est la liste de produit à éviter

la formule serait donc

=SI(OU(NB.SI(BSP1;$AM9)=1;NB.SI(BSP1;$AM10)=1;NB.SI(BSP1;$AM11)=1;Z1;0)

ou, s'il y a risque que le nom cherché se retrouve plusiers fois dans la liste, remplacer les =1 par >0

Bonne chance. Bon dimanche
0