Alxb82 Пользователь Сообщений: 6 |
Здравствуйте. Подскажите пожалуйста, как, не используя VBS определить буквенное имя столбца ячейки. Решено: Изменено: Alxb82 — 13.10.2014 19:56:07 |
The_Prist Пользователь Сообщений: 14181 Профессиональная разработка приложений для 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 Пользователь Сообщений: 14181 Профессиональная разработка приложений для 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 Видимо, самое элегантное решение это:
где из строки адреса «строкастолбец» просто удаляется «строка» и остается «столбец».
тоже абсолютно рабочий вариант решения. |
||||
Содержание
- Как получить текущее имя столбца в Excel?
- 16 ответов 16
- Как получить текущее имя столбца в Excel?
- Excel получить имена столбцов
- Как перечислить имена заголовков столбцов в Excel?
- Список имен заголовков столбцов с помощью специальной команды «Вставить»
- Перечислите и найдите имена заголовков столбцов с помощью Kutools for Excel
- Excel получить имена столбцов
- Как получить текущее имя столбца в Excel?
Как получить текущее имя столбца в 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?
Какова функция для получения текущего номера строки и текущего имени столбца для ячейки в Excel?
Вы можете использовать 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 получить имена столбцов
Как перечислить имена заголовков столбцов в Excel?
Когда слишком много столбцов переполняются на нескольких страницах в Excel, вам нужно прокручивать влево и вправо, чтобы просмотреть и найти имена заголовков столбцов. Вы можете подумать о любых простых способах просмотра и поиска имен заголовков столбцов. Собственно, есть несколько уловок, чтобы с этим легко справиться.
Список имен заголовков столбцов с помощью специальной команды «Вставить»
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
Microsoft Excel Специальная вставка команда может транспонировать строку в столбец. Поэтому, если вы хотите сразу просмотреть все имена столбцов без прокрутки, вы можете попытаться транспонировать строку, содержащую имена заголовков столбцов, в столбец.
Шаг 1: Выберите строку, содержащую имена заголовков столбцов.
Шаг 2: Скопируйте эту строку.
Шаг 3. В пустой области щелкните правой кнопкой мыши и выберите транспонировать кнопка
Затем вы увидите, что все имена заголовков столбцов скопированы и вставлены в один столбец. Смотрите скриншот:
Однако этот способ помогает только быстро просматривать имена заголовков столбцов, но не позволяет перемещаться и находить их.
Перечислите и найдите имена заголовков столбцов с помощью Kutools for Excel
Вот еще один простой способ с надстройкой третьей части, Kutools for Excel, его Область переходов Инструмент может отображать все имена книг и листов, имена заголовков столбцов и имена диапазонов на добавленной панели.
Kutools for Excel включает более 300 удобных инструментов Excel. Бесплатная пробная версия без ограничений в течение 30 дней. Получить сейчас.
Просто нажмите Область переходов под Кутулс Tab, и он отображает Панель навигации слева. Под Колонка Tab, в нем перечислены все имена заголовков столбцов.
Внимание: Если щелкнуть имя столбца в панели навигации, она найдет ячейку, содержащую имя заголовка столбца, как можно скорее. Эта утилита отображает только заголовки всех столбцов текущего рабочего листа. Нажмите здесь, чтобы узнать больше об этой функции.
Источник
Excel получить имена столбцов
Добрый день уважаемые форумчане!
Опыт написания каких либо макросов на VBA у меня очень маленький (редко возникает необходимость) по этому сильно не пинайте.
Вопрос вот в чем. Надо перенести в пределах одной книги с одного листа (таблицы) на другой некие данные.
Понятное дело пользователь может наплодить в таблице своих столбцов и тогда жесткая привязка к определенным ячейкам сломает всю таблицу.
Выход из положения вижу один. Присвоил диапазонам ячеек в столбце определенные имена. Но вот как воспользоваться никак не могу понять.
Сейчас делаю вот так:
На листе «График» есть столбец, в нем части ячеек из таблицы присвоено имя (Например «Расход» =График!$Y$9:$Y$1895).
Как вытащить из этого имени номер/имя столбца?
[moder]Прочитайте Правила форума
Приложите пример в Excel
Добрый день уважаемые форумчане!
Опыт написания каких либо макросов на VBA у меня очень маленький (редко возникает необходимость) по этому сильно не пинайте.
Вопрос вот в чем. Надо перенести в пределах одной книги с одного листа (таблицы) на другой некие данные.
Понятное дело пользователь может наплодить в таблице своих столбцов и тогда жесткая привязка к определенным ячейкам сломает всю таблицу.
Выход из положения вижу один. Присвоил диапазонам ячеек в столбце определенные имена. Но вот как воспользоваться никак не могу понять.
Сейчас делаю вот так:
На листе «График» есть столбец, в нем части ячеек из таблицы присвоено имя (Например «Расход» =График!$Y$9:$Y$1895).
Как вытащить из этого имени номер/имя столбца?
[moder]Прочитайте Правила форума
Приложите пример в Excel keeper
Сообщение Добрый день уважаемые форумчане!
Опыт написания каких либо макросов на VBA у меня очень маленький (редко возникает необходимость) по этому сильно не пинайте.
Вопрос вот в чем. Надо перенести в пределах одной книги с одного листа (таблицы) на другой некие данные.
Понятное дело пользователь может наплодить в таблице своих столбцов и тогда жесткая привязка к определенным ячейкам сломает всю таблицу.
Выход из положения вижу один. Присвоил диапазонам ячеек в столбце определенные имена. Но вот как воспользоваться никак не могу понять.
Сейчас делаю вот так:
На листе «График» есть столбец, в нем части ячеек из таблицы присвоено имя (Например «Расход» =График!$Y$9:$Y$1895).
Как вытащить из этого имени номер/имя столбца?
[moder]Прочитайте Правила форума
Приложите пример в Excel Автор — keeper
Дата добавления — 22.01.2015 в 09:24
Источник
Как получить текущее имя столбца в Excel?
Какова функция для получения текущего номера строки и текущего имени столбца для ячейки в Excel?
Вы можете использовать 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 ).
Источник
Вы можете использовать функции 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
).
I have several named columns on a sheet. I want to send the column number to a function that will return the column name.
For example, if column 1 is named «apple», I want to pass the column number 1 to a function that returns the column name «apple». My attempt:
Function getColName(colNumber As Integer) As String
'return column name when passed column number
getColName = Cells(1, colNumber).Column.Name
End Function
How can I get this code to work?
asked Feb 11, 2016 at 21:56
7
ColumnNumber = i 'where i need to be a integer number > 0 and <= 16,384
ColumnName = cells(1,i).Address(False, False)
The parameters inside Adress()
are related if the rows and columns references are going to be absolute or relatives. In this case above they’ll be relatives.
And it’s over. Simple like that.
answered Jan 14, 2022 at 13:40
Sub GetColumnNameFromRange()
Dim Colname As String
For Each cell In Selection.Cells
If cell.EntireColumn.Hidden = False Then
Colname = Mid(cell.Address, 2, Len(cell.Address) - (Len(cell.Row) + 2))
MsgBox Colname
End If
Next cell
End Sub
Adrian Mole
49.1k147 gold badges50 silver badges78 bronze badges
answered Sep 4, 2021 at 10:38
1
Dim ColAdr as String, ColNo as Long, ColName as String
Function ColName (ColNo as Long)
ColAdr = ThisWorkbook.Sheets("Sheet1").Cells(1, ColNo).Address(RowAbsolute:=True, ColumnAbsolute:=False)
ColName = Left(ColAdr, InStr(1, ColAdr, "$") - 1)
End function
answered Oct 5, 2021 at 23:00
1
If you need the column letter(s) from the index,
here’s a function I’ve written for that:
Function colNameOf(ByVal colindex As Long) As String
Dim overAlphabetic, charId As Long
charId = colindex Mod 26
colindex = colindex - charId
overAlphabetic = colindex / 26
If charId = 0 Then
charId = 26
overAlphabetic = overAlphabetic - 1
End If
Dim overAlphStr As String
overAlphStr = ""
If overAlphabetic > 0 Then
overAlphStr = colNameOf(overAlphabetic)
End If
Dim lastChar
lastChar = ChrW(charId + 64)
colNameOf = overAlphStr & lastChar
End Function
Note, that there is yet no error handling for values smaller than 1. In that case the function just returns any nonsense. DIY…
answered Aug 13, 2020 at 10:10
1
Еще одна статья по мотивам комментариев к статье «Конвертация числа в различные системы исчисления в 1С» (спасибо пользователю kuzyara).
Функции для получения имени и номера столбцов Excel в 1С.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
&НаКлиенте Функция ExcelColumnNameToNumber(тИмяКолонки) тЛатАлфавит = «ABCDEFGHIJKLMNOPQRSTUVWXYZ»; тДлинаНомера = СтрДлина(тИмяКолонки); тНомерКолонки = 0; Для тСчет = 1 По тДлинаНомера Цикл тПоз = Найти(тЛатАлфавит, Сред(тИмяКолонки, (тДлинаНомера + 1 — тСчет), 1)); тНомерКолонки = тНомерКолонки + тПоз * Pow(26, тСчет — 1); КонецЦикла; Возврат тНомерКолонки; КонецФункции &НаКлиенте Функция NumberToExcelColumnName(Знач тНомерКолонки) тЛатАлфавит = «ABCDEFGHIJKLMNOPQRSTUVWXYZ»; тИмяКолонки = «»; Пока тНомерКолонки > 0 Цикл тОстаток = (тНомерКолонки — 1)%26; тБуква = Сред(тЛатАлфавит, тОстаток + 1, 1); тИмяКолонки = тБуква + тИмяКолонки; тНомерКолонки = Цел((тНомерКолонки — тОстаток)/26); КонецЦикла; Возврат тИмяКолонки; КонецФункции |
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Загрузка…