Оглавление
В этом руководстве мы рассмотрим, как изменить номера столбцов 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 простых в исполнении шага.
- Преобразование номера столбца в букву
Имея номер столбца в H3, используйте уже знакомую формулу, чтобы изменить его на алфавитный символ:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "")
Совет. Если номер в вашем наборе данных не совпадает с номером столбца, обязательно сделайте необходимую поправку. Например, если данные за неделю 1 находятся в столбце B, данные за неделю 2 - в столбце C и так далее, то для получения правильного номера столбца мы используем H3+1.
- Создайте строку, представляющую ссылку на диапазон
Чтобы построить ссылку на диапазон в виде строки, нужно соединить букву столбца, возвращаемую приведенной выше формулой, с номером первой и последней строки. В нашем случае ячейки данных находятся в строках с 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.
- Сделайте эталон динамического диапазона
Чтобы преобразовать текстовую строку в правильную ссылку, понятную 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)