Excel формула столбец буквой

 

Tosyan12

Пользователь

Сообщений: 117
Регистрация: 22.04.2018

Есть формула СТОЛБЕЦ(), она возвращает числовой номер столбца, в моём же случае нужно вернуть букву это столбца, как это сделать?

 

БМВ

Модератор

Сообщений: 21376
Регистрация: 28.12.2016

Excel 2013, 2016

=SUBSTITUTE(ADDRESS(1;COLUMN();4);1;)

Изменено: БМВ10.10.2019 13:10:36

По вопросам из тем форума, личку не читаю.

 

Tosyan12

Пользователь

Сообщений: 117
Регистрация: 22.04.2018

А можно русскую формулу? Я переводчиком перевёл но таких функций у меня нет.

 

Настя_Nastya

Пользователь

Сообщений: 801
Регистрация: 14.07.2019

#4

11.10.2019 20:04:12

Код
=ПСТР(АДРЕС(1;СТОЛБЕЦ();2);1;ДЛСТР(АДРЕС(1;СТОЛБЕЦ();2))-НАЙТИ("$";АДРЕС(1;СТОЛБЕЦ();2)))
 

Светлый

Пользователь

Сообщений: 487
Регистрация: 07.03.2019

#5

11.10.2019 20:08:17

До Z включительно:

Код
=СИМВОЛ(СТОЛБЕЦ()+64)
 

GRIM

Пользователь

Сообщений: 232
Регистрация: 21.09.2016

#6

11.10.2019 20:09:31

Цитата
Tosyan12 написал:
Я переводчиком перевёл но таких функций у меня нет.

Не может такого быть.

Код
=SUBSTITUTE(ADDRESS(1;COLUMN();4);1;)

=

Код
=ПОДСТАВИТЬ(АДРЕС(1;СТОЛБЕЦ();4);1;)
 

БМВ

Модератор

Сообщений: 21376
Регистрация: 28.12.2016

Excel 2013, 2016

Светлый,  досокращал формулу до результата сокращенного  :D

GRIM, Thanks for adaption and translation :-)

По вопросам из тем форума, личку не читаю.

 

Tosyan12

Пользователь

Сообщений: 117
Регистрация: 22.04.2018

#8

12.10.2019 11:52:34

Цитата
GRIM написал:
ПОДСТАВИТЬ(АДРЕС(1;СТОЛБЕЦ();4);1;)

Помогите составить формулу из 2ух. Значит есть 2 формулы

Код
=ГИПЕРССЫЛКА("#ЛИСТ1!L"&СТРОКА(N35);"►") и =АДРЕС(СТРОКА();СТОЛБЕЦ();4)

Мне нужно сделать так чтобы при нажатии на стрелочку вправо можно было попасть на стрелочку влево, в которой тоже есть формула, которая ведёт влево и при этом можно было добавлять столбики между формулами и переключение всё равно будет происходить по ячейкам с формулами. Я загружу файл, для вертикальных я сделал а для горизонтальных не получается добавляешь столбики и приходится каждый раз править все формулы.

Прикрепленные файлы

  • Переход.xlsx (9.74 КБ)

 

buchlotnik

Пользователь

Сообщений: 3863
Регистрация: 31.10.2014

Excel 365 Бета-канал

Tosyan12, а какое отношение этот вопрос имеет к заявленной теме?

Соблюдение правил форума не освобождает от модераторского произвола
<#0>

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Мало того, что никакого, так автор даже не соизволил ответить помогающим — подошли решения или нет?

 

Tosyan12

Пользователь

Сообщений: 117
Регистрация: 22.04.2018

Нет поэтому я спрашиваю как вернуть букву столбца совместив 2 формулы

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#12

12.10.2019 12:00:54

Как вернуть букву — Вам показали, а теперь начинается

Цитата
Tosyan12 написал:
при нажатии на стрелочку вправо можно было попасть на стрелочку влево,

Создавайте новую тему про «стрелочки». А в этой теме неплохо бы поблагодарить тех, кто Вам помогал.

 

Tosyan12

Пользователь

Сообщений: 117
Регистрация: 22.04.2018

#13

12.10.2019 12:29:54

Цитата
Юрий М написал:
Создавайте новую тему про «стрелочки»

Я уже создал 2 и никак, я думал картинки вставить, но тут ограничения на них, создам тогда 3юю тему про стрелочки, я снял видео на фотоаппарат я его в ютуб загружу там я показал что куда оно там стрикает и переходит.

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Не нужна третья: у Вас уже есть тема про переход между столбцами.

 

БМВ

Модератор

Сообщений: 21376
Регистрация: 28.12.2016

Excel 2013, 2016

Tosyan12, для стрелочек, галочек, людочек изучите возможности функции адрес и на этом все.

По вопросам из тем форума, личку не читаю.

 

Tosyan12

Пользователь

Сообщений: 117
Регистрация: 22.04.2018

#16

12.10.2019 14:43:06

Цитата
БМВ написал:
для стрелочек, галочек, людочек изучите возможности функции адрес и на этом все

Ну да возможно близко хожу но мозгов не хватает с этим экселем. Я хочу сделать вот такой эффект

https://www.youtube.com/watch?v=So3DBadKLdU&feature=youtu.be

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Tosyan12, забудьте, что существует кнопка цитирования — она не для Вас. Вы не умеете пользоваться этой кнопкой или не знаете, что такое цитата.

 

Tosyan12

Пользователь

Сообщений: 117
Регистрация: 22.04.2018

#18

12.10.2019 14:52:19

Цитата
Юрий М написал:
забудьте, что существует кнопка цитирования — она не для Вас. Вы не умеете пользоваться этой кнопкой или не знаете, что такое цитата.

Человек мне намекнул про функцию АДРЕС(), я с ней экспериментировал, я написал ответ человеку что не хватает мозгов её применить в моей ситуации

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#20

12.10.2019 15:03:50

Бан до понедельника. В понедельник придете — первым делом приведите в порядок сообщения в двух своих темах.

How to get a column letter from a number in Excel using a simple formula.

This is an important thing to be able to do when working with complex formulas in Excel, especially the INDIRECT() function.

Sections:

Basic Formula — Works for A to Z

More Complex Formula — Works For All Columns

Notes

Basic Formula — Works for A to Z

The formula:

A1 is the cell that contains the number of column for which you want to get the letter.

Result:

You could also write this formula like this:

You just have to input the number for the column directly in the formula.

The CHAR() function gets a letter based on its number as defined by the character set of your computer; though, you don’t need to know that to use this function.

Using COLUMN()

If you are creating a dynamic formula, you might want to automatically figure out the letter of a specific column for use in another function, such as the INDIRECT() function.

In this case, you can use the COLUMN() function to get the number of either a specific column or the current column:

This would get the letter for the column for cell A1, which is A.

Remove the cell reference from the COLUMN() function and you will get the letter of the current column.

Result:

Remember though, this will only work for columns A to Z and, in some cases this might not work depending on the localized settings of the computer. The next example does not have these limitations.

More Complex Formula — Works For All Columns

This example is more versatile in that it works for all of the columns in Excel, but it is slightly more complex.

The formula:

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

A3 is the example cell here that contains the number of the column for which we want to get a letter(s).

Result:

This formula uses the SUBSTITUTE() and ADDRESS() functions to get the column letters. This is a neat little trick that allows you to get the letters for any column using only a number as the reference for it.

The ADDRESS() function gives us the address of a cell based on a column and row number and the SUBSTITUTE() function replaces the number part of the cell reference with nothing, which removes the number. If you want to see this in Excel, just split these two functions into their own cell and look at the results:

Using COLUMN()

(this is almost the same as the COLUMN() section above, just with the new formula)

If you are creating a dynamic formula, you might want to automatically figure out the letter of a specific column for use in another function, such as the INDIRECT() function.

In this case, you can use the COLUMN() function to get the number of either a specific column or the current column:

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

This will get the letter for the column for the cell reference A1, which is A.

You can also remove the cell reference from the COLUMN() function to get the letter(s) for the column in which the formula is currently placed.

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

This will return D because the formula is in column D.

These last couple examples might seem trivial, but they are very helpful when you are copying the formula to a cell and column that is unknown, as in you don’t know in which column the formula will be when it is used or copied.

Notes

This is a powerful thing to be able to do in Excel, get column letter(s) from their number. You won’t use this every day and it might not help basic Excel users but, for all of you who want or need to take Excel to the next level, save this tutorial, especially for the second formula, the one that uses the SUBSTITUTE() and ADDRESS() functions.

Make sure to download the attached workbook so you can work with these examples in Excel.

Similar Content on TeachExcel

Convert Month Name to Number and Vice Versa in Excel

Tutorial: How to convert a month’s name, such as January, into a number using a formula in Excel; al…

ROMAN() & ARABIC() Function in Excel

Tutorial:
Convert roman numerals to regular numbers (arabic) and also how to convert regular number…

5 Tips for Evaluating Complex Formulas in Excel

Tutorial:
5 simple tips to evaluate any complex formula in Excel!
These tips combine to give you th…

Activate or Navigate to a Worksheet using Macros VBA in Excel

Tutorial: Make a particular worksheet visible using a macro in Excel.
This is called activating a wo…

Return the Min or Max Value Using a Lookup in Excel — INDEX MATCH

Tutorial:
Find the Min or Max value in a range and, based on that, return a value from another rang…

Get the Day of the Week (1 to 7) for a Date in Excel — WEEKDAY

Tutorial: Use a function in Excel to get the number of the day in a week, from 1 to 7. 
This allow…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

Содержание

  1. Как получить текущее имя столбца в Excel?
  2. 16 ответов 16
  3. Преобразование чисел столбцов Excel в алфавитные символы
  4. Введение
  5. Дополнительная информация
  6. Excel формула столбец буквой
  7. Как преобразовать букву столбца в число или наоборот в Excel?
  8. Преобразуйте букву столбца в число или наоборот с помощью формул
  9. Преобразование буквы столбца в число или наоборот с помощью функции, определяемой пользователем
  10. Лучшие инструменты для работы в офисе
  11. Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
  12. Вкладка Office: интерфейс с вкладками в Office и упрощение работы

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

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

16 ответов 16

Вы можете использовать функции 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

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

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

Источник

Преобразование чисел столбцов Excel в алфавитные символы

Введение

В этой статье описывается, как использовать функцию Microsoft Visual Basic для приложений (VBA) в Microsoft Excel для преобразования номеров столбцов в соответствующий буквенный указатель символов для того же столбца.

Например, столбец с номером 30 преобразуется в эквивалентные буквенные символы AD.

Дополнительная информация

Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Специалисты технической поддержки Майкрософт могут пояснить работу той или иной процедуры, но модификация примеров и их адаптация к задачам разработчика не предусмотрена.

Функция ConvertToLetter работает с помощью следующего алгоритма:

  1. Введите iCol номер столбца. Остановите, iCol если значение меньше 1.
  2. Вычисляет частное и остаток от деления на (iCol — 1) 26 и сохраняется в переменных a и b .
  3. Преобразуйте b целочисленное значение в соответствующий алфавитный символ (0 => A, 25 => Z) и включите его в начале результирующей строки.
  4. Задайте iCol делитель и a цикл.

Например, номер столбца — 30.

(Цикл 1, шаг 1) Номер столбца не ниже 1, продолжайте.

(Цикл 1, шаг 2) Номер столбца меньше единицы делится на 26:

29 / 26 = 1 остаток 3. a = 1, b = 3

(Цикл 1, шаг 3) Укажите букву (b+1) алфавита:

3 + 1 = 4, четвертая буква — «D». Result = «D»

(Цикл 1, шаг 4) Назад к шагу 1 с iCol = a

(Цикл 2, шаг 1) Номер столбца не ниже 1, продолжайте.

(Цикл 2, шаг 2) Номер столбца меньше единицы делится на 26:

0 / 26 = 0 остаток 0. a = 0, b = 0

(Цикл 2, шаг 3) Укажите букву b+1 алфавита:

0 + 1 = 1, первая буква — «A» Result = «AD»

(Цикл 2, шаг 4) Назад к шагу 1 с iCol = a

(Цикл 3, шаг 1) Номер столбца меньше 1, остановка.

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

Примечание Эта функция преобразует только целые числа, которые передаются в нее, в эквивалентный буквенно-цифровой текстовый символ. Он не изменяет внешний вид столбца или заголовков строк на физическом листе.

Источник

Excel формула столбец буквой

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

В этой статье я расскажу о том, как преобразовать букву столбца в номер столбца или преобразовать номер столбца в букву. Например, преобразовать букву AA в столбце в число 27 или преобразовать номер столбца 100 в букву CV. Чтобы получить решение следующими методами.

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

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

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

Пожалуйста, введите эту формулу: = КОЛОНКА (КОСВЕННО («AB1»)) в пустую ячейку, где вы хотите найти преобразованный результат, а затем нажмите Enter ключ для получения номера столбца:

Примечание: В приведенной выше формуле AB — буква столбца, на основе которой вы хотите получить номер столбца, вы можете изменить его по своему усмотрению.

