Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Somme suivant heures

nico3869

XLDnaute Nouveau
Supporter XLD
Bonjour à tous,
Une fois encore je suis face un mur!
Je souhaiterai obtenir l'addition de 8 colonnes suivant des heures variables.
Plusieurs difficultés :
- Extraire les horaires si un même horaire identique dans les 8 colonnes
- Ensuite, avoir la somme des 8 valeurs à l'horaire identique...
J'espère que mes explications seront assez claires.
Merci d'avance pour votre aide
 

Pièces jointes

  • Tableau sommes suivant horaires.xlsx
    58.9 KB · Affichages: 17

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes et à tous, bonjour @nico3869 ,
Comme tu es sur Excel365 , tu peux tenter ces deux formules :
La première pour la liste triée de tous les horaires (les données sont dans la plage nommée "tb") :
VB:
=TRIER(UNIQUE(TEMPSVAL(STXT(CONCAT(TEXTE(INDEX(tb;LIGNE(INDIRECT("1:"&LIGNES(tb)));TRANSPOSE(2*LIGNE(INDIRECT("1:"&COLONNES(tb)/2))-1));"hh:mm:ss"));SEQUENCE(504*8;1;1;8);8))))
(on passe par le format "hh:mm:ss" pour limiter le nombre de caractères car CONCAT est limitée à une chaîne de 32767 caractères, ici on passe juste 504*8*8=32256)

La deuxième pour faire la somme des valeurs associées à un horaires (ici l'horaire est en T9:
Code:
=LET(Lgn;LIGNE(INDIRECT("1:"&LIGNES(tb)));
         Col;TRANSPOSE(2*LIGNE(INDIRECT("1:"&COLONNES(tb)/2))-1);

          SOMME(SI(INDEX(tb;Lgn;Col)=T9;INDEX(tb;Lgn;Col+1);0)))
Chez moi quand on recopie cette formule pour les 648 horaires trouvés ça rame un peu !​

EDIT : le text indent /indent dans la 2ème formule

Voir le fichier joint
A bientôt
 

Pièces jointes

  • Tableau sommes suivant horaires AtTheOne.xlsx
    93.6 KB · Affichages: 5
Dernière édition:

AtTheOne

XLDnaute Accro
Supporter XLD
Re,
On peut aller jusqu'à 682 lignes de 8 horaires en modifiant la 2ème formule (heures au format hhmmss sans les 2 points dans la chaîne concaténée et en les rajoutant après) :
Code:
=TEMPSVAL(LET(lst;STXT(CONCAT(TEXTE(INDEX(tb;LIGNE(INDIRECT("1:"&LIGNES(tb)));TRANSPOSE(2*LIGNE(INDIRECT("1:"&COLONNES(tb)/2))-1));"hhmmss"));SEQUENCE(LIGNES(tb)*8;1;1;6);6);TRIER(UNIQUE((STXT(lst;1;2)&":"&STXT(lst;3;2)&":"&STXT(lst;5;2))))))
A bientôt
 
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…