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

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

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

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 3 »   Вниз
  Печать  
Автор Тема: Объединение ячеек построчно  (Прочитано 1169 раз)
0 Пользователей и 1 Гость смотрят эту тему.
neg-56
Участник
**
Offline Offline

Сообщений: 13


« Стартовое сообщение: 24 Август 2021, 07:00 »

Можно ли выделить диапазон ячеек и объединить построчно а не в одну ячейку?
например
1 2 3
4 5 6
7 8 9

должно получиться три ячейки:
123
456
789
« Последнее редактирование: 24 Август 2021, 16:32 от Helen » Записан
eeigor
Форумчанин
***
Offline Offline

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



« Ответ #1: 24 Август 2021, 07:46 »

В соседнем столбце объедините построчно значения всех трёх ячеек в одну (при помощи функций CONCAT или TEXTJOIN), выделите, скопируйте и вставьте результат как значения. После этого можно удалить исходные столбцы.
« Последнее редактирование: 24 Август 2021, 07:56 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.0.2 Community
neg-56
Участник
**
Offline Offline

Сообщений: 13


« Ответ #2: 24 Август 2021, 09:42 »

Формула работает но не в моей кривой таблице есть
A  B C  D E
[1 2 3
[5 3 5 [4 4 5 5 5 5 5 5 [5 3 5
[5 6 6
Мне нужно объединить ячейки которые начинаются на [ но в строке могут быть несколько ячеек которые будут начинаться на "["
Например как в строке 2..и получается три объедения получится
Записан
eeigor
Форумчанин
***
Offline Offline

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



« Ответ #3: 24 Август 2021, 10:13 »

@neg-56, выражайтесь яснее. Информация от Вас поступает дозированно и не соответствует предыдущей.
В последнем сообщении неясно, что надо получить в итоге.
« Последнее редактирование: 24 Август 2021, 10:21 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.0.2 Community
kompilainenn
Мастер
*****
Online Online

Сообщений: 3 348



« Ответ #4: 24 Август 2021, 10:23 »

ТС хочет такую функцию, как есть в МС Эксель

Которой в ЛО нету https://bugs.documentfoundation.org/show_bug.cgi?id=137853


* Объединить по строкам.png (8.49 Кб, 351x247 - просмотрено 8 раз.)
« Последнее редактирование: 24 Август 2021, 10:27 от kompilainenn » Записан

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

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



« Ответ #5: 24 Август 2021, 10:48 »

Попробую угадать.
Если нужно объединить все ячейки построчно, но при условии, что значение включаемой ячейки начинается с "[", при этом сам символ "[" надо пропустить, то формула будет такой:

O1: {=TEXTJOIN("";1;IF(LEFT(A1:N1)="[";MID(A1:N1;2;99)))}

Формула вводится как формула массива в каждую строку (ячейку) отдельно.

Пояснение. Формула массива решает задачу "избавления" от проверок на "если начинается с [" для каждой ячейки строки. Иначе было бы очень много вложенных IF (по кол-ву ячеек), зато формула была бы понятней (в действительности, это неудобно).

Ваш пример приложен.

Edit: 99 – это максимальное кол-во символов в ячейке (в общем, "взять" всё до конца).

* test.ods (9.95 Кб - загружено 2 раз.)
« Последнее редактирование: 24 Август 2021, 11:27 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.0.2 Community
neg-56
Участник
**
Offline Offline

Сообщений: 13


« Ответ #6: 24 Август 2021, 11:36 »

Немного не так
Приложил файл
Все что начинает c "[ это начало
Если в строке будет 3 скобки [ соответствено я должен получить три значения из объеденных ячеек
Результаты в ячейках Q R S
символ "[" yt надо пропускать.Он начало

* test.ods (9.99 Кб - загружено 4 раз.)
« Последнее редактирование: 24 Август 2021, 11:39 от neg-56 » Записан
sokol92
Форумчанин
***
Offline Offline

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


WWW
« Ответ #7: 24 Август 2021, 12:24 »

Offtop. Объедение (Ожегов)  Улыбка
Записан

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

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


« Ответ #8: 24 Август 2021, 12:42 »

Немного не так
тогда первой формулой  или этой
Код:
=TEXTJOIN("";1;A1:N1)
объединяете все ячейки, вставляете как значения, затем получившийся столбец разбить "Текст по столбцам" разделитель [
« Последнее редактирование: 24 Август 2021, 12:45 от Bigor » Записан

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

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



« Ответ #9: 24 Август 2021, 13:11 »

Существенно то, что функция REGEX почему-то может заменять вхождение по номеру, но не может извлекать. И зачем объединили два параметра: Occurrence|Flags?

@Bigor, если "[" не сначала, то появляется лишний блок информации впереди.
« Последнее редактирование: 24 Август 2021, 14:02 от eeigor » Записан

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

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



« Ответ #10: 24 Август 2021, 13:24 »

@neg-56, сколько максимально "[" может быть, известно?
Данные вводятся не вручную, по-видимому… Это нельзя сделать при выводе информации на лист?
« Последнее редактирование: 24 Август 2021, 13:37 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.0.2 Community
neg-56
Участник
**
Offline Offline

Сообщений: 13


« Ответ #11: 24 Август 2021, 13:28 »

[
[ найдено 4125 по документу
Записан
mikekaganski
Гуру
*******
Online Online

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


« Ответ #12: 24 Август 2021, 13:28 »

Существенно то, что функция REGEX почему-то может заменять вхождение по номеру, но не может извлекать. И зачем объединили два параметра: Occurrence|Flags?

Совершенно непонятно, что имеется ввиду. Occurrence работает и для extract, и для replace. Flags релевантно только для replace, и его единственный определённый флаг "g" означает "заменить везде", что очевидно исключает Occurence.
Записан

С уважением,
Михаил Каганский
Bigor
Мастер
*****
Offline Offline

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


« Ответ #13: 24 Август 2021, 13:31 »

если "[" не сначала,
у ТС все начинается с [ , если условия опять поменяются тогда уже будем думать Улыбка
Записан

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

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



« Ответ #14: 24 Август 2021, 13:46 »

Да, я ошибся:
=REGEX("axbxcxd";".x";;2) returns "bx", the second match of ".x".

Тогда можно порекомендовать и такой вариант;
1. Объединить всё вместе.
    O1: =TEXTJOIN("";1;A1:N1)
2. Извлечь блоки цифр по номеру блока формулой:
    P1: =REGEX($O1;"(?<=\[)\d+";;1)
    Q1: =REGEX($O1;"(?<=\[)\d+";;2)
    R1: =REGEX($O1;"(?<=\[)\d+";;3)
и так далее…

Ну, или вот так (формулой массива):
    Для P1:R1
{=REGEX($O1;"(?<=\[)\d+";;{1;2;3})}

Edit:
Формулу массива надо вставить в строку 1 и скопировать её, выделить весь диапазон оставшихся строк и вставить формулу сразу во все строки. Там, где блоков информации будет меньше, отобразится #N/A.
Ошибку можно скрыть:
{=IFERROR(REGEX($O1;"(?<=\[)\d+";;{1;2;3});"")}


Edit:
Добавлен рабочий пример на 9 блоков.

* test2.ods (13.24 Кб - загружено 2 раз.)
« Последнее редактирование: 24 Август 2021, 14:31 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.0.2 Community
Страниц: 1 2 3 »   Вверх
  Печать  
 
Перейти в:  

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