Преобразуйте номер столбца в букву столбца:

Введите эту формулу: = ПОДСТАВИТЬ (АДРЕС (1,200,4); 1; «») в пустую ячейку, чтобы получить результат, а затем нажмите Enter чтобы получить букву столбца следующим образом:

Примечание: В приведенной выше формуле красное число 200 — это номер столбца, который вы хотите преобразовать в букву столбца, вы можете изменить его по своему усмотрению.

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

Кроме формул, здесь я также могу ввести Функция, определяемая пользователем справиться с этой задачей.

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

1. Удерживайте ALT + F11 ключи, затем он открывает Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.

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

3. Затем сохраните и закройте этот код, вернитесь на рабочий лист и введите следующую формулу: = Tocolnum («ВВ») (VV — буква столбца, в которой вы хотите преобразовать число. ) в пустую ячейку и нажмите Enter ключ, чтобы получить номер столбца, см. снимок экрана:

Преобразуйте номер столбца в букву столбца:

1. Удерживайте ALT + F11 ключи, затем он открывает Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.

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

3. Затем сохраните и закройте этот код, вернитесь на рабочий лист и введите следующую формулу: = ToColletter (50) (50 — номер столбца, который вы хотите преобразовать в букву. ) в пустую ячейку и нажмите Enter ключ, чтобы получить номер столбца, см. снимок экрана:

Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма .
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон .
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы . Предотвращение дублирования ячеек; Сравнить диапазоны .
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор .
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули , Флажки и многое другое .
  • Извлечь текст , Добавить текст, Удалить по позиции, Удалить пробел ; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии .
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом .
  • Комбинируйте книги и рабочие листы ; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов ; Пакетное преобразование xls, xlsx и PDF . Pivot Table Grouping by week number, day of week and more. Show Unlocked, Locked Cells by different colors; Highlight Cells That Have Formula/Name . —>
  • Более 300 мощных функций . Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint , Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

Публичная функция AlphabetInteger (буква ByVal как строка) как целое число
Dim N как целое число
буква = Strings.UCase(буква)
Если Буква = «А» Тогда
N = 1
ИначеЕсли буква = «Б» Тогда
N = 2
ИначеЕсли буква = «С» Тогда
N = 3
ИначеЕсли буква = «Д» Тогда
N = 4
ИначеЕсли буква = «Е» Тогда
N = 5
ИначеЕсли буква = «Ф» Тогда
N = 6
ИначеЕсли буква = «Г» Тогда
N = 7
ИначеЕсли буква = «Н» Тогда
N = 8
ИначеЕсли буква = «Я» Тогда
N = 9
ИначеЕсли буква = «J» Тогда
N = 10
ИначеЕсли буква = «К» Тогда
N = 11
ИначеЕсли буква = «Л» Тогда
N = 12
ИначеЕсли буква = «М» Тогда
N = 13
ИначеЕсли буква = «Н» Тогда
N = 14
ИначеЕсли буква = «О» Тогда
N = 15
ИначеЕсли буква = «П» Тогда
N = 16
ИначеЕсли буква = «Q» Тогда
N = 17
ИначеЕсли буква = «Р» Тогда
N = 18
ИначеЕсли буква = «С» Тогда
N = 19
ИначеЕсли буква = «Т» Тогда
N = 20
ИначеЕсли буква = «У» Тогда
N = 21
ИначеЕсли буква = «В» Тогда
N = 22
ИначеЕсли буква = «W» Тогда
N = 23
ИначеЕсли буква = «Х» Тогда
N = 24
ИначеЕсли буква = «Y» Тогда
N = 25
ИначеЕсли буква = «З» Тогда
N = 26
Еще
N = 0
End If
Алфавитцелое = N
End Function

Общедоступная функция ColumnNumber (ByVal columnLetter As String) As Integer
Dim I как целое число
Dim sLength как целое число
Dim N как целое число
Dim A как целое число
Dim P как целое число
Dim C как строка

Источник

Формула определения буквы столбца через опред. интервал

Chelovekov

Дата: Суббота, 05.01.2019, 08:31 |
Сообщение № 1

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 235


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Здравствуйте. гуры Екселя !!! Подскажите пожалуйста можно ли написать формулу, которая будет определяет букву столбца через определенный интервал столбцов. Например: Первый столбец буква А, через пять столбцов от столбца с буквой А, будет F.

Зараннее благодарен.

 

Ответить

Pelena

Дата: Суббота, 05.01.2019, 08:57 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Непонятно, что брать в качестве исходных данных. Если просто букву столбца, то

Код

=СИМВОЛ(КОДСИМВ(«A»)+5)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Nic70y

Дата: Суббота, 05.01.2019, 09:27 |
Сообщение № 3

Группа: Друзья

Ранг: Экселист

Сообщений: 8132


Репутация:

1998

±

Замечаний:
0% ±


Excel 2010

Код

=ПОДСТАВИТЬ(АДРЕС(1;СТОЛБЕЦ()+5;4);1;)


ЮMoney 41001841029809

 

Ответить

Chelovekov

Дата: Суббота, 05.01.2019, 09:42 |
Сообщение № 4

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 235


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Огромное спасибо hands

 

Ответить

This function returns the column letter for a given column number.

Function Col_Letter(lngCol As Long) As String
    Dim vArr
    vArr = Split(Cells(1, lngCol).Address(True, False), "$")
    Col_Letter = vArr(0)
End Function

testing code for column 100

Sub Test()
    MsgBox Col_Letter(100)
End Sub

Stevoisiak's user avatar

Stevoisiak

22.8k27 gold badges122 silver badges219 bronze badges

answered Oct 9, 2012 at 9:44

brettdj's user avatar

5

If you’d rather not use a range object:

Function ColumnLetter(ColumnNumber As Long) As String
    Dim n As Long
    Dim c As Byte
    Dim s As String

    n = ColumnNumber
    Do
        c = ((n - 1) Mod 26)
        s = Chr(c + 65) & s
        n = (n - c)  26
    Loop While n > 0
    ColumnLetter = s
End Function

answered Mar 12, 2013 at 16:37

robartsd's user avatar

robartsdrobartsd

1,3901 gold badge9 silver badges15 bronze badges

7

Something that works for me is:

Cells(Row,Column).Address 

This will return the $AE$1 format reference for you.

answered Nov 21, 2013 at 21:00

Damian Fennelly's user avatar

2

I'm surprised nobody suggested:   Columns(Column Index).Address

  • For example: MsgBox Columns( 9347 ).Address returns $MUM:$MUM.

To return ONLY the column letter(s): Split((Columns(Column Index).Address(,0)),":")(0)

  • For example: MsgBox Split((Columns( 2734 ).Address(,0)),":")(0) returns DAD.

  More Examples


answered Mar 30, 2018 at 15:22

ashleedawg's user avatar

ashleedawgashleedawg

20k8 gold badges73 silver badges104 bronze badges

2

And a solution using recursion:

Function ColumnNumberToLetter(iCol As Long) As String

    Dim lAlpha As Long
    Dim lRemainder As Long

    If iCol <= 26 Then
        ColumnNumberToLetter = Chr(iCol + 64)
    Else
        lRemainder = iCol Mod 26
        lAlpha = Int(iCol / 26)
        If lRemainder = 0 Then
            lRemainder = 26
            lAlpha = lAlpha - 1
        End If
        ColumnNumberToLetter = ColumnNumberToLetter(lAlpha) & Chr(lRemainder + 64)
    End If

End Function

answered Nov 27, 2013 at 10:31

Nikolay Ivanov's user avatar

Nikolay IvanovNikolay Ivanov

5,1191 gold badge26 silver badges22 bronze badges

5

Just one more way to do this. Brettdj’s answer made me think of this, but if you use this method you don’t have to use a variant array, you can go directly to a string.

ColLtr = Cells(1, ColNum).Address(True, False)
ColLtr = Replace(ColLtr, "$1", "")

or can make it a little more compact with this

ColLtr = Replace(Cells(1, ColNum).Address(True, False), "$1", "")

Notice this does depend on you referencing row 1 in the cells object.

Stevoisiak's user avatar

Stevoisiak

22.8k27 gold badges122 silver badges219 bronze badges

answered May 23, 2014 at 15:22

OSUZorba's user avatar

OSUZorbaOSUZorba

1,07911 silver badges13 bronze badges

0

This is available through using a formula:

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

and so also can be written as a VBA function as requested:

Function ColName(colNum As Integer) As String
    ColName = Split(Worksheets(1).Cells(1, colNum).Address, "$")(1)
End Function

answered Dec 9, 2014 at 12:08

Alistair Collins's user avatar

Alistair CollinsAlistair Collins

2,2005 gold badges25 silver badges44 bronze badges

