Microsoft 365 Référence changeante

Pernin

XLDnaute Nouveau
Bonjour,
Je souhaitais savoir si vous pouviez m'aider. je fais face à un problème et je ne sais pas comment le régler. J'ai besoin de pouvoir adapter une colonne ciblée par une fonction selon un mois qui est défini au préalable.
Par exemple, si le mois de Juin est choisi, c'est sur le mois de Juin que ma selection devra se porter.

Actuellement j'ai un système fixe tel que : =SUMPRODUCT(('Charge détail'!$I:$I=tableau!$E12)*'Charge détail'!AJ:AJ) qui nécessite que je modifie "'Charge Détail'!AJ:AJ" en "'Charge Détail'!AK:AK)" si je veux passer du mois de juin au mois de juillet. J'aimerai automatiser cela selon la selection qui a été faite sur le volet déroulant.

je vous pose un excel type.

Je vous souhaite une excellente journée et vous remercie d'avance.

Crdlt,

Greg
 

Pièces jointes

  • Exemple excel brouillon fichier projet.xlsx
    89.9 KB · Affichages: 7

chris

XLDnaute Barbatruc
Bonjour

En J7 à étirer en dessous et à droite
VB:
=SOMMEPROD(('Charge détail'!$I:$I=tableau!$G7)*DECALER('Charge détail'!$AI:$AI;;EQUIV(tableau!J$6;'Charge détail'!$AI$1:$AV$1;0)-1))

mais c'est un total non sens d'utiliser SOMMEPROD sur des colonnes entières
 

Dugenou

XLDnaute Barbatruc
Bonjour,
Vous puvez utiliser la focntion DECALER qui va permettre de déplacer AJ:AJ selon le mois avec un equiv : DECALER('Charge détail'!$AH:$AH;;EQUIV(tableau!J$6;'Charge détail'!$AI$1:$AV$1;0))
formule complete : =SOMMEPROD(('Charge détail'!$I:$I=tableau!$G7)*DECALER('Charge détail'!$AH:$AH;;EQUIV(tableau!J$6;'Charge détail'!$AI$1:$AV$1;0)))
Avec sommeprod qui est une fonction matricielle, pas besoin de valider en matriciel.

Voir pj
Cordialement
 

Pièces jointes

  • Pernin.xlsx
    90 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Pernin, Chris, Dugenou,
c'est un total non sens d'utiliser SOMMEPROD sur des colonnes entières
Bien d'accord .... surtout si, comme moi, vous utilisez XL2007 !
On peut nettement accélérer en limitant les plages.
Actuellement "Charge détail" a 584 lignes. Si on envisage moins de 1000 lignes par mois, on a :
VB:
=SOMMEPROD(('Charge détail'!$I$1:$I$1000=tableau!$G7)*DECALER('Charge détail'!$AH$1:$AH$1000;;EQUIV(tableau!J$6;'Charge détail'!$AI$1:$AV$1;0)))
et on passe, pour un recalcul, de 2.91s à 0.05s.
 

Statistiques des forums

Discussions
312 152
Messages
2 085 794
Membres
102 975
dernier inscrit
samuelrollens