Alxb82 Пользователь Сообщений: 6 |
Здравствуйте. Подскажите пожалуйста, как, не используя VBS определить буквенное имя столбца ячейки. Решено: Изменено: Alxb82 — 13.10.2014 19:56:07 |
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Не уверен, что нужно Вам именно имя столбца — ни одна функция не просит его. Номер — да. А номер можно узнать функцией СТОЛБЕЦ() Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Pelena Пользователь Сообщений: 1416 |
#3 13.10.2014 15:20:42 Если всё же нужна буква, то
|
||
Сергей Пользователь Сообщений: 11251 |
#4 13.10.2014 15:23:07
Лень двигатель прогресса, доказано!!! |
||
Alxb82 Пользователь Сообщений: 6 |
Задача несколько сложнее обстоит. Решаю ее разбив на множество мелких. Это одна из них. Изменено: Alxb82 — 13.10.2014 15:25:30 |
Alxb82 Пользователь Сообщений: 6 |
Сергей, — точно, работает, то что нужно — сейчас буду разбираться как работает. Спасибо. |
такую задачу решает другая формула =ДВССЫЛ(АДРЕС(2;2)) |
|
Alxb82 Пользователь Сообщений: 6 |
Все верно, но требуется ввести адрес не номером столбца а его именем. В любом случае придется переводить что-то во что-то. Например если нужно ввести текстом (не указать мышкой) столбец с именем «DU». Не считать же какой он там по счету. |
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#9 13.10.2014 15:43:14
Что мешает указать ссылку на эту ячейку в СТОЛБЕЦ() ? Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
Alxb82 Пользователь Сообщений: 6 |
Мешает то, что я, на этапе «программирования» не знаю что это будет именно «DU». Это имя мне будет известно в процессе анализа заполненной таблицы. Я согласен что можно выкрутиться и этим способом (получить не имя а ссылку на ячейку) и в каком-то случае он будет оправдан, но в данный момент меня интересовало получить именно буквенное и только имя столбца. Спасибо. Изменено: Alxb82 — 13.10.2014 19:57:18 |
V Пользователь Сообщений: 5018 |
#11 13.10.2014 16:20:38 если озвучите всю задачу то возможно и ДВССЫЛ не понадобится. Хотя это уже другая тема.
|
||
Alxb82 Пользователь Сообщений: 6 |
#12 13.10.2014 19:18:07 Видимо, самое элегантное решение это:
где из строки адреса «строкастолбец» просто удаляется «строка» и остается «столбец».
тоже абсолютно рабочий вариант решения. |
||||
Вы можете использовать функции 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
Однако это не будет работать с двухбуквенными столбцами. В этом случае вам потребуется следующая формула для правильного анализа двухбуквенных столбцов:
=IF(COLUMN()>26,IF(RIGHT(CHAR(IF(MOD(COLUMN()-1,26)=0,1,MOD(COLUMN()-1,26))+64),1)="Y",CHAR(INT((COLUMN()-1)/26)+64) & "Z",CHAR(INT((COLUMN()-1)/26)+64) & CHAR(IF(MOD(COLUMN(),26)=0,1,MOD(COLUMN(),26))+64)),CHAR(COLUMN()+64))&ROW()
Я не уверен, есть ли более простой способ сделать это или нет, но я знаю, что работает от ячейки A1
до ZZ99
без проблем. Однако это иллюстрирует, почему лучше избегать использования буквенных идентификаторов столбцов и придерживаться формул, основанных исключительно на числах (например, используя номер столбца вместо буквы с OFFSET
).
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, как показано ниже? Здесь я ввожу несколько формул для быстрого получения буквы строки или буквы столбца активной ячейки.
Получить букву строки или столбца текущей ячейки
Получить букву строки или столбца текущей ячейки
Получить букву строки текущей ячейки
Скопируйте одну из следующих формул, вставьте ее в активную ячейку и нажмите клавишу 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
Вернуть название столбца из таблицы |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить | ||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |