utiliser la formule DECALER dans une formule sous EXCEL

utiliser la formule DECALER dans une formule sous EXCEL - Logiciels - Windows & Software

Marsh Posté le 01-11-2009 à 21:25:00    

Bonjour,
 
Apres avoir tappé des formules, voila que pour eviter de les retapper sur d'autre lignes que je voudrais utiliser la fonction DECALER.
 
Dans la cellule D446 j'ai la formule :
 
=SI((NB.SI(D47:D74;"JUSTE" ))+(NB.SI(D47:D74;"FAUX " ))<1;"";((NB.SI(D47:D47;"JUSTE" )+NB.SI(D52:D53;"JUSTE" )+NB.SI(D57:D59;"JUSTE" )+NB.SI(D62:D64;"JUSTE" )+NB.SI(D67:D69;"JUSTE" )+NB.SI(D72:D74;"JUSTE" )))/((NB.SI(D47:D47;"JUSTE" )+NB.SI(D52:D53;"JUSTE" )+NB.SI(D57:D59;"JUSTE" )+NB.SI(D62:D64;"JUSTE" )+NB.SI(D67:D69;"JUSTE" )+NB.SI(D72:D74;"JUSTE" )+(NB.SI(D47:D47;"FAUX " )+NB.SI(D52:D53;"FAUX " )+NB.SI(D57:D59;"FAUX " )+NB.SI(D62:D64;"FAUX " )+NB.SI(D67:D69;"FAUX " )+NB.SI(D72:D74;"FAUX " )))))
 
Puis dans la cellule D450 il faudrait la meme formule mais avec un decalage 72 cellules plus bas pour toutes les cellules utilisées dans la formule. Par exemple : (NB.SI(D47;47;"JUSTE" ) deviendrait (NB.SI(D119;119;"JUSTE" ).
 
Voici plus d'infos :
 
Dans le fichier http://la.climatologie.free.fr/pre [...] oniere.xls qui est bilan des previsions saisonnieres (mais ici il n'y a pas les formules dans la page CALCUL ERREUR) voila que dans la page CALCUL ERREUR sous le 1er tableau je mets un tableau qui donne le POURCENTAGES DE RÉUSSITES DES PRÉVISIONS SAISONNIÈRES POUR CHAQUE SAISONS SELON LES ANOMALIES DES TEMPÉRATURES EN 3 CLASSES (CHAUD OU FROID OU NORMAL) dont la formule se base sur les donnees du 1er tableau.
 
Ce tableau que je met a pour chaque annees 4 lignes (hiver, printemps ete et automne). Donc a chaque annee il faut remettre la meme formule 4 lignes au dessous concernant les 4 formules differentes de chaques saisons et avec un decalage de 72 cellules dans la formule car sur les 12 mois de l'annees on a des previsions de 6 mois donc 6*12+=72.
 
Comment faire ??
 
Merci
 
Williams


Message édité par williamsss le 02-11-2009 à 16:39:51
Reply

Marsh Posté le 01-11-2009 à 21:25:00   

Reply

Marsh Posté le 02-11-2009 à 11:14:24    

Si on fait un copier/coller d'une cellule contenant cette formule, alors Excel va faire automatiquement le bon décalage pour toutes les cellules référencées dans la formule, sauf si les noms de cellule contiennent un "$".
 
Un exemple avec une formule simple est d'avoir C3=A1+B2
En copiant cette formule en D4, on obtient D4=B2+C3
Le décalage s'est fait tout seul. On n'a pas eu besoin de le calculer et de le saisir.
 
Mais si la formule initiale contient C3=$A$1+B2
En copiant cette formule en D4, on obtient D4=$A$1+C3
Le décalage n'a pas été fait quand il y avait un dollar.

Reply

Marsh Posté le 02-11-2009 à 16:38:56    

olivthill a écrit :

Si on fait un copier/coller d'une cellule contenant cette formule, alors Excel va faire automatiquement le bon décalage pour toutes les cellules référencées dans la formule, sauf si les noms de cellule contiennent un "$".
 
Un exemple avec une formule simple est d'avoir C3=A1+B2
En copiant cette formule en D4, on obtient D4=B2+C3
Le décalage s'est fait tout seul. On n'a pas eu besoin de le calculer et de le saisir.
 
Mais si la formule initiale contient C3=$A$1+B2
En copiant cette formule en D4, on obtient D4=$A$1+C3
Le décalage n'a pas été fait quand il y avait un dollar.


 
Voici un autre fichier  http://pagesperso-orange.fr/climat [...] oniere.xls a la feuil1 avec les 2 tableaux que j'ai rajouté (de la ligne 442 a 469) dont celui de gauche que je tente de modifier la formule pour un decalage. Et les equations sont que dans ces 2 tableaux.
 
Dans la cellule D446 la formule donne la valeur : 66.67%
 
Il faudrait qu'avec un modification de la formule pour le DECALAGE que cela donne 26.67% a la cellule D450.
 
Car avec un decalage de 4 lignes entre la cellule D446 et D450 il faudrait dans la fomule pas un decalage de 4 lignes mais de 72 lignes.
 
Williams

Reply

Marsh Posté le 04-11-2009 à 07:42:38    

Bonjour,
je regarde ton tableau et je me pose une question: pourquoi dans les stats hiver 2008 (ligne 446)par exemple, ne tiens-tu pas compte des prévisions de janv-08 et fev-08 en janvier 2008 lignes 78-79 ni de fev-08 en fevrier 2008(ligne 84)?? est-ce volontaire ou un oubli?
Je cherchais la possibilité de faire une formule plus générale, mais si c'est volontaire, cela n'arrange pas les choses.
 
 
Cordialement

Reply

Marsh Posté le 04-11-2009 à 13:32:58    

seniorpapou a écrit :

Bonjour,
je regarde ton tableau et je me pose une question: pourquoi dans les stats hiver 2008 (ligne 446)par exemple, ne tiens-tu pas compte des prévisions de janv-08 et fev-08 en janvier 2008 lignes 78-79 ni de fev-08 en fevrier 2008(ligne 84)?? est-ce volontaire ou un oubli?
Je cherchais la possibilité de faire une formule plus générale, mais si c'est volontaire, cela n'arrange pas les choses.
 
 
Cordialement


 
Ceci a ete volontaire car je me suis dis pour les 4 saisons que quand la saison a commencé on ne peu plus tenir compte des 2 mois suivants ou le mois qui reste.
 
Mais ceci est juste une suposition. Donc si par exemple on tiendrais comptes de ces mois aussi et que tu arriverais a faire une formule de decalage dont je n'arrive pas a realisé ceci serrait tout de meme bien.
 
Merci
 
Williams

Reply

Marsh Posté le 04-11-2009 à 16:17:53    

Bonoir,  
quelle est ta version excel??
je fais avec 2007, j'espère que cela sera ok pour ta version
(si je réussis, ce qui n'est pas certain)
cordialement

Reply

Marsh Posté le 04-11-2009 à 16:26:02    

seniorpapou a écrit :

Bonoir,  
quelle est ta version excel??
je fais avec 2007, j'espère que cela sera ok pour ta version
(si je réussis, ce qui n'est pas certain)
cordialement


 
J'ai la version 2003.
 
merci
 
Williams

Reply

Marsh Posté le 04-11-2009 à 19:53:26    

Bonsoir,
à vérifier (sans garantie, tient compte de toutes les prévisions)
mettre la formule en D446 et l'étendre dans tous les sens; Je suppose que les colonnes cachées n'ont pas d'intérèt à cet endroit.
 
 
=SI(SOMMEPROD(($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));0+3*MOD(LIGNE()-442;4)))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));1+3*MOD(LIGNE()-442;4)))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));2+3*MOD(LIGNE()-442;4)))*(D$6:D$437<>"" ))=0;"";SOMMEPROD(($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));0+3*MOD(LIGNE()-442;4)))*(D$6:D$437="JUSTE" )+($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));1+3*MOD(LIGNE()-442;4)))*(D$6:D$437="JUSTE" )+($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));2+3*MOD(LIGNE()-442;4)))*(D$6:D$437="JUSTE" ))/SOMMEPROD(($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));0+3*MOD(LIGNE()-442;4)))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));1+3*MOD(LIGNE()-442;4)))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));2+3*MOD(LIGNE()-442;4)))*(D$6:D$437<>"" )))
 
 
Juste une question: tu es un fan de Williams F??
Bonne nuit

