Excel получить имена столбцов

 

Alxb82

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

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

Здравствуйте. Подскажите пожалуйста, как, не используя VBS определить буквенное имя столбца ячейки.
Есть ли функция возвращающая это имя?
В любую ячейку (например B2) ввожу формулу с этой функцией и распространяю ее на несколько (пусть 3) соседние в строке ячейки.
Ожидаю результат сооветствующий заголовкам столбцов этих ячеек, т.е.:

Решено:
вариант1: =ПОДСТАВИТЬ(АДРЕС(СТРОКА();СТОЛБЕЦ();4);СТРОКА(); «» )
вариант2: =ПСТР(АДРЕС(СТРОКА();СТОЛБЕЦ();1);2;ПОИСК( «$» ;АДРЕС(СТРОКА();СТОЛБЕЦ();1);2)-2)

Изменено: Alxb8213.10.2014 19:56:07
(Решено)

 

The_Prist

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

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

Профессиональная разработка приложений для MS Office

Не уверен, что нужно Вам именно имя столбца — ни одна функция не просит его. Номер — да. А номер можно узнать функцией СТОЛБЕЦ()

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Pelena

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

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

#3

13.10.2014 15:20:42

Если всё же нужна буква, то

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

Сергей

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

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

#4

13.10.2014 15:23:07

:D   дабы попадали все буквы типа АА

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

Лень двигатель прогресса, доказано!!!

 

Alxb82

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

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

Задача несколько сложнее обстоит. Решаю ее разбив на множество мелких. Это одна из них.
В функцию ДВССЫЛ(ссылка) можно передать ссылку в виде текстовых координат, например: ячейка с формулой =ДВССЫЛ(«B»&»2») будет ссылать на ячейку B2. Так вот эту «B» мне и нужно узнать на одном из этапов.

Изменено: Alxb8213.10.2014 15:25:30

 

Alxb82

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

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

Сергей, — точно, работает, то что нужно — сейчас буду разбираться как работает. Спасибо.
(дольше вопрос формулировал чем на него отвечали)

 

такую задачу решает другая формула =ДВССЫЛ(АДРЕС(2;2))
НЕ НУЖНО сначала искать букву второго столбца, если можно просто передать номер столбца в функцию АДРЕС с тем же успехом

 

Alxb82

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

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

Все верно, но требуется ввести адрес не номером столбца а его именем. В любом случае придется переводить что-то во что-то. Например если нужно ввести текстом (не указать мышкой) столбец с именем «DU». Не считать же какой он там по счету.

 

The_Prist

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

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

Профессиональная разработка приложений для MS Office

#9

13.10.2014 15:43:14

Цитата
Alxb82 пишет: Не считать же какой он там по счету

Что мешает указать ссылку на эту ячейку в СТОЛБЕЦ() ?
СТОЛБЕЦ(DU1)

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Alxb82

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

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

Мешает то, что я, на этапе «программирования» не знаю что это будет именно «DU». Это имя мне будет известно в процессе анализа заполненной таблицы. Я согласен что можно выкрутиться и этим способом (получить не имя а ссылку на ячейку) и в каком-то случае он будет оправдан, но в данный момент меня интересовало получить именно буквенное и только имя столбца. Спасибо.

Изменено: Alxb8213.10.2014 19:57:18

 

V

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

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

#11

13.10.2014 16:20:38

если озвучите всю задачу то возможно и ДВССЫЛ не понадобится. Хотя это уже другая тема.  ;)  
по теме такой вариант

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

Alxb82

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

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

#12

13.10.2014 19:18:07

Видимо, самое элегантное решение это:

Цитата
V пишет: =ПОДСТАВИТЬ(АДРЕС(СТРОКА();СТОЛБЕЦ();4);СТРОКА(); «» )

где из строки адреса «строкастолбец» просто удаляется «строка» и остается «столбец».
тем не менее:

Цитата
Сергей пишет: =ПСТР(АДРЕС(СТРОКА();СТОЛБЕЦ();1);2;ПОИСК( «$» ;АДРЕС(СТРОКА();СТОЛБЕЦ();1);2)-2)

тоже абсолютно рабочий вариант решения.
Всем спасибо за помощь.

Содержание

  1. Как получить текущее имя столбца в Excel?
  2. 16 ответов 16
  3. Как получить текущее имя столбца в Excel?
  4. Excel получить имена столбцов
  5. Как перечислить имена заголовков столбцов в Excel?
  6. Список имен заголовков столбцов с помощью специальной команды «Вставить»
  7. Перечислите и найдите имена заголовков столбцов с помощью Kutools for Excel
  8. Excel получить имена столбцов
  9. Как получить текущее имя столбца в 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?

Community's user avatar

asked Feb 11, 2016 at 21:56

jmaz's user avatar

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

Pedro Albert's user avatar

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's user avatar

Adrian Mole

49.1k147 gold badges50 silver badges78 bronze badges

answered Sep 4, 2021 at 10:38

Pankaj Shakya's user avatar

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

Bülent Çakar's user avatar

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

PyeDraX's user avatar

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.

Загрузка…

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel получить значение ячейки по адресу с другого листа
  • Excel получить текст до символа
  • Excel последняя буква в слове
  • Excel получить значение фильтра
  • Excel получить таблицу по имени

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии