Valeur qui correspond à l’heure la plus recente avant une heure donnée

19heures-pile.xlsx (9.26 Ko)

Bonjour à tous,

J’ai un appareil qui stock un suivis horodaté de la température, mais un enregistrement ne se fait que s’il y a un changement significatif de la température ( c’est pour ça par exemple si à 06:55:20 il enregistre 15 °, et si à 07:00:00 passe (en réalité) à 16°, elle ne sera pas enregistré, et la temp. pile à l’heure 07:00:00 n’est pas enregistrée (pas incluse dans le fichier enregistré par l’appareil) alors la règle est que nous la considérons toujours =15°,

C’est ainsi que dans le canevas du rapport à transmettre, il est demandé la temperature aux heures précise 06:00:00, 07:00:00, 08:00:00 etc… et je dois considérer la temperature à 07:00:00 par exemple si elle n’est pas enregistrée comme la temp. atteinte à l’heure la plus récente juste avant 07:00:00 et si par hasard elle est enregistrée à 07:00:00 alors je la prend (comme c’est le cas dans l’exemple ci-dessous à l’heure 10:00:00)

Càd comment passer du tableau suivant

heure

valeur

05:45:00

10

06:37:00

14

07:05:00

17

09:05:00

20

09:25:00

28

09:55:00

34

10:00:00

32

10:15:00

30

à ce tableau

06:00:00

10

07:00:00

14

08:00:00

17

09:00:00

17

10:00:00

32

11:00:00

30

Ceci est un exemple simplifié et j’ai des données plus nombreuses que dans cet exemple et que je dois trouver une formule. Merci beaucoup pour votre aide

Edit Modo : sujet Excel et non Calc. fil déplacé sur le bon forum

Bonjour et bienvenue à toi,

Si les heures -en colonne B- sont systématiquement triées par ordre croissant, tu peux essayer, en G3 :

=INDEX($C$3:$C$9;EQUIV(F3;$B$3:$B$9;1))

... si j'ai compris !?

Merci U. Milité et Arturo83 j'essaierai bientôt et vous tenir informés

re,

une autre proposition, pour la ligne 3

=SIERREUR(AGREGAT(14;6;SI($B$3:$B$9<E3;$C$3:$C$9);1);"erreur")

Bonjour ;

Arturo dans ta formule il y a

($B$3:$B$9<$E4)*($B$3:$B$9>=$E4-"01:00:00")

J’ai pas compris, veut dire quoi l'operateur "*" !?!! multiplier deux conditions ! ? ou c un operateur "et" ???!! ($B$3:$B$9) va renvoyer quoi? un nombre?

Vous deviner que je suis débutant dans ces calculs matricielles, pourriez-vous m'aider s'il vous plaît, par des liens me permettant de gagner du temps dans la perfection de ces fonctions matricielles.

crdl

Bonjour,

($B$3:$B$9<$E4)*($B$3:$B$9>=$E4-"01:00:00")

Dans ce cas le signe "*" signifie ET, 'si la condition 1 ET la condition 2 sont réunies alors, exécution.

Cdlt

perfect;

je vois le bout du tunel.

merci beaucoup

Bonjour;

bien que la formule de Arturo constitue pour moi la clé pour la résolution de ce problème, j'ai porté une petite correction car si je je dit que à 09:00:00 pile par exemple il y a eu un enregistrement d'une valeur , elle ne va pas la prendre en compte mais elle garde la precedente, en faitil ne s'agit que d'une petite erreur : j'ai rectifier les signes ">" "<=" et ça a marché;(voir fichier)

mais avant de découvrire cette erreur j'ai developpé une autre methode se basant sur la même idée, mais en introduisant MOYENNE.SI.ENS, et ça marche bien , mais à présent je ne sais pas la pertinence d'une telle chose.(voir description "2em fichier)

crdl

bonjour;

finalement il n'est pas necessaire d'utilser MOYENNE.SI.ENS :

dans la même formule SI(MAX(SI .... il suffit de de demander de renvoyer $D$D au lieu de $C$C

donc la formule de Arturo fait l'affaire

merci

le problème est résolu

re, c'est difficile, non ??? Avec 4 plages nommées et une formule agregat (non-matricielle)

j pas essayé avec AGREGAT

Bonjour;

Encore une dernière découverte( cette fois-ci finale ?) que je tiens à partager pour ceux qui s’intéresse à ce genre de problème

Il s’avère que la solution que j’ai proposée en combinant la formule matritielle de ARTURO et la fonction moyenne.si.ens est la juste car :

Premièrement la formule de ARTURO, sur la plage de deux horaire où elle est sencé chercher , elle nous renvoi la valeur Max sur la valeur de la température et non pas sur la valeur max de l’heure ! et c’est pas la chose qui est demandé ! ce qui est demandé c’est de chercher la valeur max de l’heure dans cette plage et de nous renvoyer la valeur correspondante de la température ( c’est ça le sens de valeur à la l’heure la plus récente juste avant une heure pile) .

en effet, ce problème va être très apparent lorsqu’il y a plusieurs critères à appliquer pour la variable cherchée exemple il y a plusieurs types de température (Tex, Tin ..) et plusieurs journée J1 , J2 ... et qu’on cherche juste pour la températute Tin pour la journée J1. Même en introduisant ces critères dans la formule en question et en corrigeant en demandant de faire le max sur les heures et non pas sur les valeurs températures ; le problème restera toujours lorsqu’on essaie de déterminer la valeur de température correspondante, la combinaison INDEX(EQUIV ne marche pas : elle renvoi la première valeur trouvé de la température corespondant à la valeur de l’heure qu’on lui demande car dans le tableau il peut y avoir plusieurs valeur similaire de cette heure mais seul une, vérifie les conditions sur les autres champs, et la combine INDEX(EQUIV ne va pas reconnaitre et ne va pas prendre en considération les critères appliqué à (MAX(SI..

C’est pour ça que lorsqu’on cherche cette valeur de la température correspondant à l’heure trouvé par la formule de ARTURO (après l’avoir corrigé pour renvoyer l’heure et non pas la temperature) il est nécessaire d’introduire une fonction qui permet de réappliquer les conditions précédente sur les champs. Et la seule formule que j’ai trouvé efficace est moyenne.si.ens. mon but n’est pas de calculer la moyenne bien entendu, mais juste pour permettre d’introduire de nouveau les conditions précédentes lors de la recherche de la valeur de la température (noter que la moyenne ici n’a aucun effet car il y a une seule valeur correspondante elle va me la renvoyé tel quelle).

il me sembleque même la fonction MAX.SI.ENS peut remplacer la première combinaison matricielle (MAX(SI; mais elle n'exite pas dans toutes les versions excel

crdl

re, la fonction "agregate" ?

Bonjour;

AGREGAT: de prime à bord elle semble interessante,

je suis entrain pratiquer dessus, je te tiens au courant,,,,

crdl

re

Effectivement, j viens de trouvé une vidéo qui explique que MAX.SI.ENS n'existe que dans excel 2019, il a, à sa place utilisé AGREGAT dans un petit exemple : c'est une belle façon qui évite tous les détours ;

elle parrait qu'elle s'adapte parfaitement à mon problème, quant j'aurais le temps je l'appliquerai et vous tenir informé du la façon exacte de l'appliquer.

crdl

j'utilise "agregat" en beaucoup de circonstances ! Très pratique.

re

oups !

c une façon de remplacer MAX.SI.ENS ou la formule {MAX(SI.. matricielle, pas plus !

car ce qu'on cherche c la valeur max de l'heure puis son corespondant temp. mais pas le max de la temp.

donc AGREGAT ne nous évite pas la nécessaire imbrication des deux combine toute en nous obligeant dans chacune d’évoquer à chaque fois les critères qu’il faut sur les autres colonnes.

soit

  1. MOYENNE.SI.ENS avec {MAX(SI } avec réplication des critères sur les colonnes dans les deux étapes
  2. MOYENNE.SI.ENS avec AGREGAT (1) avec réplication des critères sur les colonnes dans les deux étapes

Tous ce qu’on gagne donc en introduisant AGREGAT c’est d’éviter de valider une formule matricielle par ctrl+shift+entre c’est tout !

Je ne sais pas s’il y a un moyen d’imbriqué deux AGREGAT d’une façon simple j’ai essayé mais rien !

Dans le fichier joint j’ai appliqué des Temp= ‘’Tin’’ sur la temp. Colonne A ; Le critères date = j_2 = 21/12/2022 sur la colonne B et le critère >h_1 et <= h_2 sur la colonne des heures C.

En demandant à AGREGAT de renvoyer la temperature il me renvoi le max de la temperature des enregistrements repondant à ces critère qui ne correspond pas à la temperature du max de l’heure (de heure la plus récente).

18agregat.zip (269.18 Ko)

En voulant passer de l’heure trouvée à son corespondant temperature par imbrication il parait qu’il y a pas - comme je l’ai dit plus haut- une fonction à mettre « en deuxieme couche » qui « englobe » la fonction « de la première couche » tout en prenant en compte les critères définies pour la fonction de la première couche, on est toujours obligé de rappeler à la deuxieme fonction qui nous passe aux temperatures ; lui rappeler les critère sur les autres colonnes.

crdl

re

j'essaie d'imbriquer les AGREGAT !

Rechercher des sujets similaires à "valeur qui correspond heure recente donnee"