Как преобразовать номер столбца Excel в букву

  • Поделись Этим
Michael Brown

В этом руководстве мы рассмотрим, как изменить номера столбцов Excel на соответствующие алфавитные символы.

При построении сложных формул в Excel иногда возникает необходимость получить букву столбца из определенной ячейки или из заданного числа. Это можно сделать двумя способами: с помощью встроенных или пользовательских функций.

    Как преобразовать номер колонки в алфавит (однобуквенные колонки)

    Если имя столбца состоит из одной буквы, от A до Z, его можно получить с помощью этой простой формулы:

    CHAR(64 + col_number )

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

    =CHAR(64 + 10)

    Также можно ввести число в некоторую ячейку и сослаться на эту ячейку в своей формуле:

    =CHAR(64 + A2)

    Как работает эта формула:

    Функция CHAR возвращает символ, основанный на коде символа в наборе ASCII. Значения ASCII для заглавных букв английского алфавита - от 65 (A) до 90 (Z). Таким образом, чтобы получить код символа заглавной буквы A, нужно прибавить 1 к 64; чтобы получить код символа заглавной буквы B, нужно прибавить 2 к 64, и так далее.

    Как преобразовать номер столбца Excel в букву (любой столбец)

    Если вы ищете универсальную формулу, которая работает для любого столбца в Excel (1-буквенного, 2-буквенного и 3-буквенного), то вам потребуется использовать немного более сложный синтаксис:

    ЗАМЕНИТЬ(АДРЕС(1, col_number , 4), "1", "")

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

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

    Как работает эта формула:

    Сначала строится адрес ячейки с номером интересующего столбца, для чего в функцию ADDRESS вводятся следующие аргументы:

    • 1 для row_num (номер строки не имеет значения, поэтому вы можете использовать любой).
    • A2 (ячейка, содержащая номер столбца) для номер_столбца .
    • 4 для абс_число аргумент для возврата относительной ссылки.

    При указанных выше параметрах функция ADDRESS возвращает в качестве результата текстовую строку "A1".

    Поскольку нам нужна только буква столбца, мы удаляем номер строки с помощью функции SUBSTITUTE, которая ищет "1" (или любой номер строки, который вы жестко закодировали в функции ADDRESS) в тексте "A1" и заменяет его пустой строкой ("").

    Получение буквы столбца из номера столбца с помощью пользовательской функции Пользовательская функция

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

    Код функции довольно прост и понятен:

    Public Function ColumnLetter(col_num) ColumnLetter = Split(Cells(1, col_num).Address, "$" )(1) End Function

    Здесь мы используем Клетки свойство для ссылки на ячейку в строке 1 и указанный номер столбца, а также свойство Адрес свойство возвращает строку, содержащую абсолютную ссылку на эту ячейку (например, $A$1). Затем функция Split разбивает возвращаемую строку на отдельные элементы, используя знак $ в качестве разделителя, и мы возвращаем элемент (1), который является буквой столбца.

    Вставьте код в редактор VBA, и ваш новый ColumnLetter Функция готова к использованию. Подробное руководство см. в разделе: Как вставить код VBA в Excel.

    С точки зрения конечного пользователя, синтаксис функции прост:

    ColumnLetter(col_num)

    Где col_num это номер столбца, который вы хотите преобразовать в букву.

    Ваша реальная формула может выглядеть следующим образом:

    =ColumnLetter(A2)

    И он вернет точно такие же результаты, как и родные функции Excel, рассмотренные в предыдущем примере:

    Как получить букву столбца определенной ячейки

    Чтобы определить букву столбца конкретной ячейки, используйте функцию COLUMN для получения номера столбца и передайте этот номер функции ADDRESS. Полная формула примет такой вид:

    ПОДСТАНОВКА(АДРЕС(1, СТОЛБЕЦ( адрес_ячейки ), 4), "1", "")

    В качестве примера, давайте найдем букву столбца ячейки C5:

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

    Очевидно, что результатом будет "C" :)

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

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

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

    Как создать эталон динамического диапазона на основе номера столбца

    Надеюсь, предыдущие примеры дали вам несколько новых тем для размышлений, но вы, возможно, задаетесь вопросом о практическом применении.

    В этом примере мы покажем вам, как использовать формулу "номер столбца к букве" для решения реальных задач. В частности, мы создадим динамическую формулу XLOOKUP, которая будет извлекать значения из определенного столбца на основе его номера.

    Из приведенной ниже таблицы-образца предположим, что вы хотите получить показатель прибыли для данного проекта (H2) и недели (H3).

    Для выполнения задачи необходимо предоставить XLOOKUP диапазон, из которого будут возвращаться значения. Поскольку у нас есть только номер недели, который соответствует номеру столбца, мы сначала преобразуем этот номер в букву столбца, а затем построим ссылку на диапазон.

    Для удобства давайте разделим весь процесс на 3 простых в исполнении шага.

    1. Преобразование номера столбца в букву

      Имея номер столбца в H3, используйте уже знакомую формулу, чтобы изменить его на алфавитный символ:

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

      Совет. Если номер в вашем наборе данных не совпадает с номером столбца, обязательно сделайте необходимую поправку. Например, если данные за неделю 1 находятся в столбце B, данные за неделю 2 - в столбце C и так далее, то для получения правильного номера столбца мы используем H3+1.

    2. Создайте строку, представляющую ссылку на диапазон

      Чтобы построить ссылку на диапазон в виде строки, нужно соединить букву столбца, возвращаемую приведенной выше формулой, с номером первой и последней строки. В нашем случае ячейки данных находятся в строках с 3 по 8, поэтому мы используем эту формулу:

      =SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"

      Учитывая, что H3 содержит "3", который преобразуется в "C", наша формула претерпевает следующее преобразование:

      ="C"&"3:"&"C"&"8"

      И выдает строку C3:C8.

    3. Сделайте эталон динамического диапазона

      Чтобы преобразовать текстовую строку в правильную ссылку, понятную Excel, вложите приведенную выше формулу в функцию INDIRECT, а затем передайте ее в 3-й аргумент XLOOKUP:

      =XLOOKUP(H2, E3:E8, INDIRECT(H4), "Не найдено")

      Чтобы избавиться от лишней ячейки, содержащей строку диапазона возврата, можно поместить формулу ЗАМЕНИТЬ АДРЕС в саму функцию ИНДИРЕКТ:

      =XLOOKUP(H2, E3:E8, INDIRECT(SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"), "Не найдено")

    С помощью нашей пользовательской функции ColumnLetter вы можете получить более компактное и элегантное решение:

    =XLOOKUP(H2, E3:E8, INDIRECT(ColumnLetter(H3) & "3:" & ColumnLetter(H3) & "8"), "Не найдено")

    Вот как найти букву столбца из числа в Excel. Я благодарю вас за чтение и жду вас в нашем блоге на следующей неделе!

    Рабочая тетрадь для тренировок для скачивания

    Перевод номера столбца Excel в букву - примеры (файл.xlsm)

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.