Renvoyer du texte avec SOMMEPROD ?

  • Initiateur de la discussion Initiateur de la discussion choup67
  • 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 !

choup67

XLDnaute Occasionnel
Bonjour à tous,

Je suis bloquée avec SOMMEPROD car je cherche à renvoyer une valeur texte en fonction de plusieurs critères.

Je ne peux pas poster de fichier depuis l'ordinateur où je suis donc je vais essayer d'expliquer.

Dans l'onglet Stockage, j'ai un ensemble d'emplacement de stockage identifiés par un nom de rack et un nom d'emplacement. Exemple : Zec_A 1F1

En face de chaque emplacement, je voudrais aller récupérer dans d'autres onglets la palette qui y est stockée. Pour cela, la formule doit aller dans 4 autres onglets qui pourront changer de nom.

J'ai d'abord essayé avec ça :
Code:
=SI(INDEX(INDIRECT("'"&Rame1&"'!BasePlanning");EQUIV(C2;INDIRECT("'"&Rame1&"'!EplRack");0);6)<>" ";INDEX(INDIRECT("'"&Rame1&"'!BasePlanning");EQUIV(C2;INDIRECT("'"&Rame1&"'!EplRack");0);6);SI(INDEX(INDIRECT("'"&Rame2&"'!BasePlanning");EQUIV(C2;INDIRECT("'"&Rame2&"'!EplRack");0);6)<>" ";INDEX(INDIRECT("'"&Rame2&"'!BasePlanning");EQUIV(C2;INDIRECT("'"&Rame2&"'!EplRack");0);6);SI(INDEX(INDIRECT("'"&Rame3&"'!BasePlanning");EQUIV(C2;INDIRECT("'"&Rame3&"'!EplRack");0);6)<>" ";INDEX(INDIRECT("'"&Rame3&"'!BasePlanning");EQUIV(C2;INDIRECT("'"&Rame3&"'!EplRack");0);6);"")))

Mais le problème c'est que je ne peux prends qu'une condition en considération. Du coup, vu que j'ai deux rack (Zec_A et Zec_B), pour l'emplacement 1F1, le nom de la palette se mettra dans les deux.

J'ai maintenant tenté ça :
Code:
=SOMMEPROD((INDIRECT("'"&Rame1&"'!EplZec")=B2)*(INDIRECT("'"&Rame1&"'!EplRack")=C2)*(INDIRECT("'"&Rame1&"'!NomKit")))

Mais ça me renvoi évidemment une erreur puisque je cherche à afficher du texte.

Une idée?
 
Re : Renvoyer du texte avec SOMMEPROD ?

Génial, merci BOISGONTIER ! C'est super cette formule, elle me sera bien utile à l'avenir.

J'apprends chaque jour un peu plus grâce à ce forum !

Une idée pour mon petit problème de renvoi du numéro de la rame?

J'ai avancé sur mon problème, j'en suis là :
=SOMMEPROD((INDIRECT("'"&Rame1&"'!BasePlanning")=B2&" "&C2)*(INDIRECT("'"&Rame1&"'!D1")))

ce qui me renvoi bien le numéro de rame, seulement je n'arrive pas à imbriquer la formule avec des SI(ESTERREUR()) pour cumuler le test des 4 rames.
 
Dernière édition:
Re : Renvoyer du texte avec SOMMEPROD ?

Voir PJ

=RECHERCHEV(B2&C2;INDIRECT(INDEX(nf;EQUIV(VRAI;(NB.SI(INDIRECT(nf&"!f6:f10");B2&C2)>0);0))&"!f6:g10");2;0)
valider avec maj+ctrl+entrée

JB
 

Pièces jointes

Re : Renvoyer du texte avec SOMMEPROD ?

@ BOISGONTIER:

ça j'avais réussi avec l'aide de Dugenou mais là j'en suis à la 3ème colonne, celle où je veux chercher le numéro de rame.

