Вы можете легко определить числовой столбец ячейки, используя функцию COLUMN. Все, что вам нужно сделать, это поместить такую ​​формулу в ячейку, и результатом будет значение, где A = 1, B = 2 и т. Д .:

=COLUMN()

Что, если вам нужно буквенное значение, а не числовое значение? Это можно сделать любым из нескольких способов. Например, следующая формула будет очень хорошо работать для первых 26 столбцов, от A до Z:

=CHAR(COLUMN()+64)

Это работает, потому что буквы от A до Z используют коды символов с 65 по 90. Когда COLUMN возвращает значение для столбцов от A до Z (с 1 по 26), это можно добавить к 64, чтобы получить буквы этих столбцов, с 65 по 90.

Конечно, это решение не сработает, если вы хотите знать буквенные обозначения столбцов за пределами Z. (Excel может использовать столбцы до IV.)

Эта формула будет работать для столбцов с одним и двумя символами:

=IF(COLUMN()<27,CHAR(COLUMN()+64),CHAR((COLUMN()/26)+64)& CHAR(MOD(COLUMN(),26)+64))

Как видите, когда в столбце используется несколько символов, формула довольно быстро становится длинной. Однако вы можете сделать формулу короче, используя функцию, отличную от COLUMN. Рассмотрим эту формулу, которая в первую очередь зависит от функции АДРЕС:

=LEFT(ADDRESS(1,COLUMN(),4),(COLUMN()>26)+1)

Функция АДРЕС возвращает адрес конкретной ячейки. В этом случае он возвращает адрес ячейки в первой строке текущего столбца. Таким образом, если формула находится в ячейке BF27, она возвращает BF1.

В формуле используется функция LEFT, чтобы вернуть правильное количество крайних левых символов в адресе за вычетом числа 1 в строке.

В еще более короткой версии формулы используется функция ЗАМЕНА вместо функции LEFT:

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

Эта версия использует функцию СТРОКА для объединения адресов, а затем удаляет значение СТРОКА из результата функции АДРЕС.

Конечно, вы также можете использовать решение на основе макросов, если хотите. Следующий макрос будет работать с любым столбцом на вашем листе:

Function AlphaCol() As String     Dim J As Integer     Dim K As Integer     Dim iDiv As Integer     Dim sTemp As String

Application.Volatile     J = Selection.Column     iDiv = 26 ^ 2     sTemp = ""

While J > 0         K = Int(J / iDiv)

If K > 0 Then sTemp = sTemp & Chr(K + 64)

J = J - (K * iDiv)

iDiv = iDiv / 26     Wend     AlphaCol = sTemp End Function

Макрос — это функция, определяемая пользователем, а это означает, что вы можете использовать ее в своих таблицах, просто добавив ее в любую ячейку:

=AlphaCol()

Возвращается текстовая строка, состоящая из обозначения столбца.

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (3254) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздние версии) здесь:

link: / excelribbon-Alphabetic_Column_Designation [Буквенное обозначение столбца].