Как получить текущее имя столбца в Excel?

Как получить текущее имя столбца в Excel?

Какая функция позволяет получить текущий номер строки и имя текущего столбца для ячейки в Excel?

решение1

Для этого можно использовать функции ROWи COLUMN. Если вы опустите аргумент для этих формул, будет использоваться текущая ячейка. Их можно использовать напрямую сфункцияOFFSETили любая другая функция, в которой можно указать как строку, так и столбец в качестве числовых значений.

Например, если ввести значение =ROW()в ячейку D8, будет возвращено значение 8. Если ввести значение =COLUMN()в ту же ячейку, будет возвращено значение 4.

Если вам нужна буква столбца, вы можете использовать функцию CHAR. Я не рекомендую использовать буквы для представления столбца, так как все становится сложнее при переходе к двухбуквенным именам столбцов (где простое использование цифр в любом случае более логично).

Независимо от этого, если вы все равно хотите получить букву столбца, вы можете просто добавить 64 к номеру столбца (64 на один символ меньше, чем A), так что в предыдущем примере, если вы установите значение ячейки в =CHAR(COLUMN()+64), возвращаемое значение будет D. Если вы хотите, чтобы значение ячейки было самим местоположением ячейки, полная формула будет =CHAR(COLUMN()+64) & ROW().


Просто для информации, я получил 64 из таблицы ASCII. Вы также можете использовать формулу CODE, поэтому обновленная формула с ее использованием будет =CHAR(COLUMN() + CODE("A") - 1). Вам нужно вычесть 1, поскольку минимальное значение COLUMNвсегда равно 1, и тогда минимальное возвращаемое значение всей формулы будет B.

Однако это не будет работать с двухбуквенными столбцами. В этом случае вам понадобится следующая формула для правильного анализа двухбуквенных столбцов:

=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()

Я не уверен, есть ли более простой способ сделать это или нет, но я знаю, что это работает от ячейки A1до ZZ99без проблем. Однако это иллюстрирует, почему лучше избегать использования идентификаторов столбцов на основе букв и придерживаться чисто числовых формул (например, использовать номер столбца вместо буквы с OFFSET).

решение2

Попробуйте следующую функцию:

=SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","")

Объяснение: ADDRESS(row_num, column_num, [abs_num]). [abs_num] = 4= относительный адрес. Это означает, что в возвращаемом значении нет '$'. Для столбца 'AB' вернет ADDRESS'AB1'. Заменитель удалит '1'.

решение3

Попробуй это

=SUBSTITUTE(SUBSTITUTE(CELL("address"),"$" & ROW(),""), "$", "")

Это даст вам точный заголовок столбца, без всяких $ и т.п.

решение4

Чтобы получить имя столбца, я использовал следующие формулы.

Для конкретной ячейки:

=SUBSTITUTE(CELL("address",H3),"$" & ROW(H3),"")

Для текущей ячейки:

=SUBSTITUTE(CELL("address"),"$" & ROW(),"")

Попробуйте этот вариант. Он работает с 3-буквенными столбцами и не оставляет "$" на переднем конце:

=SUBSTITUTE(ADDRESS(ROW(XFD123),COLUMN(XFD123),4),ROW(XFD123),"")

Связанный контент