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

Главная категория => Calc => Тема начата: лена89 от 9 сентября 2021, 15:31

Название: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: лена89 от 9 сентября 2021, 15:31
Добрый вечер, уважаемые знатоки LibreOffice!

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

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

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

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

 
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: sokol92 от 9 сентября 2021, 15:53
Здравствуйте! Задача вычисления имени (не номера) столбца возникает редко.
Можно так (источник (https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=60591&TITLE_SEO=60591-imya-stolbtsa-tekushchey-yacheyki-kak-uznat&MID=507474#message507474)):

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

Или с той же идеей:
=SUBSTITUTE(ADDRESS(1;COLUMN(B1);4);1;)
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: bigor от 9 сентября 2021, 15:57
У меня монстроознее :)
=LEFT(SUBSTITUTE(CELL("address");"$";"");LEN(CELL("address"))-2-LEN(ROW()))
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: лена89 от 9 сентября 2021, 16:02
Цитата: sokol92 от  9 сентября 2021, 15:53
Здравствуйте! Задача вычисления имени (не номера) столбца возникает редко.
Можно так (источник (https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=60591&TITLE_SEO=60591-imya-stolbtsa-tekushchey-yacheyki-kak-uznat&MID=507474#message507474)):

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

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


Бог мой! Да вы просто ГЕНИЙ! Вы даже не представляете, что Вы сделали для меня, я же сидела пол дня буквы меняла. СПАСИБО ОГРОМНОЕ!
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: sokol92 от 9 сентября 2021, 16:05
Цитата: лена89 от  9 сентября 2021, 16:02Да вы просто ГЕНИЙ
Жаль, что дал ссылку в ответе #1.  8-)
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: лена89 от 9 сентября 2021, 16:08
Цитата: sokol92 от  9 сентября 2021, 16:05
Цитата: лена89 от  9 сентября 2021, 16:02Да вы просто ГЕНИЙ
Жаль, что дал ссылку в ответе #1.  8-)

Я бы там все-равно ничего не поняла, там же Эксель, на русском команды, а я уже в Экселе не соображаю ничего) Так что, для меня Вы ГЕНИЙ и СПАСИТЕЛЬ!  Спасибо ещё раз огромное!
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: rami от 9 сентября 2021, 16:26
Получить буквенное имя столбца текущей ячейки (в LibreOffice 6.2 и новее):
=REGEX(CELL("ADDRESS");"[:alpha:]")
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: лена89 от 9 сентября 2021, 16:41
Цитата: rami от  9 сентября 2021, 16:26
Получить буквенное имя столбца текущей ячейки (в LibreOffice 6.2 и новее):
=REGEX(CELL("ADDRESS");"[:alpha:]")

Класс! Тут даже не надо изначально определять имя столбца) Само ставится) СПАСИБО ОГРОМНОЕ!
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: sokol92 от 9 сентября 2021, 17:32
Справочно. Функция CELL c параметром "ADDRESS" в Calc не является волатильной (более точно здесь (https://ask.libreoffice.org/t/other-volatile-functions-besides-rand-and-randbetween/55411/7)). В Excel волатильность функции CELL зависит от параметра (https://docs.microsoft.com/en-us/office/client-developer/excel/excel-recalculation#volatile-and-non-volatile-functions). Опытным путем проверил, что в Excel c параметром "ADDRESS" функция CELL волатильна (1:0 в этом раунде в пользу Calc).  :)
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: лена89 от 9 сентября 2021, 17:39
Цитата: sokol92 от  9 сентября 2021, 17:329

Да, вот кстати, почему-то на столбцах с двойными буквами , например AE  , не работает, если только тянуть от самого первого столбца B. А ваша формула работает в любом месте, правда, там нужно все-равно вручную буквы вставлять, но только один раз. Я думаю, что вот эта формула  =REGEX(CELL("ADDRESS");"[:alpha:]")
, может быть, не работает , потому что у меня очень много скрытых столбцов, но если я их открою, у меня будет простынь с километр.
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: mikekaganski от 9 сентября 2021, 17:47
Цитата: лена89 от  9 сентября 2021, 16:41
Цитата: rami от  9 сентября 2021, 16:26
Получить буквенное имя столбца текущей ячейки (в LibreOffice 6.2 и новее):
=REGEX(CELL("ADDRESS");"[:alpha:]")

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

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

=SUBSTITUTE(ADDRESS(1;COLUMN();4);1;)
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: лена89 от 9 сентября 2021, 17:54
Цитата: 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:]")

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

Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: sokol92 от 9 сентября 2021, 18:06
Да, конечно, формула в первом варианте выдает имя столбца, на который ссылается (а не в котором записана). Вторая формула выдает имя столбца, в котором записана. У функции CELL есть и второй параметр, в котором можно указать ячейку, на которую ссылается функция.
А что за проблема со скрытыми столбцами?

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

=REGEX(CELL("ADDRESS");"[:alpha:]+")
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: bigor от 9 сентября 2021, 18:13
Я думаю проблема не со скрытыми столбцами, а [:alpha:] возвращает только первую букву. Зря не хотите моего монстрика потестить :) Хотя =SUBSTITUTE(ADDRESS(1;COLUMN();4);1;) делает тоже и короче
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: лена89 от 9 сентября 2021, 18:15
Цитата: sokol92 от  9 сентября 2021, 18:06Да, конечно, формула в первом варианте выдает имя столбца, на который ссылается (а не в котором записана).