Message cité 1 fois
Message édité par seniorpapou le 05-11-2009 à 07:10:12
Reply

Marsh Posté le 04-11-2009 à 21:51:05    

seniorpapou a écrit :

Bonsoir,
à vérifier (sans garantie, tient compte de toutes les prévisions)
mettre la formule en D446 et l'étendre dans tous les sens; Je suppose que les colonnes cachées n'ont pas d'intérèt à cet endroit.
 
 
=SI(SOMMEPROD(($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));0+3*MOD(LIGNE()-442;4)))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));1+3*MOD(LIGNE()-442;4)))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));2+3*MOD(LIGNE()-442;4)))*(D$6:D$437<>"" ))=0;"";SOMMEPROD(($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));0+3*MOD(LIGNE()-442;4)))*(D$6:D$437="JUSTE " )+($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));1+3*MOD(LIGNE()-442;4)))*(D$6:D$437="JUSTE" )+($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));2+3*MOD(LIGNE()-442;4)))*(D$6:D$437="JUSTE" ))/SOMMEPROD(($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));0+3*MOD(LIGNE()-442;4)))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));1+3*MOD(LIGNE()-442;4)))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));2+3*MOD(LIGNE()-442;4)))*(D$6:D$437<>"" )))


 
Apres avoir tente de mettre cette formule dans la cellule D446, voila que Excel me dit que la formule est trop longue. Donc je n'ai pas pu mettre formule helas.
 

seniorpapou a écrit :


Juste une question: tu es un fan de Williams F??
Bonne nuit


 
Oui  biensur  :sol:  
 
Williams


Message édité par williamsss le 04-11-2009 à 21:52:29
Reply

Marsh Posté le 05-11-2009 à 06:58:23    

Bonjour,
c'est un peu ce que je craignais!!! En fait je n'ai pas réussi à trouver le max de caractères des formules en 2003 (je n'ai que 2007 et 2002)
on peut raccourcir si tu as des colonnes disponibles du côté des lignes 442..., par exemple DJ DK DL où on peut caser des valeurs calculées. Veux-tu que je fasse une proposition en ce sens?
 
Une question non liée:
J'ai un reveil qui m'indique le temps (qu'il fait ou qu'il va faire), sais-tu quels sont les critères d'évaluation?? Crois-tu que seules les températures soient utiles? Ne faut-il pas aussi des variations de pression atmosphérique?  Tu peux me répondre en MP parce que ce n'est pas vraiment dans la bonne catégorie. lol
 
Cordialement
 
Je viens de trouver une info: en 2003   1024 caractères alors que 2007 permet: 8192. Tout s'explique j'ai 121 caractères en trop!!!!!!!!!!

Message cité 1 fois
Message édité par seniorpapou le 05-11-2009 à 07:10:49
Reply

Marsh Posté le 05-11-2009 à 06:58:23   

Reply

Marsh Posté le 05-11-2009 à 09:03:11    

RE,
à titre d'exemple tu places la formule suivante en D446:
 
=SI(SOMMEPROD(($C$6:$C$437=MOIS.DECALER($CL446;0))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER($CL446;1))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER($CL446;2))*(D$6:D$437<>"" ))=0;"";SOMMEPROD(($C$6:$C$437=MOIS.DECALER($CL446;0))*(D$6:D$437="JUSTE" )+($C$6:$C$437=MOIS.DECALER($CL446;1))*(D$6:D$437="JUSTE" )+($C$6:$C$437=MOIS.DECALER($CL446;2))*(D$6:D$437="JUSTE" ))/SOMMEPROD(($C$6:$C$437=MOIS.DECALER($CL446;0))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER($CL446;1))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER($CL446;2))*(D$6:D$437<>"" )))
 