EDIT : Je viens de voir que tu as simplifié la formule effectivement. Mais je ne saurai jamais refaire un truc pareil lol, j'essaye d'apprendre en même temps donc d'être capable de reproduire si besoin les formules. J'avoue que la tienne est très complexe pour une novice comme moi.

En faite, ça revient à dire, donne moi le numéro d'onglet là où tu as réussi à trouver les informations pour la colonne précédente.

Dit d'une autre façon, pour être sûre d'être claire (c'est pas évident lol) dans la colonne F, donne moi le numéro d'onglet où tu as trouvé les infos pour la colonne E (ou D, peu importe)
 
Dernière édition:
Re : Renvoyer du texte avec SOMMEPROD ?

En réutilisant le fichier précédent j'y arrive avec la formule suivante en F2:

=SI(ESTERREUR(RECHERCHEV(B2&C2;INDIRECT("'"&Rame1&"'!$f$6:$G$100");2;FAUX));SI(ESTERREUR(RECHERCHEV(B2&C2;INDIRECT("'"&Rame2&"'!$f$6:$G$100");2;FAUX));"";INDIRECT("'"&Rame2&"'!$D$1"));INDIRECT("'"&Rame1&"'!$D$1"))

J'ai corrigé la plage de recherche en F6:G100 (au lieu de E6:G100)
J'ai enlevé les " " de séparation entre B2 et C2 concaténés car il n'y en a pas dans les feuilles "rame"

Merci Boisgontier : ça marche au poil
 
Re : Renvoyer du texte avec SOMMEPROD ?

Voir PJ

nf est un champ qui contient les noms des feuilles

Kit:
=RECHERCHEV(B2&C2;INDIRECT(INDEX(nf;EQUIV(VRAI;(NB.SI(INDIRECT(nf&"!f6:f10");B2&C2)>0);0))&"!f6:g10");2;0)
valider avec maj+ctrl+entrée

OF:
=INDEX(INDIRECT(INDEX(nf;EQUIV(VRAI;(NB.SI(INDIRECT(nf&"!f6:f10");B2&C2)>0);0))&"!d6:d10");
EQUIV(B2&C2;INDIRECT(INDEX(nf;EQUIV(VRAI;(NB.SI(INDIRECT(nf&"!f6:f10");B2&C2)>0);0))&"!f6:f10");0))
valider avec maj+ctrl+entrée

Rame:

=INDEX(nf;EQUIV(VRAI;(NB.SI(INDIRECT(nf&"!f6:f10");B2&C2)>0);0))
valider avec maj+ctrl+entrée

JB
 

Pièces jointes

Dernière édition:
Re : Renvoyer du texte avec SOMMEPROD ?

Oui mais dans mon vrai fichier, ça va de F en H et j'ai mis un espace, c'est pour ça que tu en voyais dans ma formule.

Mais elle ne veut pas fonctionner, elle me renvoi 0, alors que si c'est une erreur j'ai mis "Err".
 
Re : Renvoyer du texte avec SOMMEPROD ?

BOISGONTIER, elles marchent nickel tes formules, mais je n'arrive pas à les comprendre, donc pas à les maitriser. Mon but n'est pas de demander à chaque fois que j'en aurai besoin mais de réussir à pouvoir le refaire et je ne comprends pas le raisonnement de ta formule, peut être que tu peux m'aider à y voir plus clair?

EDIT : c'est exactement ce que je viens de dire lol, j'ai essayé de l'adapter à mon fichier réel et forcément ça ne marche pas. Dans mon fichier réel, j'ai bien nommé les 4 rames par "nf", j'ai remplacé les plages F6:G100 par F6:H100, et je récupère la colonne 3 et non la 2, mais ça me renvoi #valeur

@ DUGENOU : j'ai réussi, y'avait une petit erreur dans ma formule, j'avais mis deux fois "rame2" dans les valeurs si vrai de mes conditions.


Prochaine étape, je veux d'abord tester si c'est un kit déjà livré ou non, si c'est le cas, ne rien faire, si c'est pas le cas, récupérer le kit, l'OF et la rame. Je vais essayer seule, je reviendrais vers vous si je coince.

MERCI beaucoup en tout cas. Et je vais essayer de me pencher sur la formule de BOISGONTIER mais ce n'est pas évident.
 
Dernière édition:
Re : Renvoyer du texte avec SOMMEPROD ?

Un petit truc que Monique m'a appri :

plutot que d'imbriquer directement les formules, tu fais chaque formule dans une cellule différente et ensuite, en "remontant le courant" tu remplace l'adresse d'une cellule par la formule qui s'y trouve.
Tu arrrives ainsi à faire des formules très complexes que même toi tu ne comprends plus !!!
 
Re : Renvoyer du texte avec SOMMEPROD ?

J'ai encore besoin de votre aide.

Je voudrais imbriquer un OU en plus du ESTERREUR pour dire que :

Si c'est une erreur, va voir dans un autre onglet
Si c'est pas une erreur mais que le kit est en statut "Livré", va voir dans un autre onglet.

Mais je n'arrive pas à l'imbriquer. La formule de la condition à part serait :
Code:
=SI(RECHERCHEV(B2&" "&C2;INDIRECT("'"&Rame1&"'!$E$6:$G$100");20;FAUX)="Livré";alors rame suivante, sinon renvoyer la valeur de la colonne 7)

Comment l'intégrer à cette formule?
Code:
=SI(ESTERREUR(RECHERCHEV(B2&" "&C2;INDIRECT("'"&Rame1&"'!$E$6:$G$100");3;FAUX));SI(ESTERREUR(RECHERCHEV(B2&" "&C2;INDIRECT("'"&Rame2&"'!$E$6:$G$100");3;FAUX));SI(ESTERREUR(RECHERCHEV(B2&" "&C2;INDIRECT("'"&Rame3&"'!$E$6:$G$100");3;FAUX));SI(ESTERREUR(RECHERCHEV(B2&" "&C2;INDIRECT("'"&Rame4&"'!$E$6:$G$100");3;FAUX));"";RECHERCHEV(B2&" "&C2;INDIRECT("'"&Rame4&"'!$E$6:$G$100");3;FAUX)); RECHERCHEV(B2&" "&C2;INDIRECT("'"&Rame3&"'!$E$6:$G$100");3;FAUX));RECHERCHEV(B2&" "&C2;INDIRECT("'"&Rame2&"'!$E$6:$G$100");3;FAUX));RECHERCHEV(B2&" "&C2;INDIRECT("'"&Rame1&"'!$E$6:$G$100");3;FAUX))

@ dugenou : J'ai pas tout saisi, je comprends le fond de ce que tu veux dire mais ne voit pas trop comment l'appliquer ?? (c'est vendredi, mon cerveau est en compote lol)
 
Re : Renvoyer du texte avec SOMMEPROD ?

Voir PJ

Colonne intermédiaire en AC:
=F6&X6


Nom de l'onglet:
=INDEX(nf;EQUIV(VRAI;(NB.SI(INDIRECT("'"&nf&"'!ac6:ac10");B2&C2&"En attente")>0);0))

Kit:
=RECHERCHEV(B2&C2;INDIRECT("'"&F2&"'!f6:g10");2;0)

OF:
=INDEX(INDIRECT("'"&F2&"'!d6:d10");EQUIV(B2&C2;INDIRECT("'"&F2&"'!f6:f10");0))


JB
 

Pièces jointes

Dernière édition:
Re : Renvoyer du texte avec SOMMEPROD ?

Bonjour le forum, BOISGONTIER,

Merci pour ton aide, je vais essayer de transposer ce que tu as fait à mon fichier réel 😀

EDIT : ça fonctionne, merci !
Une petite question par contre, à quoi ça sert ou bien pourquoi est ce qu'on nomme des plages de cellules en miniscules? par ex "d6:d10" ?
 
Dernière édition:
- 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

Retour