Autres Calcul mensuelle (moyenne,...) sur des données journalières sur des années

williamss

XLDnaute Occasionnel
Bonjour et bonne année et santé 2021 à tout le monde,

J'ai Excel 2007. Dans ce ficher Excel, depuis plusieurs jours je cherche à trouver des formules pour rendre un tableau avec des données mensuelles plus facile c'est à dire pour ne pas mettre les formules chaque mois quand j'aurais les données.

Dans le premier tableau de la page "de 2001 à 2030" qui nous donne des moyennes, des maximales, minimales, le nombre de..., pour chaque mois en se basant aux données journalières de la page "donnees" je n'arrive pas à mettre des formules pour qu'en les tirant jusqu'en bas cela puisse permettre de réaliser les calculs tout les prochains mois quand il y aura les données. Puis il faut faire attention aux quelques cellules vides dans la page de données comme en octobre 2020, etc.

Pour calculer la moyenne dans la colonne F je pensais mettre la formule ={MOYENNE(SI((donnees!D$6:donnees!D$10734<>"")*(MOIS(donnees!$C$6:donnees!$C$10734)=MOIS($C235))*(ANNEE(donnees!$C$6:donnees!$C$10734)=ANNEE($C235));donnees!D$6:donnees!D$10734))} mais le problème que je rencontre c'est si il n'y a plus de cellule cela mets #DIV/0!

Donc pour cette formule comment peut-on faire pour que lorsqu'il n'y a pas une seule cellules de données alors cela ne donne pas un résultat #DIV/0! mais plutôt une cellule vide ??

merci

Williams
 
Dernière édition:

williamss

XLDnaute Occasionnel
Bonsoir Job75,

merci pour les 2 infos. Avec =SIERREUR(formule;"") en plus dans la formule d'une MOYENNE ci-dessus cela fonctionne, c'est parfait ;)

Après j'ai tenté la même chose avec les fonctions MAX et MIN mais voilà que cela ne fonctionne pas comme dans par exemple dans la cellule D238, si je met

={SIERREUR(MIN(SI((donnees!D$6:donnees!F$10734<>"")*(MOIS(donnees!$C$6:donnees!$C$10734)=MOIS($C238))*(ANNEE(donnees!$C$6:donnees!$C$10734)=ANNEE($C238));donnees!D$6:donnees!F$10734));"")}

voilà que cela me donne comme résultat 0 du fait qu'il n'y a pas de donnée. Idem si je remplace MIN par MAX.

Comment peut-on résoudre ce même problème avec ces 2 autres fonctions (MIN et MAX) ??

merci

Williams
 

JHA

XLDnaute Barbatruc
Bonjour et bonne année à tous

Sans ouvrir ton fichier, tu peux essayer
VB:
=SIERREUR(MIN(SI((donnees!D$6:donnees!F$10734>0)*(MOIS(donnees!$C$6:donnees!$C$10734)=MOIS($C238))*(ANNEE(donnees!$C$6:donnees!$C$10734)=ANNEE($C238));donnees!D$6:donnees!F$10734));"")
ou
VB:
=SIERREUR(MIN(SI(estnum(donnees!D$6:donnees!F$10734)*(MOIS(donnees!$C$6:donnees!$C$10734)=MOIS($C238))*(ANNEE(donnees!$C$6:donnees!$C$10734)=ANNEE($C238));donnees!D$6:donnees!F$10734));"")

JHA
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour williamss, JHA,

Si l'on veut éviter les valeurs zéros en D238, toujours en matriciel :
Code:
=SIERREUR(EXP(LN(MIN(SI((donnees!D$6:F$10734<>"")*(MOIS(donnees!$C$6:$C$10734)=MOIS($C238))*(ANNEE(donnees!$C$6:$C$10734)=ANNEE($C238));donnees!D$6:F$10734))));"")
A+
 

williamss

XLDnaute Occasionnel
Bonjour Job75 et JHA,

J'ai essayé vos trois formules.

JHA, quand il n'y a pas de donnée cela me mets toujours un 0 par surprise.

Ta formule Job75 est excellente lorsqu'il n'y a pas de donnée donc pour ne pas avoir un zéro mais plutôt rien du tout. Et quand le calcul (minimum ou maximum,...) est avec des données supérieures à 0, donc cela va pour les données de la pression atmosphérique (hpa).

Par contre si dans les données il y a des valeurs qui sont égales ou inférieures à 0 comme pour les températures alors cela fausse le résultat comme cela mets un 0 au lieu du chiffre égal ou inférieur à 0. Par exemple, dans la colonne I (minimale absolue de la température) pour les mois où il gèle alors il n'y a plus de résultat comme c'est une valeur négative que cela doit nous donner pour le minimum. Pour I229 le résultat est rien du tout alors que cela doit être -0.5 comme c'est écrit dans le tableau.

Donc quand les résultats sont égaux ou inférieurs à 0 comment peut-on faire pour que cela donne le résultat ici et quand il n'y a pas une seule valeur dans les x cellules concernée à la formule alors cela laisse la cellule vide ?

merci

Williams
 

job75

XLDnaute Barbatruc
Il faut compliquer la formule matricielle, entrer en I229 :
Code:
=SI(SOMME((donnees!G$6:G$10734<>"")*(MOIS(donnees!$C$6:$C$10734)=MOIS($C229))*(ANNEE(donnees!$C$6:$C$10734)=ANNEE($C229)));MIN(SI((donnees!G$6:G$10734<>"")*(MOIS(donnees!$C$6:$C$10734)=MOIS($C229))*(ANNEE(donnees!$C$6:$C$10734)=ANNEE($C229));donnees!G$6:G$10734));"")
 

williamss

XLDnaute Occasionnel
Merci bp Job75 ;)

Ainsi, avec ces exemples de formules j'ai pu remplir toutes les colonnes de juillet 2020 à janvier 2021. Après pour voir j'ai glissé toutes les formules vers le haut pour voir ce que cela me donnait. Mais par surprise, si tu le fais dans ce fichier Excel modifié depuis, pour certaines années il y a des mois (avril, août, octobre et novembre) jusqu'en 2005 avec aucun résultat sur toutes les colonnes 😮

Pourquoi jusqu'à 2005, ces mois ne fonctionne pas, comment résoudre ce problème ??

Merci

Williams
 

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 127
Membres
112 667
dernier inscrit
foyoman