Excel plage dynamique formule
rafi382
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je cherche à savoir comment introduire une plage dynamique du style DECALER(Feuil1!$A$1;1;0;NBVAL($A:$A)-1) dans une formule.
Voici ma formule:
=SOMMEPROD(('Report month1;yearn'!$A$43:$A$3000='Ref table'!$H$12)*('Report month1;yearn'!$X$43:$X$3000='Ref table'!$J$4)*('Report month1;yearn'!$F$43:$F$3000))
Et mon problème, c'est que j'inclus 3000 cellules à chaque fois uniquement pour être sûr de prendre en compte toutes mes cellules pleines. Cela crée un message d'erreur et ça fait que je ne peut pas "automatiser" le tableau.
Quelqu'un sait-il comment faire ?
Je cherche à savoir comment introduire une plage dynamique du style DECALER(Feuil1!$A$1;1;0;NBVAL($A:$A)-1) dans une formule.
Voici ma formule:
=SOMMEPROD(('Report month1;yearn'!$A$43:$A$3000='Ref table'!$H$12)*('Report month1;yearn'!$X$43:$X$3000='Ref table'!$J$4)*('Report month1;yearn'!$F$43:$F$3000))
Et mon problème, c'est que j'inclus 3000 cellules à chaque fois uniquement pour être sûr de prendre en compte toutes mes cellules pleines. Cela crée un message d'erreur et ça fait que je ne peut pas "automatiser" le tableau.
Quelqu'un sait-il comment faire ?
A voir également:
- Plage dynamique excel
- Tableau croisé dynamique excel exemple - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
3 réponses
Le plus simple est d'utiliser le DECALER pour définir une plage nommée "dynamique" et d'utiliser ce nom dans les formules.
Par contre nous ne sommes pas devins. Si tu veux une réponse à propos d'un message d'erreur, il faut préciser lequel !
Par contre nous ne sommes pas devins. Si tu veux une réponse à propos d'un message d'erreur, il faut préciser lequel !
Bonjour
(Re patrice)
.. ou peut être simplement compléter la formule avec un argument supplémentaire dans SOMMEPROD, du genre
('Report month1;yearn'!$F$43:$F$3000<>"")
mais on n'en sait pas assez sur les données pour être plus précis
crdlmnt
(Re patrice)
.. ou peut être simplement compléter la formule avec un argument supplémentaire dans SOMMEPROD, du genre
('Report month1;yearn'!$F$43:$F$3000<>"")
mais on n'en sait pas assez sur les données pour être plus précis
crdlmnt
Bonjour,
Mon message d'erreur est juste "le petit coin en vert"
Ce n'est pas une erreur, c'est juste un message d'alerte.
Par contre sommeprod() étant une formule matricielle (donc gourmande), tu as tout intérêt à utiliser un nom dynamique.
Ca dépend de la version excel.
Sur 2010 : ruban 'Formules / Définir un nom'
Là tu saisis ton nom et tu mets ta formule dans 'Fait référence à'
Ensuite tu remplaces ta plage par son nom dans l'autre formule.
Mais vu que tu commences en A43, la formule du nom dynamique dépendra de ce qu'il y a au-dessus. Telle que tu l'as écrit A1:A42 ne doit contenir qu'une seule cellule remplie.
Comme dit patrice, nous ne somme pas devin. Donc sans fichier joint tu ne peux qu'avoir des réponse approximatives.
eric
Mon message d'erreur est juste "le petit coin en vert"
Ce n'est pas une erreur, c'est juste un message d'alerte.
Par contre sommeprod() étant une formule matricielle (donc gourmande), tu as tout intérêt à utiliser un nom dynamique.
Ca dépend de la version excel.
Sur 2010 : ruban 'Formules / Définir un nom'
Là tu saisis ton nom et tu mets ta formule dans 'Fait référence à'
Ensuite tu remplaces ta plage par son nom dans l'autre formule.
Mais vu que tu commences en A43, la formule du nom dynamique dépendra de ce qu'il y a au-dessus. Telle que tu l'as écrit A1:A42 ne doit contenir qu'une seule cellule remplie.
Comme dit patrice, nous ne somme pas devin. Donc sans fichier joint tu ne peux qu'avoir des réponse approximatives.
eric
http://cjoint.com/?3CnmzQToyoR
Voila le lien, je ne peux malheureusement pas transmettre le classeur original mais voilà comment ça se présente.
Dans sales (total) j'ai une formule du type:
=SOMMEPROD(('Report month1;yearn'!$A$43:$A$3000='Ref table'!$H$9)*('Report month1;yearn'!$X$43:$X$3000='Ref table'!$J$4)*('Report month1;yearn'!$F$43:$F$3000))
sachant que selon le mois, comme je l'explique dans le fichier joint, le nombre de colonne du rapport varie donc c'est pour cette raison que je mets 3000.
Voila le lien, je ne peux malheureusement pas transmettre le classeur original mais voilà comment ça se présente.
Dans sales (total) j'ai une formule du type:
=SOMMEPROD(('Report month1;yearn'!$A$43:$A$3000='Ref table'!$H$9)*('Report month1;yearn'!$X$43:$X$3000='Ref table'!$J$4)*('Report month1;yearn'!$F$43:$F$3000))
sachant que selon le mois, comme je l'explique dans le fichier joint, le nombre de colonne du rapport varie donc c'est pour cette raison que je mets 3000.
J'ai défini une plage avec la fonction "décaler" mais lorsque je l'intègre dans la formule comme ceci:
=SOMMEPROD((clients='Ref table'!$H$4)*('Report month1;yearn'!$X$43:$X$3000='Ref table'!$J$4)*('Report month1;yearn'!$F$43:$F$3000))
la cellule affiche #N/A