82 votes

Référence Excel à la cellule actuelle

Comment obtenir une référence à la cellule actuelle?

Par exemple, si je veux afficher la largeur de la colonne A, je pourrais utiliser ce qui suit:

 =CELL("width", A2)
 

Cependant, je veux que la formule ressemble à ceci:

 =CELL("width", THIS_CELL)
 

56voto

imix Points 148

Plusieurs années trop tard:

Juste pour être complet, je veux donner encore une autre réponse:

Tout d'abord, aller à Excel-Options -> Formules et permettre références L1C1. Ensuite, utilisez

  =CELL("width", RC)

RC se réfère toujours la Ligne actuelle, même Colonne, c'est à dire "cette cellule".

Rick Teachey la solution est fondamentalement un réglage à faire de même possible dans le style de référence A1 (voir aussi GSerg commentaire de jojo réponse et notez son commentaire de Patrick McDonald réponse).

Cheers
:-)

53voto

Rick Teachey Points 460

Créer un nom de formule THIS_CELL

  1. Dans le courant de la feuille de calcul, sélectionnez la cellule A1 (c'est important!)
  2. Ouvrez Name Manager (Ctrl+F3)
  3. Cliquez sur New...
  4. Entrez "THIS_CELL" en Name:
  5. Entrez la formule suivante dans Refers to:

    =!A1

    REMARQUE: assurez-vous de la cellule A1 est sélectionné. Cette formule est par rapport à la ActiveCell.

  6. En vertu de l' Scope: sélectionnez Workbook.

  7. Cliquez sur OK et fermer l' Name Manager

Utiliser la formule dans la feuille de calcul exactement comme vous le vouliez

=CELL("width",THIS_CELL)

EDIT: de Meilleure solution que d'utiliser INDIRECT()

Il est intéressant de noter que la solution que j'ai donnée doit être préférée à toute solution à l'aide de l' INDIRECT() fonction pour deux raisons:

  1. Il est non volatile, alors que INDIRECT() est un volatile fonction Excel, et la suite va considérablement ralentir de calcul du classeur lorsqu'il est utilisé beaucoup.
  2. Il est beaucoup plus simple, et ne nécessite pas de conversion d'une adresse (dans la forme d' ROW() COLUMN()) pour une gamme référence à une adresse et à l'arrière pour une gamme de référence de nouveau.

EDIT: voir Aussi cette question pour plus d'informations sur le classeur dont l'étendue, la feuille dépendante des plages nommées.

EDIT: voir Aussi @imix la réponse ci-dessous pour une variation sur cette idée (à l'aide de RC les références de style). Dans ce cas, vous devez utiliser =!RC de la THIS_CELL plage nommée formule.

40voto

Patrick McDonald Points 20645

Vous pourriez utiliser

 =CELL("width", INDIRECT(ADDRESS(ROW(), COLUMN())))
 

32voto

andy Points 91

=ADDRESS(ROW(),COLUMN(),4) va nous donner l'adresse relative de la cellule courante. =INDIRECT(ADDRESS(ROW(),COLUMN()-1,4)) va nous donner le contenu de la cellule à gauche de la cellule active =INDIRECT(ADDRESS(ROW()-1,COLUMN(),4)) va nous donner le contenu de la cellule au-dessus de la cellule active (idéal pour le calcul des cumuls)

À l'aide de CELLULES() la fonction renvoie des informations sur la dernière cellule qui a été modifié. Donc, si nous entrons dans une nouvelle ligne ou une colonne de la CELLULE() de référence sera affectée, et ne sera pas au courant de la cellule de plus.

8voto

Joey Points 148544

A2 est déjà une référence relative et changera lorsque vous déplacez la cellule ou copiez la formule.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X