Les As du decaler() m'éviteront-ils le VBA ?

sigismond

XLDnaute Occasionnel
Bonjour à tous

Avant d'attaquer mon problème avec VBA, j'aimerais épuiser toutes les possibilités d'Excel en natif.

Je souhaite suivre ma conso EDF pour en faire un graphique.

Je cherche donc à calculer ma conso journalière à partir de relevés aléatoires (quand j'y pense).

Mon modèle comprend :
  • Une colonne A calendrier (une ligne par jour)
  • Une colonne B relevé, remplie aléatoirement
  • Une colonne C avec une formule calculant la conso journalière à partir des données de la colonne B selon la formule :
    (relevé postérieur - relevé antérieur)/nb jours entre les 2 relevés.

Mon problème tient à l'incertitude de la position des données relevé.

Dans le fichier joint la colonne C est pré-remplie avec une formule conditionnelle que je viens remplacer, à chaque ligne relevé, par une formule manuelle.
Je soupçonne qu'une formule incluant la fonction decaler() devrait exister mais je sèche.

Merci à ceux qui focaliseront leurs méninges sur le cas.

Sigismond
 

Pièces jointes

  • Releve_compteur.zip
    10.3 KB · Affichages: 38
  • Releve_compteur.zip
    10.3 KB · Affichages: 40
  • Releve_compteur.zip
    10.3 KB · Affichages: 37

laurent999

XLDnaute Occasionnel
Re : Les As du decaler() m'éviteront-ils le VBA ?

Bonjour,

En feuille 2 du classeur je te propose une autre solution un peu plus simple.
A chaque relevé de compteur il suffit d'ajouter la date et la valeur relevé.

puis sélectionner la période en D3 E3, pour avoir le résultat, case en jaune dans la feuille2.

Attention les dates doivent être dans l'ordre.

Laurent.
 

Pièces jointes

  • Releve_compteur.zip
    10.8 KB · Affichages: 30
  • Releve_compteur.zip
    10.8 KB · Affichages: 32
  • Releve_compteur.zip
    10.8 KB · Affichages: 31

hoerwind

XLDnaute Barbatruc
Re : Les As du decaler() m'éviteront-ils le VBA ?

Bonjour,

Essaie en C3 :
Code:
=(DECALER(B$1;EQUIV(MIN(B4:B$250);B$1:B$250;0)-1;)-DECALER(B$1;EQUIV(MAX(B$3:B3);B$1:B$250;0)-1;))/(EQUIV(MIN(B4:B$250);B$1:B$250;0)-EQUIV(MAX(B$3:B3);B$1:B$250;0))
formule à copier vers le bas
 

sigismond

XLDnaute Occasionnel
Re : Les As du decaler() m'éviteront-ils le VBA ?

Bonjour,

En feuille 2 du classeur je te propose une autre solution un peu plus simple.
A chaque relevé de compteur il suffit d'ajouter la date et la valeur relevé.

puis sélectionner la période en D3 E3, pour avoir le résultat, case en jaune dans la feuille2.

Attention les dates doivent être dans l'ordre.

Laurent.

Bonjour Laurent et merci de consacrer du temps à mon problème.

Tu me donnes effectivement une nouvelle piste de recherche en créant une liste de saisie contigüe avec les dates.

Je cherche à avancer par ce biais là.

Merci à toi.

Sigismond.
 

sigismond

XLDnaute Occasionnel
Re : Les As du decaler() m'éviteront-ils le VBA ?

Bonjour,

Essaie en C3 :
Code:
=(DECALER(B$1;EQUIV(MIN(B4:B$250);B$1:B$250;0)-1;)-DECALER(B$1;EQUIV(MAX(B$3:B3);B$1:B$250;0)-1;))/(EQUIV(MIN(B4:B$250);B$1:B$250;0)-EQUIV(MAX(B$3:B3);B$1:B$250;0))
formule à copier vers le bas


Et Toc, en plein dans le mille !

Merci à toi hoerwind et un immense BRAVO.

Je pense que je vais mettre plus de temps à décortiquer ta formule que tu n'en a mis à la concocter.

C'est quand même plus élégant que du VBA (ça exige aussi d'être plus pointu...)

Merci encore pour la leçon.

Sigismond
 

kjin

XLDnaute Barbatruc
Re : Les As du decaler() m'éviteront-ils le VBA ?

Bonjour,
Quel intérêt de faire apparaître la valeur moyenneJ pour chaque jour ?
Ce qui n'enlève rien au mérite d'Hoerwind que je salut :)
A+
kjin
 

Pièces jointes

  • sigismond.xls
    28.5 KB · Affichages: 45

sigismond

XLDnaute Occasionnel
Re : Les As du decaler() m'éviteront-ils le VBA ?

Bonjour,
Quel intérêt de faire apparaître la valeur moyenneJ pour chaque jour ?
Ce qui n'enlève rien au mérite d'Hoerwind que je salut :)
A+
kjin

Re, Bonjour kjin et merci de participer à la résolution de mon problème.

Si j'utilise la moyenne jour, c'est pour que le graphique garde sa proportionnalité chronologique, ce qui est indispensable si la fréquence de relevé est aléatoire.
Sinon deux relevés contigus de 6 mois et d'une semaine auront le même poids dans l'échelle des temps.

La deuxième raison est que la logique du modèle est beaucoup plus simple, limpide(en dépit de la complexité de la formule). C'est facile à dire à posteriori, mais je revendique l'intuition (à priori), que la formule était jouable.

Merci pour ta solution qui limite effectivement la saisie à la date et à la valeur de conso, Tout le reste se calculant dans des formules préinstallées.

Bonne journée,

Sigismond
 

sigismond

XLDnaute Occasionnel
Re : Les As du decaler() m'éviteront-ils le VBA ?

Hoerwind, je reconnais la méthode de construction des mégas-formules (selon une appellation fréquente dans la littérature Excel).

Merci de nous avoir transmis le fichier-source (ReleveCompteurV2.zip) ce qui simplifie grandement la compréhension.

Tu me fais découvrir l'usage de la fonction Equiv(). :eek:
Cela m'ouvre des horizons.

Merci pour ton aide,

Bonne journée.

Sigismond
 

Discussions similaires

Statistiques des forums

Discussions
312 335
Messages
2 087 386
Membres
103 531
dernier inscrit
dieubrice