et celle-ci en CL442 (que tu étires vers le bas)
 
=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));3*MOD(LIGNE()-442;4))
 
la colonne CL n'est pas obligatoire, mais la ligne 442 l'est.
si tu changes la colonne CL tu remplaces le CL    dans la formule en D446 par la colonne choisie


Message édité par seniorpapou le 05-11-2009 à 09:40:37
Reply

Marsh Posté le 05-11-2009 à 13:06:45    

seniorpapou a écrit :

Bonjour,
Une question non liée:
J'ai un reveil qui m'indique le temps (qu'il fait ou qu'il va faire), sais-tu quels sont les critères d'évaluation?? Crois-tu que seules les températures soient utiles? Ne faut-il pas aussi des variations de pression atmosphérique?  Tu peux me répondre en MP parce que ce n'est pas vraiment dans la bonne catégorie. lol
 
Cordialement
 
Je viens de trouver une info: en 2003   1024 caractères alors que 2007 permet: 8192. Tout s'explique j'ai 121 caractères en trop!!!!!!!!!!


 
Ton reveil doit t'indiquer le temps suivant la pression atmospherique (superieur a 1013hpa temps ensoleille, et inferieur nuageux voir pluvieux en gros)mais pas vu la temperature. C'est ainsi qu'on fait avec les stations meteos.
 

seniorpapou a écrit :


RE,  
à titre d'exemple tu places la formule suivante en D446:  
 
=SI(SOMMEPROD(($C$6:$C$437=MOIS.DECALER($CL446;0))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER($CL446;1))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER($CL446;2))*(D$6:D$437<>"" ))=0;"";SOMMEPROD(($C$6:$C$437=MOIS.DECALER($CL446;0))*(D$6:D$437="JUSTE" )+($C$6:$C$437=MOIS.DECALER($CL446;1))*(D$6:D$437="JUSTE" )+($C$6:$C$437=MOIS.DECALER($CL446;2))*(D$6:D$437="JUSTE" ))/SOMMEPROD(($C$6:$C$437=MOIS.DECALER($CL446;0))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER($CL446;1))*(D$6:D$437<>"" )+($C$6:$C$437=MOIS.DECALER($CL446;2))*(D$6:D$437<>"" )))  
 
et celle-ci en CL442 (que tu étires vers le bas)  
 
=MOIS.DECALER(DATEVAL("01/12/"&TEXTE(ENT((LIGNE()-442)/4)+2006;0));3*MOD(LIGNE()-442;4))  
 
la colonne CL n'est pas obligatoire, mais la ligne 442 l'est.  
si tu changes la colonne CL tu remplaces le CL    dans la formule en D446 par la colonne choisie


 
Si je mets ces 2 formules dans les cellules que tu dis cela me mets "#NOM?" donc il semble avoir un pb ??
 
