Tosyan12 Пользователь Сообщений: 117 |
Есть формула СТОЛБЕЦ(), она возвращает числовой номер столбца, в моём же случае нужно вернуть букву это столбца, как это сделать? |
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
=SUBSTITUTE(ADDRESS(1;COLUMN();4);1;) Изменено: БМВ — 10.10.2019 13:10:36 По вопросам из тем форума, личку не читаю. |
Tosyan12 Пользователь Сообщений: 117 |
А можно русскую формулу? Я переводчиком перевёл но таких функций у меня нет. |
Настя_Nastya Пользователь Сообщений: 801 |
#4 11.10.2019 20:04:12
|
||
Светлый Пользователь Сообщений: 487 |
#5 11.10.2019 20:08:17 До Z включительно:
|
||
GRIM Пользователь Сообщений: 232 |
#6 11.10.2019 20:09:31
Не может такого быть.
=
|
||||||
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
Светлый, досокращал формулу до результата сокращенного GRIM, Thanks for adaption and translation По вопросам из тем форума, личку не читаю. |
Tosyan12 Пользователь Сообщений: 117 |
#8 12.10.2019 11:52:34
Помогите составить формулу из 2ух. Значит есть 2 формулы
Мне нужно сделать так чтобы при нажатии на стрелочку вправо можно было попасть на стрелочку влево, в которой тоже есть формула, которая ведёт влево и при этом можно было добавлять столбики между формулами и переключение всё равно будет происходить по ячейкам с формулами. Я загружу файл, для вертикальных я сделал а для горизонтальных не получается добавляешь столбики и приходится каждый раз править все формулы. Прикрепленные файлы
|
||||
buchlotnik Пользователь Сообщений: 3863 Excel 365 Бета-канал |
Tosyan12, а какое отношение этот вопрос имеет к заявленной теме? Соблюдение правил форума не освобождает от модераторского произвола |
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
Мало того, что никакого, так автор даже не соизволил ответить помогающим — подошли решения или нет? |
Tosyan12 Пользователь Сообщений: 117 |
Нет поэтому я спрашиваю как вернуть букву столбца совместив 2 формулы |
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
#12 12.10.2019 12:00:54 Как вернуть букву — Вам показали, а теперь начинается
Создавайте новую тему про «стрелочки». А в этой теме неплохо бы поблагодарить тех, кто Вам помогал. |
||
Tosyan12 Пользователь Сообщений: 117 |
#13 12.10.2019 12:29:54
Я уже создал 2 и никак, я думал картинки вставить, но тут ограничения на них, создам тогда 3юю тему про стрелочки, я снял видео на фотоаппарат я его в ютуб загружу там я показал что куда оно там стрикает и переходит. |
||
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
Не нужна третья: у Вас уже есть тема про переход между столбцами. |
БМВ Модератор Сообщений: 21376 Excel 2013, 2016 |
Tosyan12, для стрелочек, галочек, людочек изучите возможности функции адрес и на этом все. По вопросам из тем форума, личку не читаю. |
Tosyan12 Пользователь Сообщений: 117 |
#16 12.10.2019 14:43:06
Ну да возможно близко хожу но мозгов не хватает с этим экселем. Я хочу сделать вот такой эффект https://www.youtube.com/watch?v=So3DBadKLdU&feature=youtu.be |
||
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
Tosyan12, забудьте, что существует кнопка цитирования — она не для Вас. Вы не умеете пользоваться этой кнопкой или не знаете, что такое цитата. |
Tosyan12 Пользователь Сообщений: 117 |
#18 12.10.2019 14:52:19
Человек мне намекнул про функцию АДРЕС(), я с ней экспериментировал, я написал ответ человеку что не хватает мозгов её применить в моей ситуации |
||
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
|
vikttur Пользователь Сообщений: 47199 |
#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!
Содержание
- Как получить текущее имя столбца в Excel?
- 16 ответов 16
- Преобразование чисел столбцов Excel в алфавитные символы
- Введение
- Дополнительная информация
- Excel формула столбец буквой
- Как преобразовать букву столбца в число или наоборот в Excel?
- Преобразуйте букву столбца в число или наоборот с помощью формул
- Преобразование буквы столбца в число или наоборот с помощью функции, определяемой пользователем
- Лучшие инструменты для работы в офисе
- Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
- Вкладка 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 работает с помощью следующего алгоритма:
- Введите iCol номер столбца. Остановите, iCol если значение меньше 1.
- Вычисляет частное и остаток от деления на (iCol — 1) 26 и сохраняется в переменных a и b .
- Преобразуйте b целочисленное значение в соответствующий алфавитный символ (0 => A, 25 => Z) и включите его в начале результирующей строки.
- Задайте 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 как строка
Источник
Формула определения буквы столбца через опред. интервал |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
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
22.8k27 gold badges122 silver badges219 bronze badges
answered Oct 9, 2012 at 9:44
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
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
2
- For example:
MsgBox Columns( 9347 ).Address
returns .
To return ONLY the column letter(s): Split((Columns(
Column Index
).Address(,0)),":")(0)
- For example:
MsgBox Split((Columns( 2734 ).Address(,0)),":")(0)
returns .
answered Mar 30, 2018 at 15:22
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 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
22.8k27 gold badges122 silver badges219 bronze badges
answered May 23, 2014 at 15:22
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 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
22.8k27 gold badges122 silver badges219 bronze badges
answered Feb 4, 2015 at 16:18
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
22.8k27 gold badges122 silver badges219 bronze badges
answered Feb 17, 2014 at 3:29
1
This is a function based on @DamienFennelly’s answer above. If you give me a thumbs up, give him a thumbs up too!
Function outColLetterFromNumber(iCol as Integer) as String
sAddr = Cells(1, iCol).Address
aSplit = Split(sAddr, "$")
outColLetterFromNumber = aSplit(1)
End Function
Stevoisiak
22.8k27 gold badges122 silver badges219 bronze badges
answered Mar 20, 2014 at 18:43
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
29.8k10 gold badges100 silver badges140 bronze badges
answered Jul 29, 2014 at 12:39
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 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
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
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
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 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
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
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
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
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
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
answered Feb 4, 2016 at 11:16
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 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
131k46 gold badges330 silver badges415 bronze badges
answered Mar 19, 2016 at 17:02
answered Mar 30, 2016 at 9:31
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
0
Вы когда-нибудь пытались получить букву строки или столбца текущей ячейки в Excel, как показано ниже? Здесь я ввожу несколько формул для быстрого получения буквы строки или буквы столбца активной ячейки.
Получить букву строки или столбца текущей ячейки
Получить букву строки или столбца текущей ячейки
Получить букву строки текущей ячейки
Скопируйте одну из следующих формул, вставьте ее в активную ячейку и нажмите клавишу Enter, чтобы получить относительную букву.
= СИМВОЛ (СТРОКА () + 64)
= ЛЕВЫЙ (АДРЕС (1; СТРОКА (); 2); 1 + (СТРОКА ()> 26))
Получить букву столбца текущей ячейки
Скопируйте одну из следующих формул, вставьте ее в активную ячейку и нажмите клавишу Enter, чтобы получить относительную букву.
= СИМВОЛ (КОЛОНКА () + 64)
= ЛЕВЫЙ (АДРЕС (1; КОЛОНКА (); 2); 1 + (КОЛОНКА ()> 26))
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка 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)
Ячейка, на которую ссылается вызов функции, является ячейкой ( любая ячейка) в столбце, букву которого вы хотите узнать. Функция находит этот адрес для этой ячейки и удаляет все, кроме обозначения столбца. Возвращается текстовая строка, состоящая из обозначения столбца.