Filtrer les 8 dernier jours d'un tableau (actualisation automatique)

Bonjour à toutes et tous,

J'ai, un fichier d’exemple fictif qui contient une feuille (Cartons) avec un tableau comprenant des dates, des heures (8h00 et 20h00 pour chaque date) et 4 cartons remplis. Chaque jour je dois indiquer le nombre de produit qu'il reste dans les cartons le matin à 8h00 et le soir à 20h00.

J'ai une deuxième feuille (8 derniers jours uniquement) faisant office de tableau de bord. Sur cette feuille j'ai un tableau, qui doit faire apparaître uniquement les 8 derniers jour remplis dans la feuille « Cartons » et faire la somme des produits contenus dans des cartons différents. Il doit s'actualiser tout seul en fonction du remplissage.

J'ai réussi pour les dates, en utilisant une formule bête. J'ai 16 cellules (8h00 20h00 pour chaque jour). Dans la dernière cellule, j'ai indiqué la formule =AUJOURDHUI() et dans les colonnes du dessus, j'ai récupéré le résultat de la formule AUJOURDHUI() et ai ajouté -1 pour retourner un jour en arrière. Quand le résultat de AUJOURDHUI() change, cela modifie les cellules au-dessus.

Ce que je n'arrive pas à faire c'est à récupérer les données dans ce tableau en fonction des dates et de l'heure puis de faire la somme.

SOME.SI.ENS n’est normalement pas possible, car il y a plusieurs colonnes à sommer.

SOMME+INDX+EQUIV peut-être ?

J’ai essayé SOMEPROD, mais ça ne donne rien de concluant je dois me tromper dans la formule sans doute.

J'ai essayé évidemment un Tableau croisé dynamique, mais sans succès, je dois aussi faire une erreur.

Je vous fournis le fichier pour que vous puissiez comprendre plus facilement.

Merci pour l’aide que vous pourrez m’apporter.

Bonsoir,

Votre exemple ne risque pas de marcher, vous avez des données de janvier 2025 et vous chercher les 8 derniers jours sur Mars

Bonne nuit

Bonjour Yeohdje, à tous,

Avec un bon vieux SommeProd des familles. Les formules en D4 et E4 sont à recopier vers le bas :

En D4 :

=SI($B4=0;"";SOMMEPROD((Cartons!$A$2:$A$999=$B4)*(HEURE(Cartons!$B$2:$B$999)=HEURE($C4))*(Cartons!$C$2:$C$999+Cartons!$D$2:$D$999)))

En E4 :

=SI($B4="";"";SOMMEPROD((Cartons!$A$2:$A$999=$B4)*(HEURE(Cartons!$B$2:$B$999)=HEURE($C4))*(Cartons!$E$2:$E$999+Cartons!$F$2:$F$999)))