This is a version of robartsd’s answer (with the flavor of Jan Wijninckx’s one line solution), using recursion instead of a loop.

Public Function ColumnLetter(Column As Integer) As String
    If Column < 1 Then Exit Function
    ColumnLetter = ColumnLetter(Int((Column - 1) / 26)) & Chr(((Column - 1) Mod 26) + Asc("A"))
End Function

I’ve tested this with the following inputs:

1   => "A"
26  => "Z"
27  => "AA"
51  => "AY"
702 => "ZZ"
703 => "AAA" 
-1  => ""
-234=> ""

Stevoisiak's user avatar

Stevoisiak

22.8k27 gold badges122 silver badges219 bronze badges

answered Feb 4, 2015 at 16:18

alexanderbird's user avatar

alexanderbirdalexanderbird

3,7071 gold badge24 silver badges35 bronze badges

2

robertsd’s code is elegant, yet to make it future-proof, change the declaration of n to type long

In case you want a formula to avoid macro’s, here is something that works up to column 702 inclusive

=IF(A1>26,CHAR(INT((A1-1)/26)+64),"")&CHAR(MOD(A1-1,26)+65)

where A1 is the cell containing the column number to be converted to letters.

Stevoisiak's user avatar

Stevoisiak

22.8k27 gold badges122 silver badges219 bronze badges

answered Feb 17, 2014 at 3:29

Jan Wijninckx's user avatar

1

This is a function based on @DamienFennelly’s answer above. If you give me a thumbs up, give him a thumbs up too! :P

Function outColLetterFromNumber(iCol as Integer) as String
    sAddr = Cells(1, iCol).Address
    aSplit = Split(sAddr, "$")
    outColLetterFromNumber = aSplit(1)
End Function

Stevoisiak's user avatar

Stevoisiak

22.8k27 gold badges122 silver badges219 bronze badges

answered Mar 20, 2014 at 18:43

BrettFromLA's user avatar

BrettFromLABrettFromLA

9061 gold badge7 silver badges17 bronze badges

2

There is a very simple way using Excel power: Use Range.Cells.Address property, this way:

strCol = Cells(1, lngRow).Address(xlRowRelative, xlColRelative)

This will return the address of the desired column on row 1. Take it of the 1:

strCol = Left(strCol, len(strCol) - 1)

Note that it so fast and powerful that you can return column addresses that even exists!

Substitute lngRow for the desired column number using Selection.Column property!

Niall's user avatar

Niall

29.8k10 gold badges100 silver badges140 bronze badges

answered Jul 29, 2014 at 12:39

flaviomorgado's user avatar

Here is a simple one liner that can be used.

ColumnLetter = Mid(Cells(Row, LastColA).Address, 2, 1)

It will only work for a 1 letter column designation, but it is nice for simple cases. If you need it to work for exclusively 2 letter designations, then you could use the following:

ColumnLetter = Mid(Cells(Row, LastColA).Address, 2, 2)

answered Aug 26, 2014 at 14:15

Syd B's user avatar

Syd BSyd B

211 bronze badge

This will work regardless of what column inside your one code line for cell thats located in row X, in column Y:

Mid(Cells(X,Y).Address, 2, instr(2,Cells(X,Y).Address,"$")-2)

If you have a cell with unique defined name «Cellname»:

Mid(Cells(1,val(range("Cellname").Column)).Address, 2, instr(2,Cells(1,val(range("Cellname").Column)).Address,"$")-2)

answered Nov 5, 2014 at 17:30

Codeplayer's user avatar

So I’m late to the party here, but I want to contribute another answer that no one else has addressed yet that doesn’t involve arrays. You can do it with simple string manipulation.

Function ColLetter(Col_Index As Long) As String

    Dim ColumnLetter As String

    'Prevent errors; if you get back a number when expecting a letter, 
    '    you know you did something wrong.
    If Col_Index <= 0 Or Col_Index >= 16384 Then
        ColLetter = 0
        Exit Function
    End If

    ColumnLetter = ThisWorkbook.Sheets(1).Cells(1, Col_Index).Address     'Address in $A$1 format
    ColumnLetter = Mid(ColumnLetter, 2, InStr(2, ColumnLetter, "$") - 2)  'Extracts just the letter

    ColLetter = ColumnLetter
End Sub

After you have the input in the format $A$1, use the Mid function, start at position 2 to account for the first $, then you find where the second $ appears in the string using InStr, and then subtract 2 off to account for that starting position.

This gives you the benefit of being adaptable for the whole range of possible columns. Therefore, ColLetter(1) gives back «A», and ColLetter(16384) gives back «XFD», which is the last possible column for my Excel version.

answered Dec 27, 2018 at 23:51

SandPiper's user avatar

SandPiperSandPiper

2,7765 gold badges32 silver badges49 bronze badges

Easy way to get the column name

Sub column()

cell=cells(1,1)
column = Replace(cell.Address(False, False), cell.Row, "")
msgbox column

End Sub

I hope it helps =)

answered Nov 11, 2014 at 12:09

cristobal's user avatar

The solution from brettdj works fantastically, but if you are coming across this as a potential solution for the same reason I was, I thought that I would offer my alternative solution.

The problem I was having was scrolling to a specific column based on the output of a MATCH() function. Instead of converting the column number to its column letter parallel, I chose to temporarily toggle the reference style from A1 to R1C1. This way I could just scroll to the column number without having to muck with a VBA function. To easily toggle between the two reference styles, you can use this VBA code:

Sub toggle_reference_style()

If Application.ReferenceStyle = xlR1C1 Then
  Application.ReferenceStyle = xlA1
Else
  Application.ReferenceStyle = xlR1C1
End If

End Sub

answered Feb 12, 2015 at 18:07

Will Ediger's user avatar

Will EdigerWill Ediger

8939 silver badges17 bronze badges

Furthering on brettdj answer, here is to make the input of column number optional. If the column number input is omitted, the function returns the column letter of the cell that calls to the function. I know this can also be achieved using merely ColumnLetter(COLUMN()), but i thought it’d be nice if it can cleverly understand so.

Public Function ColumnLetter(Optional ColumnNumber As Long = 0) As String
    If ColumnNumber = 0 Then
        ColumnLetter = Split(Application.Caller.Address(True, False, xlA1), "$")(0)
    Else
        ColumnLetter = Split(Cells(1, ColumnNumber).Address(True, False, xlA1), "$")(0)
    End If
End Function

The trade off of this function is that it would be very very slightly slower than brettdj’s answer because of the IF test. But this could be felt if the function is repeatedly used for very large amount of times.

answered Mar 19, 2016 at 4:52

Rosetta's user avatar

RosettaRosetta

2,6251 gold badge12 silver badges28 bronze badges

Here is a late answer, just for simplistic approach using Int() and If in case of 1-3 character columns:

Function outColLetterFromNumber(i As Integer) As String

    If i < 27 Then       'one-letter
        col = Chr(64 + i)
    ElseIf i < 677 Then  'two-letter
        col = Chr(64 + Int(i / 26)) & Chr(64 + i - (Int(i / 26) * 26))
    Else                 'three-letter
        col = Chr(64 + Int(i / 676)) & Chr(64 + Int(i - Int(i / 676) * 676) / 26)) & Chr(64 + i - (Int(i - Int(i / 676) * 676) / 26) * 26))
    End If

    outColLetterFromNumber = col

End Function

answered May 28, 2016 at 21:56

ib11's user avatar

ib11ib11

2,5203 gold badges21 silver badges54 bronze badges

Function fColLetter(iCol As Integer) As String
  On Error GoTo errLabel
  fColLetter = Split(Columns(lngCol).Address(, False), ":")(1)
  Exit Function
errLabel:
  fColLetter = "%ERR%"
End Function

answered Mar 4, 2017 at 22:36

Krzysztof's user avatar

Here, a simple function in Pascal (Delphi).

function GetColLetterFromNum(Sheet : Variant; Col : Integer) : String;
begin
  Result := Sheet.Columns[Col].Address;  // from Col=100 --> '$CV:$CV'
  Result := Copy(Result, 2, Pos(':', Result) - 2);
end;

answered Sep 8, 2017 at 11:00

Jordi's user avatar

JordiJordi

215 bronze badges

This formula will give the column based on a range (i.e., A1), where range is a single cell. If a multi-cell range is given it will return the top-left cell. Note, both cell references must be the same:

MID(CELL(«address»,A1),2,SEARCH(«$»,CELL(«address»,A1),2)-2)

How it works:

CELL(«property»,»range») returns a specific value of the range depending on the property used. In this case the cell address.
The address property returns a value $[col]$[row], i.e. A1 -> $A$1.
The MID function parses out the column value between the $ symbols.

answered Jan 31, 2018 at 18:49

Thom's user avatar

ThomThom

212 bronze badges

Sub GiveAddress()
    Dim Chara As String
    Chara = ""
    Dim Num As Integer
    Dim ColNum As Long
    ColNum = InputBox("Input the column number")

    Do
        If ColNum < 27 Then
            Chara = Chr(ColNum + 64) & Chara
            Exit Do
        Else
            Num = ColNum / 26
            If (Num * 26) > ColNum Then Num = Num - 1
            If (Num * 26) = ColNum Then Num = ((ColNum - 1) / 26) - 1
            Chara = Chr((ColNum - (26 * Num)) + 64) & Chara
            ColNum = Num
        End If
    Loop

    MsgBox "Address is '" & Chara & "'."
End Sub

Sebastian Brosch's user avatar

answered Feb 4, 2016 at 11:16

Chetan V.'s user avatar

Column letter from column number can be extracted using formula by following steps
1. Calculate the column address using ADDRESS formula
2. Extract the column letter using MID and FIND function

Example:
1. ADDRESS(1000,1000,1)
results $ALL$1000
2. =MID(F15,2,FIND(«$»,F15,2)-2)
results ALL asuming F15 contains result of step 1

In one go we can write
MID(ADDRESS(1000,1000,1),2,FIND(«$»,ADDRESS(1000,1000,1),2)-2)

answered Sep 22, 2015 at 20:54

Bhanu Sinha's user avatar

Bhanu SinhaBhanu Sinha

1,51612 silver badges10 bronze badges

this is only for REFEDIT … generaly use uphere code
shortly version… easy to be read and understood /
it use poz of $

Private Sub RefEdit1_Change()

    Me.Label1.Caption = NOtoLETTER(RefEdit1.Value) ' you may assign to a variable  var=....'

End Sub

Function NOtoLETTER(REFedit)

    Dim First As Long, Second As Long

    First = InStr(REFedit, "$")                 'first poz of $
    Second = InStr(First + 1, REFedit, "$")     'second poz of $

    NOtoLETTER = Mid(REFedit, First + 1, Second - First - 1)   'extract COLUMN LETTER

End Function

Tunaki's user avatar

Tunaki

131k46 gold badges330 silver badges415 bronze badges

answered Mar 19, 2016 at 17:02

Gabriel V's user avatar

answered Mar 30, 2016 at 9:31

PEDRO COUTO's user avatar

0

what about just converting to the ascii number and using Chr() to convert back to a letter?

col_letter = Chr(Selection.Column + 96)

answered Jul 15, 2016 at 15:41

beef_supreme's user avatar

0

Вы когда-нибудь пытались получить букву строки или столбца текущей ячейки в Excel, как показано ниже? Здесь я ввожу несколько формул для быстрого получения буквы строки или буквы столбца активной ячейки.

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


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

Получить букву строки текущей ячейки

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

= СИМВОЛ (СТРОКА () + 64)

= ЛЕВЫЙ (АДРЕС (1; СТРОКА (); 2); 1 + (СТРОКА ()> 26))

документ получить букву строки столбца 1

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

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

= СИМВОЛ (КОЛОНКА () + 64)

= ЛЕВЫЙ (АДРЕС (1; КОЛОНКА (); 2); 1 + (КОЛОНКА ()> 26))

документ получить букву строки столбца 2


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (5)


Номинальный 5 из 5


·


рейтинги 1

На чтение 2 мин. Просмотров 40 Опубликовано 14.05.2021

Вы можете легко определить числовой столбец ячейки с помощью функции 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 может иметь до трех цифр (Excel может использовать столбцы до XFD), другой подход к поиску букв столбца следующий:

 = LEFT (ADDRESS (1, COLUMN (), 4), LEN (ADDRESS (1, COLUMN (), 4)) - 1) 

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

В еще более короткой версии формулы вместо этого используется функция ПОДСТАВИТЬ функции LEFT:

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

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

 Функция AlphaCol (c As Range) As String Dim sTemp As String Dim ad1 As String ad1 = c.Address sTemp = Mid (  ad1, InStr (ad1, "$") + 1, InStr (2, ad1, "$") - 2) AlphaCol = sTempEnd Function 

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

 = AlphaCol (J12) 

Ячейка, на которую ссылается вызов функции, является ячейкой ( любая ячейка) в столбце, букву которого вы хотите узнать. Функция находит этот адрес для этой ячейки и удаляет все, кроме обозначения столбца. Возвращается текстовая строка, состоящая из обозначения столбца.

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