Puis j'ai remarqué pour les saisons d'où il n'y a pas de donnée pour l'instant que si dans ma formule pour la cellule D450   =SI((NB.SI(D119:D146;"JUSTE" ))+(NB.SI(D119:D146;"FAUX " ))<1;"";((NB.SI(D119:D119;"JUSTE" )+NB.SI(D124:D125;"JUSTE" )+NB.SI(D129:D131;"JUSTE" )+NB.SI(D134:D136;"JUSTE" )+NB.SI(D139:D141;"JUSTE" )+NB.SI(D144:D146;"JUSTE" )))/(((NB.SI(D119:D119;"JUSTE" )+NB.SI(D124:D125;"JUSTE" )+NB.SI(D129:D131;"JUSTE" )+NB.SI(D134:D136;"JUSTE" )+NB.SI(D139:D141;"JUSTE" )+NB.SI(D144:D146;"JUSTE" )))+NB.SI(D119:D119;"FAUX " )+NB.SI(D124:D125;"FAUX " )+NB.SI(D129:D131;"FAUX " )+NB.SI(D134:D136;"FAUX " )+NB.SI(D139:D141;"FAUX " )+NB.SI(D144:D146;"FAUX " ))) je mets cette partie en GRAS,  alors les previsions pour les mois d'été et d'automne qui sont compris entre la cellule D119 et D146 et qui sont avant les donnees des prévisions de l'hiver font cela ne va pas pour l'hiver car il faudrait qu'on regarde si il y a au moins 1 seul valeur JUSTE ou FAUX que pour l'hiver pour que dans la cellule D450 on commence a mettre a mettre un valeur.  
 
Alors voila comment j'ai modifié la cellule D450 et idem pour les autres cellules donc :
D450 : =SI((G119+G124+G125+G129+G130+G131+G134+G135+G136+G139+G140+G141+G144+G145+G146+G150+G151+H119+H124+H125+H129+H130+H131+H134+H135+H136+H139+H140+H141+H144+H145+H146+H150+H151)<1;"";(((NB.SI(D119:D119;"JUSTE" )+NB.SI(D124:D125;"JUSTE" )+NB.SI(D129:D131;"JUSTE" )+NB.SI(D134:D136;"JUSTE" )+NB.SI(D139:D141;"JUSTE" )+NB.SI(D144:D146;"JUSTE" )))/((NB.SI(D119:D119;"JUSTE" )+NB.SI(D124:D125;"JUSTE" )+NB.SI(D129:D131;"JUSTE" )+NB.SI(D134:D136;"JUSTE" )+NB.SI(D139:D141;"JUSTE" )+NB.SI(D144:D146;"JUSTE" )+(NB.SI(D119:D119;"FAUX " )+NB.SI(D124:D125;"FAUX " )+NB.SI(D129:D131;"FAUX " )+NB.SI(D134:D136;"FAUX " )+NB.SI(D139:D141;"FAUX " )+NB.SI(D144:D146;"FAUX " ))))))
 
Williams


Message édité par williamsss le 05-11-2009 à 13:10:55
Reply

Marsh Posté le 05-11-2009 à 13:20:54    

Bonjour,
peux-tu poster ton xls avec mes modifs?
 
je crois bien que c'est  MOIS.DECALER qui n'est pas systématiquement défini. Regarde dans le help à la rubrique MOIS.DECALER, il y est précisé comment faire. Je regarde sur 2002 et te communique l'info
 
cordialement

Reply

Marsh Posté le 05-11-2009 à 13:29:16    

Voici ce qui est précisé dans le help 2002:
 
Si cette fonction n'est pas disponible et renvoie l'erreur #NOM ?, installez et chargez la macro complémentaire Utilitaire d'analyse.
 
 Procédure
 
Dans le menu Outils, cliquez sur Macros complémentaires.  
Dans la liste Macros complémentaires disponibles, activez la case à cocher Utilitaire d'analyse, puis cliquez sur OK.  
Si nécessaire, suivez les instructions fournies par le programme d'installation.  

Reply

Marsh Posté le 05-11-2009 à 13:36:25    

seniorpapou a écrit :

Bonjour,
peux-tu poster ton xls avec mes modifs?
 
je crois bien que c'est  MOIS.DECALER qui n'est pas systématiquement défini. Regarde dans le help à la rubrique MOIS.DECALER, il y est précisé comment faire. Je regarde sur 2002 et te communique l'info
 