Attention ! Le contenu des cellules Heure ne sont pas équivalent sur les deux feuilles :

  • Sur la feuille "Cartons", les heures comprennent le (jour et l'heure)
  • Sur la feuille "8 dernier jours uniquement", les heures ne comprennent que l' (heure)

La comparaison ne peut donc pas se faire directement par égalité des deux cellules. Comme il n'y a que deux valeurs d'heures possibles (8h00 et 20h), on passe par l'égalité via la fonction Excel Heure(). On a laissé tomber l'égalité des minutes et l'égalité des secondes qui dans votre cas ne sont pas discriminantes.

...

RE,

Avec SOMME.SI.ENS() et de bonnes données car les heures ne sont pas des heures mais des dates et heures formatées

Edit : salut mafraise tu te réveilles

Bonjour à toi aussi JExceL2fr ,

Edit : salut mafraise tu te réveilles

Ce matin un resplendissant soleil

pour m'accueillir à mon réveil

après une nuit de bon sommeil

Bon j'ai une demande d'un membre que j'avais complètement oubliée. Je m'y attèle avec une lente promptitude.

Très bonne journée à toi .

Bonjour à tous !

Une approche type formule unique et dynamique (pour M365) :

=LET(
    f; FILTRE(tCartons; tCartons[Date] >= MAX(tCartons[Date]) - 8);
    C; ORGA.LIGNES(BYROW(ORGA.LIGNES(DANSCOL(PRENDRE(f; ; -4); ; 0); 2); SOMME); 2);
    ASSEMB.V({"Date"."Heure"."Σ cartons 1 & 2"."Σ cartons 3 & 4"}; ASSEMB.H(PRENDRE(f; ; 2); C))
)

Après insertion d'un tableau structuré sur la feuille "Cartons" nommé tCartons (et incluant les en-têtes "Date" et "Heure"), cette proposition retourne ceci :

image

Bonjour,
Une autre proposition ?
Cdlt.

Bonjour JExceL2fr, mafraise, JFL, Jean-Eric,

Merci pour toutes ces propositions, je retiens SOMME.SI.ENS et c'est effectivement parce que mon fichier était mal formaté et que je ne sélectionnais pas les bonnes dates dans la formule que ça ne fonctionnait pas, c'est bête. Je n'avais pas pensé non plus à additionner deux SOMME.SI.ENS.

SOMME.SI.ENS
avec des noms de plage pour alléger la formule visuellement et hop ça fonctionne bien. J'ai encore un peu de mal avec SOMEPROD il faut que je m’entraîne à comprendre cette formule et à l'utiliser.

Question pour les heures : j'ai lu que pour écrire des nombres en heure il était préférable de procéder ainsi afin de faire les choses bien et d'éviter les erreurs : diviser le chiffre des heures par 24 puis ensuite changer le format de la cellule pour HH:MM, ou autre. C'est juste ?

8/24 = 0,333333333333333 --> format HH:MM = 08:00

Je passe le sujet en résolu merci à vous.

Bonsoir à tous !

Je vous remercie de ce retour.

Autre approche pour la saisie directe des heures : dans une cellule, saisir 8: puis valider.

Dernière question sur les heures toujours. Afin d’apprendre au passage à travailler avec sur Excel/Calc.

Dans mon fichier j'ai toujours 8:00 et 20:00.

Si j'indique les heures de la manière suivante : =8/24 et =20/24 (format en heure HH:MM) tout fonctionne sur la page "8 dernier jours uniquement", mais si je procède de cette autre manière :

Cellule A1 : =8/24 (format en heure HH:MM)

Cellule A2 : =A1+TEMPS(12;0;0) pour afficher 20:00 directement et n'avoir plus qu'a utiliser la poignée de recopie, j'ai bien le bon affichage de l'heure dans les cellules suivantes, mais la formule SOMME.SI.ENS ne calcul plus, car elle semble ne plus rien comprendre.

Merci

Re,

Vous saisissez dans la Cellule A1 : =8/24 et dans la cellule A2 : =A1+TEMPS(12;0;0).

Pourquoi diable allez vous saisir ces formules en A1 et A2 et vous compliquez l'existence ?

  • saisissez tout simplement la valeur 8:00 en A1 et 20:00 en A2
  • ensuite en A3, saisissez la formule =A1 et tirez cette formule vers le bas

...

Que se passe-t-il avec votre méthode ?

  • Quand vous utilisez en A2 la formule =A1+TEMPS(12;0;0) :
  • Vous ajoutez à l'heure en A1 (8h00) l'équivalent de 12h et donc vous obtenez 20h00 en A2
  • Vous ajoutez à l'heure en A2 (20h00) l'équivalent de 12h et donc vous obtenez en A2 : 1 jour et 8h00 au lieu de seulement 8h00. Vous ne le voyez pas car votre format n'affiche que les heures mais la valeur dans la cellule représente bien 1 jour et 8h00. Pour vous en convaincre, appliquez le format personnalisé "jj mmm aaaa hh:mm" et vous verrez apparaitre le jour et l'heure. Notez que le jour en A3 et A4 est le "01 janv 1900" et en A5 et A6 le "02 janv 1900 08:00" et ainsi de suite.
  • Par la suite quand vous chercher des égalités avec 8h00 ou 20h00, vous ne prenez pas en compte la date et par conséquent la comparaison renvoie à chaque fois FAUX (sauf pour A1 et A2)

nota : quand vous rentrez 8:00 dans une cellule, Excel "attribue" le jour de numéro de série 0 (qui simule "aucun jour") l'équivalent d'une heure "pure" soit une heure sans jour ; d'ailleurs avec le format "jj mmm aaaa hh:mm", cette heure apparait avec la date "00 janv 1900 08:00". Cette date n'existe pas bien évidemment. c'est un subterfuge peut-on dire.

...

Que se passe-t-il avec la méthode à mafraise?

la formule recopie une valeur. Elle ne modifie en rien la valeur recopiée. Si la valeur à recopier est une heure "pure" alors la valeur recopiée sera aussi une heure "sans jour". A aucun moment, on ajoute une quantité d'heure à la valeur qu'on copie qui pourrait faire dépasser à la valeur copiée les 24h et donc modifier le jour.

Dans Excel, la gestion des dates et des heures n'est pas toujours intuitive.

Bonjour mafraise,

Merci pour ce retour très complet, oui je me suis pris la tête pour pas grand chose en fait

Je me disais avec une formule comme =A1+TEMPS(12;0;0) ça faisais plus pro, mais non ça complique

tout. Je vais changer tout ça. merci.

Rechercher des sujets similaires à "filtrer dernier jours tableau actualisation automatique"