Vous pouvez utiliser les fonctions ROW
et COLUMN
pour ce faire. Si vous omettez l'argument de ces formules, la cellule actuelle est utilisée. Ceux-ci peuvent être directement utilisés avec la OFFSET
fonction ou toute autre fonction où vous pouvez spécifier à la fois la ligne et la colonne comme valeurs numériques.
Par exemple, si vous entrez =ROW()
dans la cellule D8, la valeur renvoyée est 8. Si vous entrez =COLUMN()
dans la même cellule, la valeur renvoyée est 4.
Si vous voulez la lettre de colonne, vous pouvez utiliser la CHAR
fonction. Je ne recommande pas l'utilisation de lettres pour représenter la colonne, car les choses deviennent délicates lors du passage dans des noms de colonne à deux lettres (où l'utilisation de chiffres est de toute façon plus logique).
Quoi qu'il en soit, si vous souhaitez toujours obtenir la lettre de la colonne, vous pouvez simplement ajouter 64 au numéro de colonne (64 étant alors un caractère de moins A
), donc dans l'exemple précédent, si vous définissez la valeur de la cellule sur =CHAR(COLUMN()+64)
, la valeur renvoyée serait D
. Si vous vouliez que la valeur d'une cellule soit l'emplacement de la cellule elle-même, la formule complète serait =CHAR(COLUMN()+64) & ROW()
.
Juste un FYI, j'ai obtenu 64 d'une table ASCII. Vous pouvez également utiliser la CODE
formule, de sorte que la formule mise à jour en utilisant ce serait =CHAR(COLUMN() + CODE("A") - 1)
. Vous devez soustraire 1 puisque la valeur minimale de COLUMN
est toujours 1, puis la valeur de retour minimale de la formule entière serait B
.
Cependant, cela ne fonctionnera pas avec les colonnes à deux lettres. Dans ce cas, vous avez besoin de la formule suivante pour analyser correctement les colonnes à deux lettres:
=IF(COLUMN()>26,IF(RIGHT(CHAR(IF(MOD(COLUMN()-1,26)=0,1,MOD(COLUMN()-1,26))+64),1)="Y",CHAR(INT((COLUMN()-1)/26)+64) & "Z",CHAR(INT((COLUMN()-1)/26)+64) & CHAR(IF(MOD(COLUMN(),26)=0,1,MOD(COLUMN(),26))+64)),CHAR(COLUMN()+64))&ROW()
Je ne sais pas s'il existe un moyen plus facile de le faire ou non, mais je sais que cela fonctionne de la cellule A1
à ZZ99
sans problème. Cependant, cela illustre pourquoi il est préférable d'éviter l'utilisation d'identificateurs de colonne basés sur des lettres et de s'en tenir à des formules basées sur des nombres purs (par exemple, en utilisant le numéro de colonne au lieu de la lettre avec OFFSET
).
LIN
etCOL
le problème est qu'ils renvoient des nombres et j'ai besoin de la lettre de la colonneINDIRECT
.