web-dev-qa-db-fra.com

Comment référencer une cellule dans une plage nommée Excel?

Par exemple. J'ai nommé A10 à A20 comme Âge, maintenant comment puis-je obtenir Age [5], qui est identique à A14.

Je peux écrire "= A14" mais j'aimais bien écrire "= Age $ 5" ou quelque chose du genre.

37
Champ

Vous pouvez utiliser la fonction Index d'Excel:

=INDEX(Age, 5)
53
Alex P

"Savez-vous s'il existe un moyen de faire fonctionner cela avec des sélections relatives, de sorte que la formule puisse être" traînée "/ appliquée sur plusieurs cellules de la même colonne?"

Pour rendre cette sélection relative, utilisez simplement la formule ROW pour un numéro de ligne dans la formule INDEX et la formule COLUMN pour le numéro de colonne dans la formule INDEX . Pour clarifier cette question, voici l'exemple:

=INDEX(named_range,ROW(A1),COLUMN(A1))

En supposant que la plage nommée commence en A1, cette formule indexe simplement cette plage par ligne et par numéro de colonne de la cellule référencée. Comme cette référence est relative, elle change lorsque vous faites glisser la cellule vers le bas ou sur le côté, ce qui permet de créer cellules facilement.

10
Dawid Stróżak

Il y a plusieurs façons de procéder:

1) Reproduction de tableaux Excel avec une plage nommée

Dans votre exemple, vous avez nommé la plage A10:A20 "Age". En fonction de la manière dont vous souhaitez référencer une cellule dans cette plage, vous pouvez (comme @Alex P l'a écrit) utiliser =INDEX(Age, 5) ou si vous souhaitez référencer une cellule dans la plage "Age" située sur la même ligne que votre formule, utilisez simplement:

=INDEX(Age, ROW()-ROW(Age)+1)

Cela reproduit les fonctionnalités de référence relative intégrées aux tableaux Excel, mais constitue une alternative si vous ne souhaitez pas utiliser de tableau.

Si la plage nommée est une colonne entière, la formule se simplifie comme suit:

=INDEX(Age, ROW())

2) Utiliser un tableau Excel

Sinon, si vous configurez ceci sous forme de tableau Excel et que vous saisissez "Age" comme titre de l'en-tête de la colonne Age, votre formule dans les colonnes situées à droite de la colonne Age peut utiliser une formule comme celle-ci:

=[@[Age]]
1
ChrisB

J'ai été disposé à utiliser quelque chose comme ceci dans une feuille où toutes les lignes sont identiques et font généralement référence à d'autres cellules de la même ligne - mais à mesure que les formules deviennent complexes, les références à d'autres colonnes deviennent difficiles à lire . I essayé le tour donné dans d’autres réponses, avec par exemple la colonne A nommée "Ventes", je peux l’appeler INDEX(Sales;row()) mais j’ai trouvé cela un peu trop long pour mes goûts.

Cependant, dans ce cas particulier, j’ai constaté que l’utilisation de Sales seul fonctionne aussi bien - Excel (2010 ici) récupère automatiquement la ligne correspondante.

Cela semble fonctionner aussi avec d'autres gammes; Par exemple, supposons que j'ai des valeurs dans A2:A11 que je nomme Sales, je peux simplement utiliser =Sales*0.21 dans B2:11 et il utilisera la même valeur de ligne, donnant dix résultats différents.

--- modifier:

J'ai aussi trouvé un bon tour sur cette page : les plages nommées peuvent aussi être relatives. Pour revenir à votre question initiale, si votre valeur "Age" est dans la colonne A et en supposant que vous utilisez cette valeur dans les formules de la même ligne, vous pouvez définir Age comme étant $ A2 au lieu de $ A $ 2, de sorte que dans B5 ou C5 par exemple, il s’agira en réalité de $ A5. (Le gestionnaire de noms affiche toujours la référence par rapport à la cellule actuellement sélectionnée)

 erlative named range

1
Joubarc

Ajoutez une colonne à gauche pour que B10 à B20 soit votre plage nommée Age. Définissez A10 sur A20 pour que A10 = 1, A11 = 2, ... A20 = 11 et nommez la plage A10 à A20, par exemple AgeIndex. Le 5ème élément peut ensuite être trouvé en utilisant la formule du tableau "= sum (Age * (1 * (AgeIndex = 5))". Comme il s'agit d'une formule matricielle, vous devez appuyer sur les touches Maj + Ctrl + Entrée pour le faire fonctionner pas seulement revenir.

0
Drew