cordialement


 
Voici un lien vers un fichier Excel avec ta formule : http://pagesperso-orange.fr/climat [...] niere1.xls
 
Actuellement je regarde les explications de MOIS.DECALER pour comprendre la formule comme cela jongle sur 2 formules.
 
merci
 
Williams

Reply

Marsh Posté le 05-11-2009 à 13:49:26    

seniorpapou a écrit :

Voici ce qui est précisé dans le help 2002:
 
Si cette fonction n'est pas disponible et renvoie l'erreur #NOM ?, installez et chargez la macro complémentaire Utilitaire d'analyse.
 
 Procédure
 
Dans le menu Outils, cliquez sur Macros complémentaires.  
Dans la liste Macros complémentaires disponibles, activez la case à cocher Utilitaire d'analyse, puis cliquez sur OK.  
Si nécessaire, suivez les instructions fournies par le programme d'installation.  


 
Apres avoir activé la case voila qu'on m'a demandé de mettre le CD d'installation ce que je n'ai pas car quand on achete un ordinateur on n'a pas tout les DVD des logiciels installés (Microsoft, Window...). Donc impossible a faire pour Excel :(  
 
Williams

Reply

Marsh Posté le 05-11-2009 à 14:03:55    

No comment.
Mais je crois que dans le dvd (délivré avec ou fait en sauvegarde) il doit y avoir les applications, sinon tu serais mal parti en cas de plantage.
 
en attendant je vais voir pour formuler sans MOIS.DECALER

Reply

Marsh Posté le 05-11-2009 à 15:42:22    

tu oublies MOI.DECALER et la colonne CL
tu colles cette formule en D446, tu étends et tu me dis si cela fonctionne en 2003
 
 
=SI(SOMMEPROD(($C$6:$C$437=DATE(2006;(3*(LIGNE()-442)+12);1))*(D$6:D$437<>"" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+13;1))*(D$6:D$437<>"" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+14;1))*(D$6:D$437<>"" ))=0;"";SOMMEPROD(($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+12;1))*(D$6:D$437="JUSTE" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+13;1))*(D$6:D$437="JUSTE" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+14;1))*(D$6:D$437="JUSTE" ))/SOMMEPROD(($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+12;1))*(D$6:D$437<>"" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+13;1))*(D$6:D$437<>"" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+14;1))*(D$6:D$437<>"" )))

Reply

Marsh Posté le 05-11-2009 à 17:46:39    

seniorpapou a écrit :

