Quelle est la fonction pour obtenir le numéro de ligne actuel et le nom de colonne actuel pour une cellule dans Excel?
30
Quelle est la fonction pour obtenir le numéro de ligne actuel et le nom de colonne actuel pour une cellule dans Excel?
LIN
etCOL
le problème est qu'ils renvoient des nombres et j'ai besoin de la lettre de la colonneINDIRECT
.OFFSET
fonction conjointement avec, ou au lieu de, laINDIRECT
formule dans ce cas. Si vous souhaitez utiliser des chaînes, j'ai également mis à jour ma réponse.Réponses:
Vous pouvez utiliser les fonctions
ROW
etCOLUMN
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 laOFFSET
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 seraitD
. 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 deCOLUMN
est toujours 1, puis la valeur de retour minimale de la formule entière seraitB
.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:
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 avecOFFSET
).la source
OFFSET
place, ce qui vous permet de spécifier des colonnes sous forme de nombres. Quoi qu'il en soit, j'ai mis à jour la réponse avec une formule pour l'étendre pour qu'elle fonctionne avec des colonnes à deux lettres.However, this will not work with two-letter columns. In that case, you need the following formula to properly parse two-letter columns:
Essayez la fonction suivante:
Explication:
ADDRESS(row_num, column_num, [abs_num])
.[abs_num] = 4
= adresse relative. Cela signifie qu'il n'y a pas de «$» dans la valeur retournée. Pour la colonne 'AB', leADDRESS
retourne 'AB1'. Le remplaçant supprime le «1».la source
Essaye ça
Cela vous donne un en-tête de colonne exact, sans $ etc.
la source
Tapez ceci dans n'importe quelle cellule:
Español :
Anglais :
Vous pouvez remplacer la colonne () par le numéro de ligne.
la source
Pour obtenir le nom de la colonne, j'ai utilisé les formules suivantes.
Pour une cellule particulière:
Pour la cellule actuelle:
Essayez cette variante. Il fonctionne sur des colonnes de 3 lettres et ne laisse pas de "$" sur le front end:
la source
Légèrement manuel mais moins de VBA et une formule plus simple:
=column()
=Address(1,A1)
$A$1
Une fois les valeurs copiées, recherchez et remplacez
$
et1
avec vide.la source
Cela fonctionnera aussi
la source
Une autre façon possible serait d'utiliser quelque chose comme ceci:
Où
colid
fait référence à une plage nommée que vous créeriez ailleurs dans le classeur comprenant deux colonnes adjacentes avec plusieurs lignes: la première colonne contenant les nombres 1 à n correspondant auCOLUMN()
nombre, la seconde contenant les lettres A - ZZ, ou le nombre de références de colonne que vous avez souhaitent accueillir. IlROW()
n'y a plus de problème car il s'agit de renvoyer le numéro de ligne.Donc, si vous copiez la chaîne ci-dessus dans la cellule A1 de 'MySheet2', elle serait évaluée comme
=MySheet1!A1
et retournerait la valeur trouvée dans la cellule correspondante deMySheet1
.Cela vous permettrait, par exemple, d'utiliser
MySheet1
comme zone de travail, de supprimer et de réinsérer de nouvelles données, tandis que tout formatage ou calculMySheet2
faisant référence à ces contenus continuera de fonctionner correctement avec les nouveaux jeux de données de la feuille de calcul à onglets cible.la source
Solution pour la version Excel polonaise:
la source
Voici une solution VBA, formule définie par l'utilisateur. Il fonctionne avec des colonnes à 1, 2 et 3 lettres.
Mettez ce qui suit dans un module de code:
= COLUMNLETTER () dans n'importe quelle cellule renverra la lettre de colonne de la cellule.
= COLUMNLETTER (B3) dans une cellule retournera B .
Cette fonction définie par l'utilisateur fonctionne très bien lors de la création de formules génériques à l'intérieur de la fonction INDIRECTE.
la source
La formule d'adresse fonctionne en renvoyant le nom de la colonne et de la ligne. Le format renvoyé sera toujours
$(Column Letters)$(Row Numbers)
- par exemple$AA$2
ou$XAA$243556
Si nous savons que $ apparaîtra toujours au premier caractère, nous pouvons utiliser la première formule médiane pour commencer à extraire les caractères après le premier signe $ (c'est-à-dire le deuxième caractère).
Ensuite, nous trouvons le prochain signe $ (comme nous savons qu'il n'y en aura que deux) et nous savons combien de caractères il y a entre le premier et le deuxième signe dollar. Le reste est une simple soustraction.
la source
Voici comment trouver l'en-tête de colonne (c'est-à-dire la lettre):
la source
essaye ça:
la source
La formule suivante fonctionne peu importe où vous la placez (elle vous donnera le nom de la colonne).
la source
essaye ça:
cette fonction est effective jusqu'à "ZY1" ou colonne = 701
la source
la source