КАк поменять буквы столбца при сдвиге ячейки

Автор лена89, 9 сентября 2021, 15:31

0 Пользователи и 1 гость просматривают эту тему.

лена89

Добрый вечер, уважаемые знатоки LibreOffice!

Долго мучилась данным вопросом , перерыла а инете массу инфы, и снова пришла к вам. Вы - последняя инстанция.  И вопрос-то какой-то, вот чувствую, простой.

Есть к примеру,  формула такого вида  в столбце B: ="B"&$F$131 

Мне надо перенести её в столбец С, но при этом, чтобы автоматически поменялась буква В на букву С. ="С"&$F$131
Но при переносе так и остается буква В.
Возможно есть аналог такой же формулы, но чтобы первая буква при сдвиге менялась на букву столбца или как-то эту можно модифицировать? Дело в том, что у меня 60 таких столбцов. И рядом надо поставить ещё 60 таких же. Приходится в каждом новом столбце менять букву вручную. Очень прошу подсказать - иначе у меня закипят мозги))) 

Не знаю, нужно ли здесь прилагать файл?

 

sokol92

#1
Здравствуйте! Задача вычисления имени (не номера) столбца возникает редко.
Можно так (источник):

=SUBSTITUTE(ADDRESS(ROW(B1); COLUMN(B1);4); ROW(B1);)

Или с той же идеей:
=SUBSTITUTE(ADDRESS(1;COLUMN(B1);4);1;)
Владимир.

bigor

У меня монстроознее :)
=LEFT(SUBSTITUTE(CELL("address");"$";"");LEN(CELL("address"))-2-LEN(ROW()))
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

лена89

Цитата: sokol92 от  9 сентября 2021, 15:53
Здравствуйте! Задача вычисления имени (не номера) столбца возникает редко.
Можно так (источник):

=SUBSTITUTE(ADDRESS(ROW(B1); COLUMN(B1);4); ROW(B1);)

Или с той же идеей:
=SUBSTITUTE(ADDRESS(1;COLUMN(B1);4);1;)


Бог мой! Да вы просто ГЕНИЙ! Вы даже не представляете, что Вы сделали для меня, я же сидела пол дня буквы меняла. СПАСИБО ОГРОМНОЕ!

sokol92

Владимир.

лена89

Цитата: sokol92 от  9 сентября 2021, 16:05
Цитата: лена89 от  9 сентября 2021, 16:02Да вы просто ГЕНИЙ
Жаль, что дал ссылку в ответе #1.  8-)

Я бы там все-равно ничего не поняла, там же Эксель, на русском команды, а я уже в Экселе не соображаю ничего) Так что, для меня Вы ГЕНИЙ и СПАСИТЕЛЬ!  Спасибо ещё раз огромное!

rami

Получить буквенное имя столбца текущей ячейки (в LibreOffice 6.2 и новее):
=REGEX(CELL("ADDRESS");"[:alpha:]")

лена89

Цитата: rami от  9 сентября 2021, 16:26
Получить буквенное имя столбца текущей ячейки (в LibreOffice 6.2 и новее):
=REGEX(CELL("ADDRESS");"[:alpha:]")

Класс! Тут даже не надо изначально определять имя столбца) Само ставится) СПАСИБО ОГРОМНОЕ!

sokol92

Справочно. Функция CELL c параметром "ADDRESS" в Calc не является волатильной (более точно здесь). В Excel волатильность функции CELL зависит от параметра. Опытным путем проверил, что в Excel c параметром "ADDRESS" функция CELL волатильна (1:0 в этом раунде в пользу Calc).  :)
Владимир.

лена89

Цитата: sokol92 от  9 сентября 2021, 17:329

Да, вот кстати, почему-то на столбцах с двойными буквами , например AE  , не работает, если только тянуть от самого первого столбца B. А ваша формула работает в любом месте, правда, там нужно все-равно вручную буквы вставлять, но только один раз. Я думаю, что вот эта формула  =REGEX(CELL("ADDRESS");"[:alpha:]")
, может быть, не работает , потому что у меня очень много скрытых столбцов, но если я их открою, у меня будет простынь с километр.

mikekaganski

Цитата: лена89 от  9 сентября 2021, 16:41
Цитата: rami от  9 сентября 2021, 16:26
Получить буквенное имя столбца текущей ячейки (в LibreOffice 6.2 и новее):
=REGEX(CELL("ADDRESS");"[:alpha:]")

Класс! Тут даже не надо изначально определять имя столбца) Само ставится) СПАСИБО ОГРОМНОЕ!

В случае COLUMN тоже не надо - по умолчанию возвращает текущий столбец:

=SUBSTITUTE(ADDRESS(1;COLUMN();4);1;)
С уважением,
Михаил Каганский

лена89

#11
Цитата: mikekaganski от  9 сентября 2021, 17:47=SUBSTITUTE(ADDRESS(1;COLUMN(B1);4);1;)

А у меня почему-то не получается, вот сейчас пытаюсь поставить в столбец  АЕ  формулу =SUBSTITUTE(ADDRESS(1;COLUMN(B1);4);1;)    И у меня ставится не АЕ , а столбец B . Но если я в формуле меняю (В1) на (AE1) , то все ставится, и переносится на соседние ячейки тоже шикарно. А в этой формуле непонятно что менять =REGEX(CELL("ADDRESS");"[:alpha:]")

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


sokol92

#12
Да, конечно, формула в первом варианте выдает имя столбца, на который ссылается (а не в котором записана). Вторая формула выдает имя столбца, в котором записана. У функции CELL есть и второй параметр, в котором можно указать ячейку, на которую ссылается функция.
А что за проблема со скрытыми столбцами?

Во второй формуле лучше так (c учетом столбцов, у которых больше одной буквы в имени):

=REGEX(CELL("ADDRESS");"[:alpha:]+")
Владимир.

bigor

#13
Я думаю проблема не со скрытыми столбцами, а [:alpha:] возвращает только первую букву. Зря не хотите моего монстрика потестить :) Хотя =SUBSTITUTE(ADDRESS(1;COLUMN();4);1;) делает тоже и короче
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

лена89

Цитата: sokol92 от  9 сентября 2021, 18:06Да, конечно, формула в первом варианте выдает имя столбца, на который ссылается (а не в котором записана).

Ну, вот, я и говорю, что надо вручную прописать первоначально имя столбца, на который ссылаешься. Удобнее, по идее, вторая формула, но она у меня не работает. Я думаю, что это, возможно, из-за скрытых столбцов. Скрытые столбцы, это рабочие массивы, в которых все автоматически меняется и считается, и их можно закрыть и не заглядывать туда, чтобы рабочее поле было обозримым. Это моя версия, что вторая формула не работает из-за скрытых столбцов. Может я и не права. А второй параметр во второй формуле, как я поняла  - это "[:alpha:]"  Но меня здесь смущают кавычки , будет ли меняться буква при смещении вправо?