tu oublies MOI.DECALER et la colonne CL
tu colles cette formule en D446, tu étends et tu me dis si cela fonctionne en 2003
 
 
=SI(SOMMEPROD(($C$6:$C$437=DATE(2006;(3*(LIGNE()-442)+12);1))*(D$6:D$437<>"" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+13;1))*(D$6:D$437<>"" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+14;1))*(D$6:D$437<>"" ))=0;"";SOMMEPROD(($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+12;1))*(D$6:D$437="JUSTE" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+13;1))*(D$6:D$437="JUSTE" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+14;1))*(D$6:D$437="JUSTE" ))/SOMMEPROD(($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+12;1))*(D$6:D$437<>"" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+13;1))*(D$6:D$437<>"" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+14;1))*(D$6:D$437<>"" )))


 
Apres avoir essaye ta formule tout semble bien fonctionner car je retrouve les memes % en y ajoutant les 2 dernieres bilans des previsions saisonieres qui ont lieu lors de la saison (exemple celle de juillet et aout pour l'été)  :)  
 
Juste une question pour etre sur que cela va bien :
 
Quand on a pas encore le 1er resulat (Vrai ou Faux) du bilan de la prevision comme par exemple pour cet hiver puisque decembre n'est pas passe, cela en tien bien compte ??  
 
Merci bp
 
Williams


Message édité par williamsss le 05-11-2009 à 17:49:50
Reply

Marsh Posté le 05-11-2009 à 18:15:31    

Bonsoir,
pour une saison, par exemple  HIVER la formule fait, pour les trois mois concernés (01/12/an-1, 01/01/an,et 01/02/an), s'il y a au moins une réponse (JUSTE ou FAUX) , la somme des JUSTE divisé par la somme totale des réponses. Si une cellule n'est pas renseignée, elle n'entre pas dans le calcul.
 
Veux-tu que je détaille la formule??
Bonne soirée

Reply

Marsh Posté le 05-11-2009 à 18:59:41    

seniorpapou a écrit :

Bonsoir,
pour une saison, par exemple  HIVER la formule fait, pour les trois mois concernés (01/12/an-1, 01/01/an,et 01/02/an), s'il y a au moins une réponse (JUSTE ou FAUX) , la somme des JUSTE divisé par la somme totale des réponses. Si une cellule n'est pas renseignée, elle n'entre pas dans le calcul.
 
Veux-tu que je détaille la formule??
Bonne soirée


 
Ok je vois que cela tiens compte du changement que j'avais realisé cité plus haut.
 
Oui je veus bien que tu la détails pour mieux la comprendre et pour pouvoir l'utiliser dans le tableau a droite de celui ci  ;)  
 
Williams

Reply

Marsh Posté le 05-11-2009 à 19:37:45    

Ok, je te ferai cela à tête plus éveillée, soit demain avant 8h, soit l'après midi.


Message édité par seniorpapou le 05-11-2009 à 19:38:10
Reply

Marsh Posté le 06-11-2009 à 08:43:58    

Bonjour,
Je suis sur l'explication, mais c'est long. J'espère qu'elle ne sera pas plus compliquée que la formule elle-même.

Reply

Marsh Posté le 06-11-2009 à 14:20:09    

Tentative d'explication de la formule:
 
=SI(SOMMEPROD(($C$6:$C$437=DATE(2006;(3*(LIGNE()-442)+12);1))*(D$6:D$437<>"" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+13;1))*(D$6:D$437<>"" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+14;1))*(D$6:D$437<>"" ))=0;"";SOMMEPROD(($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+12;1))*(D$6:D$437="JUSTE" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+13;1))*(D$6:D$437="JUSTE" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+14;1))*(D$6:D$437="JUSTE" ))/SOMMEPROD(($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+12;1))*(D$6:D$437<>"" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+13;1))*(D$6:D$437<>"" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+14;1))*(D$6:D$437<>"" )))
 
 
1) J’ai remarqué que dans ta colonne C, depuis C6 jusqu’à C437 tu avais défini tes mois dans des cellules au format DATE , par exemple : pour afficher mai-08 tu as saisi 01/05/2008.
2) J’ai constaté aussi qu’au regard de chaque date, dans les colonnes D….etc.  tu avais trois possibilités de contenu :  « JUSTE »    « FAUX «     ou rien (« « ). A noter que FAUX est suivi d’un espace, ce qui n’est pas évident pour les comparaisons, c’est pourquoi j’ai essayé de ne pas avoir à l’utiliser pour contourner les erreurs de saisie (absence d’espace) sans avoir à utiliser la fonction qui supprime les espaces avant et après le contenu de la cellule (ce qui aurait allongé la longueur de la formule.
3) J’ai supposé, à la lecture de la formule que tu proposais, que tu voulais obtenir, par saison, le pourcentage de réussite des prévisions par rapport au total des prévisions effectives.
avec pour définition des saisons :
    HIVER 2008 = 01/12/2007 + 01/01/2008 + 01/02/2008
   PRINTEMPS 2008 = 01/03/2008 + 01/04/2008 + 01/05/2008
etc…
On doit donc, pour la cellule D446, par exemple, calculer le nombre de fois où JUSTE est présent pour les 3 mois d’HIVER 2008.
 
