Incrémentation intelligente

Bonjour le forum,

Imaginons que chaque jour de l'année je gagne entre 50€ et 200€ . Je remplie donc un tableau comme ceci

MoisJourValeur
1190€
12150€
............
1231110€

Je souhaite maintenant remplir un tableau indexé à l'heure cette fois-ci. Pour cela, j'admets une répartition homogène de mon salaire journalier sur les heures.
Ce qui nous amène au tableau suivant

MoisJourheureValeur
11190€/24
1
1
290€/24
....
....
........
12
31
24110€/24

Ma question est la suivante, comment puis-je faire formuler tous ça sur excel / VBA, car, pour les plus vifs d'esprit, vous aurez compris que mes tableaux font 365 et 8760 lignes.

Je vous joins une image du fichier (qui ne traite pas de salaire mais l'idée est la même).

capture d ecran 2022 06 20 184439

Merci d'avance à celui ou celle qui prendra le temps de me répondre.

Bonsoir,

un essai :

10essai-kwh-lrd.xlsx (11.45 Ko)

SOMMEPROD est "lourd" peut être qu'une autre fonction ferait l'affaire...

@ bientôt

LouReeD

bonjour,

plus léger avec décalage ?

10essai-kwh-lrd.xlsx (18.77 Ko)

Bonsoir BsAlv !

Comme je le disais SOMMEPROD est plus lourd, mais il est plus "simple" car les données peuvent se "répétées" exemple deux fois la même journée suite à deux relevé, voir un mélange dans les relevés au niveaux des dates...

Mais ceci est une autre histoire, je m'en veux de ne pas avoir trouver ce décalage par formule !

@ bientôt

LouReeD

Bonsoir à tous !

La fonction DECALER est une fonction volatile. La formule est donc systématiquement réactualisée lors d'un calcul dans la feuille. Ce qui peut s'avérer coûteux en termes de ressources surtout avec une volumétrie susceptible de grossir.

Je propose une contribution via Power Query qui présente l'avantage de pouvoir, via les propriétés, gérer finement les actualisations.

Bonjour tout le monde,

BsAlV : ton programme ne prend pas en compte le fait que les mois de n'ont pas le même nombre de jours, donc un décalage se créer à partir du mois de février.

LooReed : je ne comprends pas pourquoi mais à partir du mois de mai, toutes les valeurs sont nuls .

Merci pour vos réponses.

J'ai finalement réussi, avec la formule suivante :

=SOMME.SI.ENS(P:P;N:N;C7;M:M;B7)/24

somme si ens

bonjour, une solution VBA

Sub liste()
     Set dict = CreateObject("scripting.dictionary")     'cahier de brouillon
     a = Range("K1").CurrentRegion     'vos données
     For i = 1 To UBound(a)     'boucle les données
          For j = 0 To 23     '24 heures par jour
               dict.Add dict.Count, Array(CDbl(DateSerial(2022, a(i, 1), a(i, 2)) + TimeSerial(j, 0, 0)), a(i, 3) / 24)     'ajouter date+heure et montant/24
          Next
     Next

     With Range("P1")
          .Resize(, 2).EntireColumn.ClearContents     'effacer le contenu actuel de ces colonnes
          .EntireColumn.NumberFormat = "ddd dd/mm/yy hh:mm"
          .Resize(dict.Count, 2).Value = Application.Index(dict.items, 0, 0)     'copier cette liste vers la feuille
          .Resize(, 2).EntireColumn.AutoFit
     End With

End Sub

Bonjour à tous,

Et votre sentiment sur la contribution Power Query ?

qu'est-ce que vous entendez par là JFL ?

Bonsoir à tous !

qu'est-ce que vous entendez par là JFL ?

Je vous demandais votre sentiment sur ma proposition (celle utilisant Power Query) (Voir plus haut)......

Bonsoir,

AARRR ce PowerQuery, existant depuis 2010 et installé nativement depuis 2016... (c'est bien cela ? ) Perso je ne m'y suis pas encore mis, j'ai regardé un peu, quelque tuto ici et là et c'est vrai qu'une fois le "gymnastique" en tête cela peut être très rapide !

@ bientôt

LouReeD

Bonjour à tous !

Bonsoir,

AARRR ce PowerQuery, existant depuis 2010 et installé nativement depuis 2016... (c'est bien cela ? ) Perso je ne m'y suis pas encore mis, j'ai regardé un peu, quelque tuto ici et là et c'est vrai qu'une fois le "gymnastique" en tête cela peut être très rapide !

Oui... c'est bien cela !

Investissez-vous que Diable..... le jeu en vaut la chandelle.... le monde des possibles est énorme.

un exemple ?
Nombre de fonctions dans Excel : > à 400
Nombre de fonctions dans Power Query : > à 700

Alors.... à bientôt ?

Ben ? > 400 = >700 ?!

@ bientôt

LouReeD

Rechercher des sujets similaires à "incrementation intelligente"