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

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

22 Январь 2022, 19:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Заменить первый пробел в строке слева  (Прочитано 296 раз)
0 Пользователей и 1 Гость смотрят эту тему.
radius
Форумчанин
***
Offline Offline

Сообщений: 67


« Стартовое сообщение: 6 Январь 2022, 22:36 »

Всем привет.
Нужна формула, заменяющая первый (слева) пробел в строке на символ #
Все строки выглядят примерно так:
1-1 слово слово1 слово2
12-1 текст слово1 слово2
72-34 слово слово1 слово2
3-12 2222 текст слово1 слово2
Заранее благодарен.
« Последнее редактирование: 6 Январь 2022, 23:07 от radius » Записан
eeigor
Опытный пользователь
***
Offline Offline

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



« Ответ #1: 7 Январь 2022, 08:33 »

С Рождеством!
Вот только пробела слева в примере не видно. Он есть в каждой строке и обязательно один, или его нужно сначала найти?
А то вот так:
    A2: =" 1-1 слово слово1 слово2"
    B2: ="#"&MID(A2;2;255)
MID (ПСТР)
Как выглядят ваши строки после преобразования, и что значит "примерно"? Есть исключения?

Попробую угадать (см. пример в файле).
В том числе дан вариант на любое количество пробелов слева или их полное отсутствие.
Первым символом тогда будет всегда решётка:
    B5: =REGEX(A5;"^ *";"#")

Файл прилагается.

* Пример с подстановкой решётки.ods (11.98 Кб - загружено 1 раз.)
« Последнее редактирование: 7 Январь 2022, 11:10 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.4.1 Community
radius
Форумчанин
***
Offline Offline

Сообщений: 67


« Ответ #2: 7 Январь 2022, 09:37 »

Прошу прощения, результат после преобразования должен быть таким:
1-1#слово слово1 слово2
12-1#текст слово1 слово2
72-34#слово слово1 слово2
3-12#2222 текст слово1 слово2

Пробелов в строке может быть несколько (два подряд не встречаются), в первой позиции нет пробела никогда, под первым слева пробелом я имею ввиду следующее -

Код:
1-1[первый пробел]слово[второй пробел]слово1[третий пробел]слово2
12-1[первый пробел]текст[второй пробел]слово1[третий пробел]слово2
72-34[первый пробел]слово[второй пробел]слово1[третий пробел]слово2
3-12[первый пробел]2222[второй пробел]текст[третий пробел]слово1[четвертый пробел]слово2
« Последнее редактирование: 7 Январь 2022, 09:51 от mikekaganski » Записан
radius
Форумчанин
***
Offline Offline

Сообщений: 67


« Ответ #3: 7 Январь 2022, 09:39 »

Код:
12-1[первый пробел]текст[второй пробел]слово1[третий пробел]слово2
72-34[первый пробел]слово[второй пробел]слово1[третий пробел]слово2
3-12[первый пробел]2222[второй пробел]текст[третий пробел]слово1[четвертый пробел]слово2

* Пример.ods (13.12 Кб - загружено 2 раз.)
« Последнее редактирование: 7 Январь 2022, 09:51 от mikekaganski » Записан
mikekaganski
Гуру
*******
Offline Offline

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


« Ответ #4: 7 Январь 2022, 09:55 »

Код:
=REGEX(A1;"^([^ ]*) ";"$1#")
Записан

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

Сообщений: 67


« Ответ #5: 7 Январь 2022, 10:10 »

Огромное спасибо всем ответившим! Вопрос закрыт.
С рождеством!
Записан
mikekaganski
Гуру
*******
Offline Offline

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


« Ответ #6: 7 Январь 2022, 10:17 »

На самом деле REGEX заменяет первое вхождение искомого, если не указан четвёртый аргумент "g". Поэтому подойдёт и упрощённая формула:

Код:
=REGEX(A1;" ";"#")
Записан

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

Сообщений: 67


« Ответ #7: 7 Январь 2022, 10:58 »

=SUBSTITUTE(A4;" ";"#";1)
вроде бы тоже работает.
Записан
eeigor
Опытный пользователь
***
Offline Offline

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



« Ответ #8: 7 Январь 2022, 11:06 »

Разумеется. Потому что Вы разъяснили ситуацию, и она проста.
Но вариант Михаила – это шаг вперёд к регулярным выражениям и мастерству. Много чего надо почитать, но оно того стоит…

И наконец, мне по вкусу то, что короче. То и лучше.

UPD:
Но ваш вариант подойдёт для открытия в MS Excel, если это важно.
« Последнее редактирование: 7 Январь 2022, 11:16 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.4.1 Community
mikekaganski
Гуру
*******
Offline Offline

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


« Ответ #9: 7 Январь 2022, 11:29 »

=SUBSTITUTE(A4;" ";"#";1)
вроде бы тоже работает.

И к тому же быстрее. Регулярки гораздо мощнее, но значительно медленнее.
Записан

С уважением,
Михаил Каганский
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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