Utiliser adresse dernière cellule non vide dans une formule

Résolu/Fermé
Amenophys Messages postés 1 Date d'inscription jeudi 3 octobre 2013 Statut Membre Dernière intervention 3 octobre 2013 - Modifié par Amenophys le 3/10/2013 à 22:38
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 3 oct. 2013 à 23:10
Bonjour,

Je suis en train de créer un excel d'analyse d'historique.Je travaille sur l'année en cours, ma feuille de calcul "source" va donc croître.

Sur la chaque feuille "lieu_Z", je fais une formule de type :
=Sommeprod(('source'!$a$1:$a$1000="semaine_X")*('source'!$b$1:$b$1000="événement_Y")*('source'!$c$1:$c$1000="lieu_Z"))
Et j'étend cette formule pour connaître les nombres d'apparitions de chaque événement pour chaque semaine.En réalité, la plage fait 500 lignes mais je ne veut pas avoir à remodifier toutes mes "sommeprod"
Du coup mon classeur devient vite une usine à gaz.

Problème :
La référence A1000 rend les calculs plus longs
La référence A500 fait que je devrais mettre à jour mes formules quand d'autres événements s'ajouteront.
Comment récupérer l'adresse de la dernière cellule non vide (exemple : dernièreA = A543, dernièreB= B543 et dernièreC =C543) pour l'utiliser ainsi?
(('source'!$a$1:'dernièreA="semaine_X")*('source'!$b$1:'dernièreB="événement_Y")*('source'!$c$1:'dernièreC="lieu_Z"))

Exemple
http://cjoint.com/confirm.php?cjoint=0JdwLoa5lyY

Merci d'avance pour votre aide
A voir également:

1 réponse

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
3 oct. 2013 à 23:10
Bonjour,

Le plus simple est de nommer les plages de façon dynamique :

=Sommeprod(('source'!$a$1:$a$1000="semaine_X")*('source'!$b$1:$b$1000="événement_Y")*('source'!$c$1:$c$1000="lieu_Z"))
devient
=Sommeprod((semaine="semaine_X")*(événement="événement_Y")*(lieu="lieu_Z"))

Pour cela l'on nomme "semaine"
=DECALER('source'!$a$1;1;0;nbval('source'!$a:$a);1)
"événement"
=DECALER('source'!$a$1;1;1;nbval('source'!$a:$a);1)
"lieu"
=DECALER('source'!$a$1;1;2;nbval('source'!$a:$a);1)
en utilisant le menu formule / gestionnaire de noms
-1