La fonction SOMMEPROD va permettre de le faire .
Prenons DATE1=date(2007 ;12 ;1),  MATRICE1 =C6 :C437, MATRICE2= D6 :D437
CRITERE1 = (MATRICE1=DATE1)
CRITERE2 = (MATRICE2= »JUSTE »)
 
SOMMEPROD((CRITERE1)*(CRITERE2))  
nous donnera les résultats suivants :
Si un  élément de MATRICE1 est = DATE1  alors CRITERE1 sera = 1 sinon = 0
Si l’élément correspondant de MATRICE2 est = « JUSTE » alors CRITERE2 sera = 1 sinon = 0
Nous aurons donc :  
 
 (CRITERE1)*(CRITERE2)=  1*0 = 0 si la date est bonne mais « JUSTE » absent
 (CRITERE1)*(CRITERE2)=  1*1 = 1 si la date est bonne et « JUSTE » présent
 (CRITERE1)*(CRITERE2)= 0*1 = 0 si la date est # de celle recherchée et « JUSTE » présent. SOMMEPROD fait la somme de tous les 1 trouvés. Nous avons donc le nombre de « JUSTE » pour Décembre 2007
 
SOMMEPROD va balayer ainsi toute la MATRICE1 (et MATRICE2) et faire le cumul des 0 ou 1 trouvés
Le cumul devant se faire sur trois mois pour une saison, nous écrirons
SOMMEPROD((CRITERE1)*(CRITERE2)+ (CRITERE3)*(CRITERE2)+ (CRITERE4)*(CRITERE2))
SOMMEPROD((C6:C437=DATE1)*( D6:D437= »JUSTE »)+ (C6:C437=DATE2)*( D6:D437= »JUSTE »)+ (C6:C437=DATE3)*( D6:D437= »JUSTE »))Passons au calcul des dates, en fonction d’une ligne donnée.
 
La fonction DATE(A,M,J) délivre une date sous la même forme que ce qui est mémorisé dans C6 :C437
La fonction LIGNE() donne le numéro de ligne de la cellule où se trouve la formule
 
Sachant qu’en D446 je dois définir les 3 mois cités plus haut, je dois avoir pour premier mois
01/12/2007 soit le 24 éme mois à partir du 01/01/2006
DATE(2006;(3*(LIGNE()-442)+12);1)
 
3*(LIGNE()-442)+12 me définit bien le 24ème mois depuis l’origine  
DATE(2006 ;24 ;1) donnera 01/12/2007
 
Les DATE2 et DATE3  seront donc définies respectivement par :
DATE(2006;(3*(LIGNE()-442)+13);1), soit 01/01/2008
Et
DATE(2006;(3*(LIGNE()-442)+14);1) soit 01/02/2008
 
 
Lorsque je descends d’une ligne, par exemple en D447, la fonction DATE donnera pour le premier mois de la saison : DATE(2006 ;3*(447-442)+12 ;1)
Ou encore DATE(2006 ;27 ;1) soit 01/03/2008
Etc etc…
 
Le SOMMEPROD devient enfin :
SOMMEPROD(($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+12;1))*(D$6:D$437="JUSTE" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+13;1))*(D$6:D$437="JUSTE" )+($C$6:$C$437=DATE(2006;3*(LIGNE()-442)+14;1))*(D$6:D$437="JUSTE" ))
 
Je ne réexplique pas le rôle des $ dans l’adresse de cellules, cela a déjà été fait plus haut par olivthill
 
Voilà !!!
J’espère avoir assez détaillé et pas trop.
 
Si tu comprends, BRAVO, sinon, à ta disposition pour complèter en MP pour ne pas sursaturer le post.


Message édité par seniorpapou le 06-11-2009 à 14:29:28
Reply

Marsh Posté le 06-11-2009 à 15:00:18    

Je te remercie bp  :hello:  
 
Williams

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed