XL 2016 Somme avec critère transposé

Rabeto

XLDnaute Occasionnel
Bonjour,

Je souhaite faire un calcul de somme de valeur par heure sur des critères horizontales et verticales

En PJ un fichier exemple.
 

Pièces jointes

  • Somme transposé.xlsx
    9.5 KB · Affichages: 2
Solution
Re
Exact, une erreur de ma part. J'ai changé le nom du tableau structuré après le montage de la formule.
Il faut utiliser
VB:
INDIRECT("TabData["&$A30&"]";1)
Cela donne le nom de la colonne à sommer avec la valeur de la cellule en $A30, $A31, $A32, etc.
Il faut bien entendu que de A30 à A32 les noms correpondent exactement aux noms de colonnes du tableau de données.
La formule complète en B30 à tirer vers la droite et vers le bas :
Code:
=SOMME.SI.ENS(INDIRECT("TabData["&$A30&"]";1);TabData[[Heure]:[Heure]];">="&B$29;TabData[[Heure]:[Heure]];"<"&C$29)

P.S ce ne sont pas des formules volatiles mais matricielles ;)

Cordialement

Efgé

XLDnaute Barbatruc
Bonjour @Rabeto
En utilisant un tableau structuré pour tes données appelé TabData.
VB:
=SOMME.SI.ENS(INDIRECT("Tableau1["&$A30&"]";1);TabData[[Heure]:[Heure]];">="&B$29;TabData[[Heure]:[Heure]];"<"&C$29)

Cordialement
 

Pièces jointes

  • Somme transposé.xlsx
    13.1 KB · Affichages: 5

Rabeto

XLDnaute Occasionnel
Merci Efgé

Je ne maitrise pas les fonctions volatiles
INDIRECT("Tableau1["&$A30&"]";1) : Fait référence à quoi stp ? A30 j'ai compris, c'est le critère de recherche
TabData[[Heure]:[Heure]] : J'ai compris le principe mais ma valeur change en erreur une fois que je l'utilise,
 

Efgé

XLDnaute Barbatruc
Re
Exact, une erreur de ma part. J'ai changé le nom du tableau structuré après le montage de la formule.
Il faut utiliser
VB:
INDIRECT("TabData["&$A30&"]";1)
Cela donne le nom de la colonne à sommer avec la valeur de la cellule en $A30, $A31, $A32, etc.
Il faut bien entendu que de A30 à A32 les noms correpondent exactement aux noms de colonnes du tableau de données.
La formule complète en B30 à tirer vers la droite et vers le bas :
Code:
=SOMME.SI.ENS(INDIRECT("TabData["&$A30&"]";1);TabData[[Heure]:[Heure]];">="&B$29;TabData[[Heure]:[Heure]];"<"&C$29)

P.S ce ne sont pas des formules volatiles mais matricielles ;)

Cordialement
 

Efgé

XLDnaute Barbatruc
Bonjour @Rabeto , le fil, le forum

Il n'y a pas de noms dans le gestionnaire.
En utilisant un tableau structuré (Accueil / Mettre sous forme de tableau), les champs (colonnes) sont automatiquement des zones nommées dynamiques.
Ceci existe depuis 15 ans et devient un peu un passage obligé si on veux continuer à utiliser Excel tel qu'il se doit.

Si tu utilise des plages de types $D$2:$D$24 tu as des risques inutiles:
  • Tu peux te tromper de colonnes
  • En cas de modification des cellules A30:A32 tes calculs ne seront plus bons.
  • Tu ne bénéficies plus du côté dynamique des plages. Si tu ajoutes des données dans ton tableau elles ne seront pas prises en compte et il faudra revoir tes formules
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel