Bonjour,
je cherche à traiter des données de consommations électriques fournies par ENEDIS au pas de 1/2 heure. Les données brutes sont d’abord copiées dans une 1ère feuille Calc sous 2 colonnes, la 1ère pour la date et l’heure, la 2nd pour la puissance moyenne absorbée pendant la 1/2h précédente. Je fais un 1er traitement dans la feuille suivante où je sépare date et heure, mais les données de puissances moyennes restent sur la même colonne pour une année donnée (en l’occurrence la colonne H pour l’année 2021). Ensuite j’ai créé des feuilles dédiées à chaque année (en l’occurrence de 2020 à 2025). Dans chacune de ces feuilles j’ai créé une colonne par jour qui contient les 48 valeurs du jour en question depuis 0,5h jusqu’à 24h. Par exemple pour récupérer les valeurs stockées dans la 2ème feuille (nommée " traite date & heure") du 6 juin 2021 à 0,5h (correspondant à la ligne 13808) je tape dans la cellule correspondante de la feuille 2021 (dans ce cas la cellule FM5) :
=$‘traite date & heure’.$H13808
Ensuite pour copier toutes les valeurs du même jour, il me suffit de copier jusqu’à la cellule FM52 de la même colonne et la formule incrémente automatiquement de 1 (13808, 13809,…13855).
Mon problème, tout bête mais que je n’arrive pas à traiter automatiquement, est que lorsque je veux passer au jour suivant (le 7 juin à 0,5 h sur cet exemple), je ne sais le faire qu’en rentrant manuellement dans la colonne FN5 la formule :
=$‘traite date & heure’.$H13856
Or je voudrais pouvoir le faire automatiquement puisque j’ai toujours le même nombre de données par jour (48 = 13856-13808 dans cet exemple). Tandis que le faire à la main pour 365 jours x 5 ans, … !
J’ai cherché sans succès dans les fonctions à insérer dans la cellule.
Quelqu’un peut-il m’aider ?
Merci par avance.
consommations électriques_LeroyG.ods (14.3 KB)
Pourquoi pas un jour en dessous de l’autre ?
Si vous partagez un fichier d’échantillon réduit, il est facile de donner une meilleure réponse.
Bonjour,
ma réponse à LeroyG : pour répondre à votre question je veux avoir un jour par colonne, sachant que la 1ère colonne reportera les heures de 0,5 à 24h par pas de 0,5h de façon à pouvoir ensuite faire des graphes représentant la consommation en fonction de l’heure de la journée mais pour différents jours sur le même graphe et avec la même abscisse (l’heure). Et ça je ne sais le faire que si les jours en question sont sur des colonnes différentes.
Pour un exemple de fichier dont je parle, je vais essayer
extrait_traitement_conso-élec.ods (226.1 KB)
de le joindre ici. Il ne comporte que quelques jours, car je ne tiens pas à ce que tout le monde connaisse ma consommation énergétique sur des années
Dernière précision : pour alléger le fichier joint, j’ai dû supprimer des lignes avant et après les lignes sélectionnées. Du coup les n° de ligne que j’avais indiqués dans mon 1er post ne sont plus bons. Mais je pense que vous comprendrez quand même.
Vous pouvez remplacer les données réelles par 1, 2, 3, etc.
R1 - Bonjour AZA66, le forum
Pour obtenir le résultat ci-dessus, utiliser la formule ci-dessous :
=INDIRECT(ADRESSE(EQUIV('2025'.$A2+'2025'.B$1;$'traite date & heure'.$A:$A;1);2;4;1;"traite date & heure");1)
conso-AZA66.ods (242,5 Ko)
R2 - Bonjour AZA66, le forum
=SI(OU(H4="";ESTERREUR(EQUIV(H$4;$'traite date & heure'.$C:$C;0)));"";
INDIRECT(ADRESSE(EQUIV(H$4;$'traite date & heure'.$C:$C;0)+LIGNE()-5;EQUIV(ANNEE(H$4)*1;$'traite date & heure'.$A$3:$L$3;0);4;1;"traite date & heure");1))
Si l’une ou l’autre des deux conditions (soit il n’y a pas de date en ligne 4, soit la date est introuvable) est vraie, on affiche une cellule vide,
sinon on va chercher la valeur contenue à l’adresse calculée:
En 2021.H5, on cherche le jour affiché en ligne 4 (qui est en fait une date au format J) dans la colonne C de traite date & heure, à ce résultat on ajoute LIGNE()-5, càd 0 puisqu’on est à la ligne 5, pour 2021.H6 on ajoute 1 puisqu’on est à la ligne 6 etc…
Une fois trouvée la ligne on cherche la colonne correspondante à l’année contenue en 2021.H5 dans la ligne 3 de traite date & heure.
L’adresse étant constituée, la fonction indirect renvoie le contenu de la cellule correspondante.
AZA66-extrait_traitement_conso-élec.ods (444,4 Ko)
Attention aux formats de cellules qui ont été modifiés
Bonjour,
merci pour votre réponse. Elle correspond (presque !) à ce que je veux. Problème : dans l’exemple de fichier que vous m’avez envoyé les heures (de 0,5h à 24h) sont sur la 1ère ligne et les jours sur la 1ère colonne, or je souhaitais l’inverse. Je ne connaissais pas les fonctions INDIRECT ADRESS ni EQUIV donc j’avoue que je n’ai pas encore compris la syntaxe, mais je vais les étudier. En revanche j’ai vu sur votre fichier joint “test-conso-AZA66” que ça répondait bien à mon problème, à savoir dans la feuille “2025” cette combinaison Indirect(adress(equiv(…))) reprend bien les données de la feuille “traite date & heure” et les ordonne dans un tableau à 2 entrées (date et heure). Et surtout quand on fait un copier/coller soit dans une colonne, soit dans une ligne cela incrémente comme il faut et récupère les bonnes valeurs
extrait_traitement_conso-élec.ods (226.1 KB)
dans la 1ère feuille.
Il faut que j’adapte maintenant la formule à mon cas. Je vous joins un extrait de mon fichier au cas où vous pourriez le faire. Mais si vous n’avez pas le temps je vous remercie quand même. Je vais potasser ces fonctions pour m’en dépatouiller plus tard.
Voir la formule dans FE5. Je suis convaincu qu’elle pourrait être plus claire, mais cela pourrait impliquer une réorganisation des données…
Si vous ajoutez une colonne supplémentaire entre les mois, vous devez ajouter 1 au n de -(48*n)
dans la formule à chaque nouveau mois (c’est-à-dire FH5).
extrait_traitement_conso-élec_LeroyG.ods (212.6 KB)
en :
See formula in FE5 (=INDIRECT("$'traite date & heure'.H"&(COLUMN()-161)*48+(ROW()-(48*0)-1))
). I’m convinced that it could be a cleaner formula, but it could imply reordering data.
If do you add an extra column between months, you must add 1 to the n of -(48*n)
in the formula at each new month (i.e., FH5).
Merci.
j’ai encore un petit soucis sur la différence entre l’heure légale et l’heure TUC (temps universel coordonné). Mais ça je vais m’en dépatouiller.
Merci encore pour votre aide.
Merci aussi pour votre réponse njhub. La formule que vous donnez marche très bien. Elle est plus compliquée que celle de LeroyG ci-dessus mais prend en plus en compte le fait que certaines données sont absentes (après le 13 juin 2021 notamment). Ce n’est pas un oubli de ma part dans le fichier que je vous ai envoyé, c’est un problème de dysfonctionnement du “concentrateur” d’après Enedis, concentrateur qui agrège les données de plusieurs compteurs Linky et qui tombe quelque fois en panne à 0h.
En tout cas mon problème est maintenant résolu grace à cette fonction INDIRECT que je ne connaissais pas. Merci aussi pour votre explication de votre formule. Ca aide pour sa transposition à d’autres cas similaires.