Table des matières
Dans ce tutoriel, vous apprendrez à créer une plage nommée dynamique dans Excel et à l'utiliser dans des formules pour que les nouvelles données soient automatiquement incluses dans les calculs.
Dans le tutoriel de la semaine dernière, nous avons examiné les différentes façons de définir une plage nommée statique dans Excel. Un nom statique fait toujours référence aux mêmes cellules, ce qui signifie que vous devez mettre à jour manuellement la référence de la plage chaque fois que vous ajoutez ou supprimez des données.
Si vous travaillez avec un ensemble de données en constante évolution, vous pouvez rendre votre plage nommée dynamique, de sorte qu'elle s'étende automatiquement pour accueillir les entrées nouvellement ajoutées ou qu'elle se contracte pour exclure les données supprimées.
Comment créer une plage nommée dynamique dans Excel
Pour commencer, construisons une plage nommée dynamique composée d'une seule colonne et d'un nombre variable de lignes. Pour ce faire, effectuez les étapes suivantes :
- Sur le Formule dans l'onglet Noms définis cliquez sur Définir le nom Ou bien, appuyez sur les touches Ctrl + F3 pour ouvrir le gestionnaire de noms d'Excel, et cliquez sur l'icône de l'imprimante. Nouveau... bouton.
- Quoi qu'il en soit, le Nouveau nom La boîte de dialogue s'ouvre, dans laquelle vous spécifiez les détails suivants :
- Dans le Nom tapez le nom de votre gamme dynamique.
- Dans le Portée Définissez la portée du nom dans la liste déroulante. Cahier d'exercices (par défaut) est recommandé dans la plupart des cas.
- Dans le Fait référence à saisissez la formule OFFSET COUNTA ou INDEX COUNTA.
- Cliquez sur OK. C'est fait !
Dans la capture d'écran suivante, nous définissons une dynamique nommée plage articles qui s'adapte à tous cellules avec données dans la colonne A, sauf pour la ligne d'en-tête :
Formule OFFSET pour définir une plage dynamique nommée dans Excel
La formule générique pour créer une plage nommée dynamique dans Excel est la suivante :
OFFSET( première_cellule , 0, 0, COUNTA( colonne ), 1)Où :
- première_cellule - le premier élément à inclure dans la plage nommée, par exemple $A$2.
- colonne - une référence absolue à la colonne comme $A:$A.
Au cœur de cette formule, vous utilisez la fonction COUNTA pour obtenir le nombre de cellules non vides dans la colonne qui vous intéresse. hauteur de la fonction OFFSET(reference, rows, cols, [height], [width]) lui indiquant le nombre de lignes à retourner.
Au-delà, il s'agit d'une formule de décalage ordinaire, où :
- référence est le point de départ à partir duquel vous basez le décalage (première_cellule).
- rangées et cols sont toutes deux égales à 0, puisqu'il n'y a pas de colonnes ou de lignes à décaler.
- largeur est égal à 1 colonne.
Par exemple, pour créer une plage nommée dynamique pour la colonne A de la feuille 3, en commençant par la cellule A2, nous utilisons cette formule :
=OFFSET(Feuille3!$A$2, 0, 0, COUNTA(Feuille3!$A:$A), 1)
Remarque : si vous définissez une plage dynamique dans la feuille de calcul actuelle, vous n'avez pas besoin d'inclure le nom de la feuille dans les références, Excel le fera automatiquement pour vous. Si vous créez une plage pour une autre feuille, faites précéder la référence de cellule ou de plage du nom de la feuille suivi d'un point d'exclamation (comme dans l'exemple de formule ci-dessus).
Formule INDEX pour créer une plage nommée dynamique dans Excel
Une autre façon de créer une plage dynamique Excel est d'utiliser COUNTA en combinaison avec la fonction INDEX.
première_cellule :INDEX( colonne ,COUNTA( colonne ))Cette formule se compose de deux parties :
- Sur le côté gauche de l'opérateur de plage ( :), vous mettez la référence de départ codée en dur, comme $A$2.
- À droite, vous utilisez la fonction INDEX(array, row_num, [column_num]) pour déterminer la référence finale. Ici, vous fournissez la colonne A entière pour le tableau et utilisez COUNTA pour obtenir le numéro de ligne (c'est-à-dire le nombre de cellules sans entrée dans la colonne A).
Pour notre échantillon de données (voir la capture d'écran ci-dessus), la formule est la suivante :
=$A$2:INDEX($A:$A, COUNTA($A:$A))
Comme il y a 5 cellules non vides dans la colonne A, y compris un en-tête de colonne, COUNTA renvoie 5. Par conséquent, INDEX renvoie $A$5, qui est la dernière cellule utilisée dans la colonne A (habituellement, une formule Index renvoie une valeur, mais l'opérateur de référence l'oblige à renvoyer une référence). Et comme nous avons défini $A$2 comme point de départ, le résultat final de la formule est la plage $A$2:$A$5.
Pour tester la plage dynamique nouvellement créée, vous pouvez demander à COUNTA de récupérer le nombre d'éléments :
=COUNTA(Articles)
Si tout est fait correctement, le résultat de la formule changera lorsque vous ajouterez ou retirerez des éléments de la liste :
Remarque : les deux formules présentées ci-dessus produisent le même résultat, mais il y a une différence de performance dont vous devez être conscient. OFFSET est une fonction volatile qui recalcule chaque modification apportée à une feuille. Sur les machines modernes puissantes et les ensembles de données de taille raisonnable, cela ne devrait pas poser de problème. Sur les machines à faible capacité et les ensembles de données volumineux, cela peut ralentir votre Excel. Dans ce cas, vous devriezmieux utiliser la formule INDEX pour créer une plage nommée dynamique.
Comment créer une plage dynamique bidimensionnelle dans Excel ?
Pour construire une plage nommée bidimensionnelle, où non seulement le nombre de lignes mais aussi le nombre de colonnes est dynamique, utilisez la modification suivante de la formule INDEX COUNTA :
première_cellule :INDEX($1:$1048576, COUNTA( première_colonne ), COUNTA( première_rangée )))Dans cette formule, vous disposez de deux fonctions COUNTA pour obtenir la dernière ligne non vide et la dernière colonne non vide ( numéro de rang et numéro de colonne de la fonction INDEX, respectivement). Dans la fonction tableau vous alimentez la feuille de calcul entière (1048576 lignes dans Excel 2016 - 2007 ; 65535 lignes dans Excel 2003 et inférieur).
Et maintenant, définissons une autre plage dynamique pour notre ensemble de données : la plage nommée ventes qui comprend les chiffres de vente pour 3 mois (de janvier à mars) et s'ajuste automatiquement lorsque vous ajoutez de nouveaux articles (rangées) ou mois (colonnes) au tableau.
Avec les données de vente commençant dans la colonne B, ligne 2, la formule prend la forme suivante :
=$B$2:INDEX($1:$1048576,COUNTA($B:$B),COUNTA($2:$2))
Pour vous assurer que votre plage dynamique fonctionne comme il se doit, entrez les formules suivantes quelque part sur la feuille :
=SUM(ventes)
=SUM(B2:D5)
Comme vous pouvez le voir dans la capture d'écran ci-dessous, les deux formules renvoient le même total. La différence se révèle au moment où vous ajoutez de nouvelles entrées au tableau : la première formule (avec la plage dynamique nommée) se mettra à jour automatiquement, alors que la seconde devra être mise à jour manuellement à chaque changement. Cela fait une énorme différence, non ?
Comment utiliser des plages nommées dynamiques dans les formules Excel ?
Dans les sections précédentes de ce tutoriel, vous avez déjà vu quelques formules simples qui utilisent des plages dynamiques. Maintenant, essayons de trouver quelque chose de plus significatif qui montre la valeur réelle d'une plage dynamique nommée dans Excel.
Pour cet exemple, nous allons utiliser la formule classique INDEX MATCH qui exécute Vlookup dans Excel :
INDEX ( retour_gamme , MATCH ( valeur de la recherche , gamme_consultative , 0))...et voyez comment nous pouvons rendre la formule encore plus puissante grâce à l'utilisation de plages nommées dynamiques.
Comme le montre la capture d'écran ci-dessus, nous essayons de créer un tableau de bord dans lequel l'utilisateur saisit le nom d'un article dans H1 et obtient le total des ventes pour cet article dans H2. Notre tableau d'exemple créé à des fins de démonstration ne contient que 4 articles, mais dans vos feuilles réelles, il peut y avoir des centaines, voire des milliers de lignes. En outre, de nouveaux articles peuvent être ajoutés quotidiennement, de sorte que l'utilisation de références n'est pas une solution idéale.parce qu'il faudrait mettre à jour la formule encore et encore. Je suis trop paresseux pour cela :)
Pour forcer la formule à s'étendre automatiquement, nous allons définir 3 noms : 2 plages dynamiques, et 1 cellule statique nommée :
Lookup_range : =$A$2:INDEX($A:$A, COUNTA($A:$A))
Return_range : =$E$2:INDEX($E:$E, COUNTA($E:$E))
Valeur de recherche : =$H$1
Remarque : Excel ajoutera le nom de la feuille en cours à toutes les références, donc avant de créer les noms, assurez-vous d'ouvrir la feuille contenant vos données sources.
Maintenant, commencez à taper la formule dans H1. Quand il s'agit du premier argument, tapez quelques caractères du nom que vous voulez utiliser, et Excel affichera tous les noms correspondants disponibles. Double-cliquez sur le nom approprié, et Excel l'insérera immédiatement dans la formule :
La formule complétée se présente comme suit :
=INDEX(Return_range, MATCH(Lookup_value, Lookup_range, 0))
Et fonctionne parfaitement !
Dès que vous ajoutez de nouveaux enregistrements au tableau, ils sont immédiatement inclus dans vos calculs, sans que vous ayez à modifier une seule fois la formule ! Et si vous avez besoin de porter la formule dans un autre fichier Excel, il vous suffit de créer les mêmes noms dans le classeur de destination, de copier/coller la formule et de la faire fonctionner immédiatement.
Conseil : outre le fait qu'elles rendent les formules plus durables, les plages dynamiques sont très utiles pour créer des listes déroulantes dynamiques.
Voilà comment créer et utiliser des plages nommées dynamiques dans Excel. Pour voir de plus près les formules abordées dans ce tutoriel, nous vous invitons à télécharger notre exemple de classeur Excel de plages nommées dynamiques. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !