Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

23 Сентябрь 2021, 14:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: КАк поменять буквы столбца при сдвиге ячейки  (Прочитано 588 раз)
0 Пользователей и 1 Гость смотрят эту тему.
лена89
Форумчанин
***
Offline Offline

Сообщений: 109



« Стартовое сообщение: 9 Сентябрь 2021, 15:31 »

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

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

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

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

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

 
Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 561


WWW
« Ответ #1: 9 Сентябрь 2021, 15:53 »

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

Код:
=SUBSTITUTE(ADDRESS(ROW(B1); COLUMN(B1);4); ROW(B1);)

Или с той же идеей:
Код:
=SUBSTITUTE(ADDRESS(1;COLUMN(B1);4);1;)
« Последнее редактирование: 9 Сентябрь 2021, 16:00 от sokol92 » Записан

Владимир.
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 171


« Ответ #2: 9 Сентябрь 2021, 15:57 »

У меня монстроознее Улыбка
Код:
=LEFT(SUBSTITUTE(CELL("address");"$";"");LEN(CELL("address"))-2-LEN(ROW()))
Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
лена89
Форумчанин
***
Offline Offline

Сообщений: 109



« Ответ #3: 9 Сентябрь 2021, 16:02 »

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

Код:
=SUBSTITUTE(ADDRESS(ROW(B1); COLUMN(B1);4); ROW(B1);)

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


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

Пол: Мужской
Сообщений: 561


WWW
« Ответ #4: 9 Сентябрь 2021, 16:05 »

Да вы просто ГЕНИЙ
Жаль, что дал ссылку в ответе #1.  Крутой
Записан

Владимир.
лена89
Форумчанин
***
Offline Offline

Сообщений: 109



« Ответ #5: 9 Сентябрь 2021, 16:08 »

Да вы просто ГЕНИЙ
Жаль, что дал ссылку в ответе #1.  Крутой

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

Пол: Мужской
Сообщений: 3 112


iMac, LibreOffice и Apache OpenOffice


« Ответ #6: 9 Сентябрь 2021, 16:26 »

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

лена89
Форумчанин
***
Offline Offline

Сообщений: 109



« Ответ #7: 9 Сентябрь 2021, 16:41 »

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

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

Пол: Мужской
Сообщений: 561


WWW
« Ответ #8: 9 Сентябрь 2021, 17:32 »

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

Владимир.
лена89
Форумчанин
***
Offline Offline

Сообщений: 109



« Ответ #9: 9 Сентябрь 2021, 17:39 »

9

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

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 309


« Ответ #10: 9 Сентябрь 2021, 17:47 »

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

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

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

Код:
=SUBSTITUTE(ADDRESS(1;COLUMN();4);1;)
Записан

С уважением,
Михаил Каганский
лена89
Форумчанин
***
Offline Offline

Сообщений: 109



« Ответ #11: 9 Сентябрь 2021, 17:54 »

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

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

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

« Последнее редактирование: 9 Сентябрь 2021, 17:56 от лена89 » Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 561


WWW
« Ответ #12: 9 Сентябрь 2021, 18:06 »

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

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

Код:
=REGEX(CELL("ADDRESS");"[:alpha:]+")
« Последнее редактирование: 9 Сентябрь 2021, 18:18 от sokol92 » Записан

Владимир.
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 171


« Ответ #13: 9 Сентябрь 2021, 18:13 »

Я думаю проблема не со скрытыми столбцами, а [:alpha:] возвращает только первую букву. Зря не хотите моего монстрика потестить Улыбка Хотя
Код:
=SUBSTITUTE(ADDRESS(1;COLUMN();4);1;)
делает тоже и короче
« Последнее редактирование: 9 Сентябрь 2021, 18:15 от Bigor » Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
лена89
Форумчанин
***
Offline Offline

Сообщений: 109



« Ответ #14: 9 Сентябрь 2021, 18:15 »

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

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

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!