Formule à améliorer

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

F

Fermo

Guest
Bonsoirà Tous et forum,


Pouvez vous m'indiquer comment faire pour que cette formule, recherche dans M5 par exemple un chiffre et qu'elle regarde en C5 , quel est la date exemple 01.janvier .2004 et si février alors mettre en M30.



=SI(ESTVIDE(RechercheStat!M5);"";RechercheStat!M5)


Merci pour votre aide Fermo
 
Bonjour,

Je n'ai pas vu ton message, hier.
En copiant collant la formule du post d'hier, ça fonctionne.
(je l'ai collée en AB61)
Deux possibilités pour que ne marche pas :
1 ) Elle est à valider en matriciel, par ctrl, maj et entrée
(pour janvier, c'était la même chose)
2 ) En AB 60, le titre "Réf" n'est pas du texte.
C'est un format de nombre, cette cellule a la valeur 0 (zéro)
Format de la cellule : "Réf"
Dans la formule en AB 61, tu as :
(E$61:Y$96>AB60)
puis ligne suivante (E$61:Y$96>AB61)
Si AB60 est du texte, le résultat de la formule est "", donc cellule vide
Je pense que c'est cette 2è possibilité qui fait que ta formule ne fonctionne pas.
 
Bonsoir à tous et Forum,

Et à Monique, notre magicienne des formules...

J'aurais besoins de votre aide pour résoudre un nouveau problème pour moi.

En effet, Monique m'avais proposé cette formule qui fonctionne très bien, mais comme mon classeur devient de plus en plus grand, j'aimerais le dissocier en deux classeurs, 1 gestion etc., et l'autre recherche et stat.

Comment ajouter la formule ci dessous pour quelle fonctionne avec la deuxième ?

1 ='[Copie de Prog STRATEX.xls]RechercheStat'!

(qui est dans l'un des classeurs) avec la formule ci dessous qui fonctionne normalement dans le même classeur ?


2 =SI(NB(D$12😀12)>=SOMMEPROD((MOIS(Date)=MOIS($C$12))*(ANNEE(Date)=ANNEE(C$12)));"";LIGNES(D$13😀13))


Merci pour votre réponse et compétences Fermo
 
Bonjour,

Celle-ci fonctionne :
=SI(NB(D$12😀12)>=SOMMEPROD((MOIS('Copie de Prog STRATEX.xls'!Date)=MOIS($C$12))*(ANNEE('Copie de Prog STRATEX.xls'!Date)=ANNEE(C$12)));"";LIGNES(D$13😀13))

Il y a des apostrophes parce que le nom de ton fichier comporte des espaces.
Le mot "Date" se met tout seul si tu sélectionnes la plage nommée "Date"
et le nom de la feuille devient inutile.

Si on écrit la formule "à la main", sans sélectionner la plage entière "Date", ça donne ça :
=SI(NB(D$12😀12)>=SOMMEPROD((MOIS('[Copie de Prog STRATEX.xls]RechercheStat'!$C$5:$C$500)=MOIS($C$12))*(ANNEE('[Copie de Prog STRATEX.xls]RechercheStat'!$C$5:$C$500)=ANNEE(C$12)));"";LIGNES(D$13😀13))
 
RE bonjour Monique et Forum,

Je suis désolé de devoir à nouveau te déranger, mais je n'arrive pas à trouver la subtilité pour adapter ces 3 formules qui est la suite de celle que tu m'as déjà corrigé.

'Copie de Prog STRATEX.xls'

=SI($D13="";"";SOMMEPROD((ANNEE(Date)=ANNEE($C$12))*(MOIS(Date)=MOIS($C$12))*(NB=$D13);INDIRECT(E$12)))


=SI($D13="";"";SOMMEPROD((ANNEE(Date)=ANNEE($C$12))*(MOIS(Date)=MOIS($C$12))*(NB=$D13);DECALER(INDIRECT(DECALER(F$12;;-1));;1)))


=SI($D13="";"";SOMMEPROD((ANNEE(Date)=ANNEE($C$12))*(MOIS(Date)=MOIS($C$12))*(NB=$D13);DECALER(INDIRECT(DECALER(G$12;;-2));;4)))

Merci pour ta réponse Fermo
 
Re,

Tu procèdes de la même manière.
Tes 3 formules, dans le même ordre :
=SI($D13="";"";SOMMEPROD((ANNEE('Copie de Prog STRATEX.xls'!Date)=ANNEE($C$12))*(MOIS('Copie de Prog STRATEX.xls'!Date)=MOIS($C$12))*('Copie de Prog STRATEX.xls'!Nb=$D13);INDIRECT(E$12)))

=SI($D13="";"";SOMMEPROD((ANNEE('Copie de Prog STRATEX.xls'!Date)=ANNEE($C$12))*(MOIS('Copie de Prog STRATEX.xls'!Date)=MOIS($C$12))*('Copie de Prog STRATEX.xls'!Nb=$D13);DECALER(INDIRECT(DECALER(F$12;;-1));;1)))

=SI($D13="";"";SOMMEPROD((ANNEE('Copie de Prog STRATEX.xls'!Date)=ANNEE($C$12))*(MOIS('Copie de Prog STRATEX.xls'!Date)=MOIS($C$12))*('Copie de Prog STRATEX.xls'!Nb=$D13);DECALER(INDIRECT(DECALER(G$12;;-2));;4)))

Avec Indirect, je crois que les 2 classeurs doivent être ouverts, mais je n'en suis pas sûre.
J'ai fermé "Copie de Prog etc.xls" et ça fonctionnait.
Rien à voir : tu devrais donner un nom plus court à ton classeur, et sans espaces.
 
Re

J'ai essayé les deux solutions ci dessous et ça me donne l'erreur #REF ?

As tu une solution ?

=SI($D13="";"";SOMMEPROD((ANNEE([ProgSTRATEX.xls]RechercheStat!$C$5:$C$5000)=ANNEE($C$12))*(MOIS([ProgSTRATEX.xls]RechercheStat!$C$5:$C$5000)=MOIS($C$12))*([ProgSTRATEX.xls]RechercheStat!$D$5:$D$500=$D13);INDIRECT(E$12)))



=SI($D13="";"";SOMMEPROD((ANNEE('ProgSTRATEX.xls'!Date)=ANNEE($C$12))*(MOIS('ProgSTRATEX.xls'!Date)=MOIS($C$12))*('ProgSTRATEX.xls'!Nb=$D13);INDIRECT(E$12)))

A + Fermo
 
Re,

La 1ère fonctionne, à condition que toutes tes plages aient la même longueur.
Tu as, dans la formule de ton message, 4 plages parallèles (3, en fait) mais de longueur inégale :
C5:C5000
C5:C5000
D5😀500
Indirect(E12)
INDIRECT(E12) fait référence à la plage nommée "NoArticleA"
Si cette plage va de la ligne 5 à la ligne 500, toutes les autres plages de ta formule devront en faire autant.
Si elle va jusqu'à la ligne 5000, les autres devront avoir la même longueur.

La 2è formule fonctionne bien chez moi, à peine collée, elle a donné le bon résultat.
Mais, dans ton message, c'est bizarre qu'elle ait des apostrophes.
S'il n'y a plus d'espaces dans le nom du classeur, il n'y a plus d'apostrophes dans la formule.
En collant ta formule dans mon classeur, elle a perdu ses apostrophes.
Et si je les remets, Excel refuse.
(la 2è est mieux, quand même)
Sinon, pour la 2è, idem : est-ce que toutes les plages nommées ont la même longueur ?
 
Re,

J'ai mis toutes les conditions à 5000. enregistrer, mais rien ne fait celà me donne toujours #ref ???

Serais tu d'accord je te t'envoie les deux classeurs à ton adresse E-mail...
Il serait trop grand pour le Forum, ou as tu une autre solutions...

=SI($D13="";"";SOMMEPROD((ANNEE(ProgSTRATEX.xls!Date)=ANNEE($C$12))*(MOIS(ProgSTRATEX.xls!Date)=MOIS($C$12))*(ProgSTRATEX.xls!NB=$D13);INDIRECT(E$12)))
 
Re,

Tu as aussi à mettre à 5000 toutes les plages qui sont "appelées" par la fonction Indirect :
INDIRECT(E12) INDIRECT(H12) INDIRECT(K12) INDIRECT(N12) INDIRECT(Q12) INDIRECT(T12) INDIRECT(W12)
Il y a quelques mois, elles s'appelaient
NoArticleA NoArticleB NoArticleC NoArticleD NoArticleE NoArticleF NoArticleG
Et puis toutes les autres : Nb, Date, NbAn, NbParClient, etc

Ta dernière formule fonctionne chez moi, ça doit être 1 plage qui n'a pas la bonne longueur.

D'accord pour recevoir tes fichiers (zippés) si tu ne réussis pas.
(je ne ferai pas ça ce soir)
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
287
Réponses
20
Affichages
949
Retour