Ну, вот, я и говорю, что надо вручную прописать первоначально имя столбца, на который ссылаешься. Удобнее, по идее, вторая формула, но она у меня не работает. Я думаю, что это, возможно, из-за скрытых столбцов. Скрытые столбцы, это рабочие массивы, в которых все автоматически меняется и считается, и их можно закрыть и не заглядывать туда, чтобы рабочее поле было обозримым. Это моя версия, что вторая формула не работает из-за скрытых столбцов. Может я и не права. А второй параметр во второй формуле, как я поняла  - это "[:alpha:]"  Но меня здесь смущают кавычки , будет ли меняться буква при смещении вправо?
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: sokol92 от 9 сентября 2021, 18:17
См. ответы #10 и #12.
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: лена89 от 9 сентября 2021, 18:18
Цитата: Bigor от  9 сентября 2021, 18:13
Я думаю проблема не со скрытыми столбцами, а [:alpha:] возвращает только первую букву. Зря не хотите моего монстрика потестить :) Хотя =SUBSTITUTE(ADDRESS(1;COLUMN();4);1;) делает тоже и короче

Сейчас попробую. В принципе, я уже решила задачу и все красиво сделала))) Но попробую и вашу, потому что хочется , чтобы - РАЗ и все встало само))) И ничего ручками не менять.
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: лена89 от 9 сентября 2021, 18:21
Цитата: sokol92 от  9 сентября 2021, 18:17
См. ответы #10 и #12.

Прелестно! Всё дело в маленьком плюсике))) И никакие столбцы, оказывается, не мешают))) БЛАГОДАРЮ)
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: mikekaganski от 9 сентября 2021, 18:26
Цитата: лена89 от  9 сентября 2021, 17:54
Цитата: mikekaganski от  9 сентября 2021, 17:47=SUBSTITUTE(ADDRESS(1;COLUMN(B1);4);1;)

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

А вы как такую цитату сделали? ;) Посмотрите внимательно, что за формула в ответе 10, и в чём отличие в цитате в ответе 11 ;) В этом и проблема.
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: лена89 от 9 сентября 2021, 18:37
Цитата: mikekaganski от  9 сентября 2021, 18:26
Цитата: лена89 от  9 сентября 2021, 17:54
Цитата: mikekaganski от  9 сентября 2021, 17:47=SUBSTITUTE(ADDRESS(1;COLUMN(B1);4);1;)

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

А вы как такую цитату сделали? ;) Посмотрите внимательно, что за формула в ответе 10, и в чём отличие в цитате в ответе 11 ;) В этом и проблема.

Да уж. Невнимательность моя. :))) С ума сойти - столько формул, оказывается. И эта формула все ставит как надо) Вероятнее я не сделала акцент на том, что необязательно мне нужен столбец В, а может понадобится любой другой столбец. Теперь всё великолепно! Боже, а я мучалась  с месяц точно, меняла буквы. Просто раньше не так часто и много надо было менять. А сейчас понадобилось 288 столбцов - представьте, если бы я вам сюда не написала, и вы бы мне не помогли - я бы сидела меняла 288 столбцов. ))))) СПАСИБО ВСЕМ ОГРОМНОЕ! LibreOffice - это круто! У меня единственная проблема с ним - у меня он подвисает от массивных формул со скобками {} . пришлось от них отказаться, но они так хорошо помогают и так упрощают вычисления. Но, никак. Видимо у меня комп плохонький и памяти нет. Но это, видимо, уже другая тема и здесь обсуждать это нельзя. Я правила плохо знаю. Извините, если их нарушаю.
Название: Re: КАк поменять буквы столбца при сдвиге ячейки
Отправлено: kompilainenn от 10 сентября 2021, 00:09
Цитата: лена89 от  9 сентября 2021, 18:37Но это, видимо, уже другая тема и здесь обсуждать это нельзя
Можно и нужно. Просто в отдельной теме пишете, что вот такая формула массива вешает Либру и файл прикладываете. А гуру вам предложат что-нибудь взамен