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

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

30 Июль 2021, 16:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Сообщений: 19


« Стартовое сообщение: 2 Апрель 2021, 13:30 »

Всем привет. Такой вопрос возник, как соединяя ячейки формировать новые ячейки? Условно есть ячейка A1, в ней написано abc, и есть ячейки в столбце B, где идут, условно названия городов, по городу в каждой ячейке. Как можно приплюсовать, сделать так, чтобы в столбце C выводило сращение этих слов. Т.е. abcaustin, abcboston и т.д.

И еще отдельный вопрос, как можно генерировать строки с 3-6 символами из алфавита английского? Т.е. они будут генерировать все возможные комбинации букв, там abcd, aabd и так до полной генерации всех комбинаций. Возможно ли как-то это сделать в Calc?
Записан
kompilainenn
Мастер
*****
Offline Offline

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



« Ответ #1: 2 Апрель 2021, 14:00 »

в ячейке С1 пишем

=A1&B1

И еще отдельный вопрос, как можно генерировать строки с 3-6 символами из алфавита английского? Т.е. они будут генерировать все возможные комбинации букв, там abcd, aabd и так до полной генерации всех комбинаций. Возможно ли как-то это сделать в Calc?

макросом
Записан

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

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


WWW
« Ответ #2: 2 Апрель 2021, 14:04 »

 Первый вопрос. Занесите в ячейку C1

=$A$1 & B1

и тяните вниз.

Второй вопрос. Занестите в ячейку A1 (английские имена функций)

=CHAR(CODE("a")+MOD(INT((ROW(A1)+26*26*26-1)/26/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(A1)+26*26-1)/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(A1)+25)/26)-1;26)) & CHAR(CODE("a")+MOD(ROW(A1)-1;26))

и тяните вниз (до строки 456976 Смеющийся ). Или сразу выделите A1:A456976 (наберите A1:A456976 в строке имен), занесите формулу (в строку формул) и нажмите Alt+Enter. Секунд 30 придется подождать. Контроль: в ячейке A456976 должно быть значение "zzzz".
 

« Последнее редактирование: 2 Апрель 2021, 14:10 от sokol92 » Записан

Владимир.
Mric
Участник
**
Offline Offline

Сообщений: 19


« Ответ #3: 2 Апрель 2021, 14:16 »

Первый вопрос. Занесите в ячейку C1

=$A$1 & B1

и тяните вниз.

Второй вопрос. Занестите в ячейку A1 (английские имена функций)

=CHAR(CODE("a")+MOD(INT((ROW(A1)+26*26*26-1)/26/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(A1)+26*26-1)/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(A1)+25)/26)-1;26)) & CHAR(CODE("a")+MOD(ROW(A1)-1;26))

и тяните вниз (до строки 456976 Смеющийся ). Или сразу выделите A1:A456976 (наберите A1:A456976 в строке имен), занесите формулу (в строку формул) и нажмите Alt+Enter. Секунд 30 придется подождать. Контроль: в ячейке A456976 должно быть значение "zzzz".
 



Спасибо, все работает! =)
Записан
Mric
Участник
**
Offline Offline

Сообщений: 19


« Ответ #4: 14 Апрель 2021, 13:30 »

Первый вопрос. Занесите в ячейку C1

=$A$1 & B1

и тяните вниз.

Второй вопрос. Занестите в ячейку A1 (английские имена функций)

=CHAR(CODE("a")+MOD(INT((ROW(A1)+26*26*26-1)/26/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(A1)+26*26-1)/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(A1)+25)/26)-1;26)) & CHAR(CODE("a")+MOD(ROW(A1)-1;26))

и тяните вниз (до строки 456976 Смеющийся ). Или сразу выделите A1:A456976 (наберите A1:A456976 в строке имен), занесите формулу (в строку формул) и нажмите Alt+Enter. Секунд 30 придется подождать. Контроль: в ячейке A456976 должно быть значение "zzzz".
 



А как сделать для 3х символов тоже самое, я про второй вопрос?
Записан
sokol92
Форумчанин
***
Offline Offline

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


WWW
« Ответ #5: 14 Апрель 2021, 15:36 »

Обрезать первую часть формулы:  Улыбка

=CHAR(CODE("a")+MOD(INT((ROW(A1)+26*26-1)/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(A1)+25)/26)-1;26)) & CHAR(CODE("a")+MOD(ROW(A1)-1;26))

"Тянуть" до строки 17576 (26*26*26), затем значения начнут повторяться.
« Последнее редактирование: 14 Апрель 2021, 15:40 от sokol92 » Записан

Владимир.
Mric
Участник
**
Offline Offline

Сообщений: 19


« Ответ #6: 15 Апрель 2021, 00:27 »

Обрезать первую часть формулы:  Улыбка

=CHAR(CODE("a")+MOD(INT((ROW(A1)+26*26-1)/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(A1)+25)/26)-1;26)) & CHAR(CODE("a")+MOD(ROW(A1)-1;26))

"Тянуть" до строки 17576 (26*26*26), затем значения начнут повторяться.

Спасибо!
Записан
Mric
Участник
**
Offline Offline

Сообщений: 19


« Ответ #7: 3 Июль 2021, 14:40 »

Второй вопрос. Занестите в ячейку A1 (английские имена функций)

=CHAR(CODE("a")+MOD(INT((ROW(A1)+26*26*26-1)/26/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(A1)+26*26-1)/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(A1)+25)/26)-1;26)) & CHAR(CODE("a")+MOD(ROW(A1)-1;26))

и тяните вниз (до строки 456976 Смеющийся ). Или сразу выделите A1:A456976 (наберите A1:A456976 в строке имен), занесите формулу (в строку формул) и нажмите Alt+Enter. Секунд 30 придется подождать. Контроль: в ячейке A456976 должно быть значение "zzzz".

А можете скинуть для 5 символов такое, чего-то я логику понять не могу?
Записан
Bigor
Мастер
*****
Offline Offline

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


« Ответ #8: 3 Июль 2021, 15:50 »

для 5 символов

Код:
=CHAR(CODE("a")+MOD(INT((ROW(B1)+26*26*26*26-1)/26/26/26/26)-1;26))&CHAR(CODE("a")+MOD(INT((ROW(B1)+26*26*26-1)/26/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(B1)+26*26-1)/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(B1)+25)/26)-1;26)) & CHAR(CODE("a")+MOD(ROW(B1)-1;26))
только у calc строк не хватит все комбинации вывести
Записан

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

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


WWW
« Ответ #9: 3 Июль 2021, 17:14 »

чего-то я логику понять не могу
Начните с 2 символов (остальное - аналогично).
Один из способов занумеровать все двухсимвольные комбинации строчных латинских букв такой:
aa, ab, ..., az (26 строк)
ba, bb, ..., bz (26 строк)
...
za, zb, ..., zz (26 строк)

Общее число строк: 26 * 26 (=676).

При таком способе нумерации значение второго символа повторяется через каждые 26 строк, то есть зависит от отстатка от деления номера строки (листа документа Calc) на 26.
Значение первого символа одинаково для каждой последовательной группы из 26 строк (считая с первой). Если бы строки нумеровались от 0, то для  достижения такого поведения необходимо было бы взять целую часть от деления номера строки на 26 и от этого числа взять остаток от деления на 26.

Записан

Владимир.
Mric
Участник
**
Offline Offline

Сообщений: 19


« Ответ #10: 5 Июль 2021, 12:35 »

для 5 символов

Код:
=CHAR(CODE("a")+MOD(INT((ROW(B1)+26*26*26*26-1)/26/26/26/26)-1;26))&CHAR(CODE("a")+MOD(INT((ROW(B1)+26*26*26-1)/26/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(B1)+26*26-1)/26/26)-1;26)) & CHAR(CODE("a")+MOD(INT((ROW(B1)+25)/26)-1;26)) & CHAR(CODE("a")+MOD(ROW(B1)-1;26))
только у calc строк не хватит все комбинации вывести

Большое спасибо, ничего, я все строки и не переберу=)
Записан
mikekaganski
Гуру
*******
Online Online

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


« Ответ #11: 5 Июль 2021, 12:46 »

только у calc строк не хватит все комбинации вывести
Строк хватит (если включить поддержку очень больших листов в последних версиях - нужно 11 881 376, а доступно 16 000 000), но уж на 6 и больше точно не хватит; да и на 5, я думаю, оно или займёт слишком много времени, либо упадёт.

Хотя нет, проверил - не упадёт, и займёт даже меньше часа Подмигивающий
« Последнее редактирование: 5 Июль 2021, 12:54 от mikekaganski » Записан

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

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


« Ответ #12: 5 Июль 2021, 13:29 »

Т.е. со стабильностью при включенной поддержке больших листов у LO все нормально стало?
Записан

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

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



« Ответ #13: 5 Июль 2021, 13:54 »

Т.е. со стабильностью при включенной поддержке больших листов у LO все нормально стало?
нет, просто данный конкретный кейс отработал=) повезло

Вот список уже имеющихся проблем

https://bugs.documentfoundation.org/showdependencytree.cgi?id=133764&hide_resolved=1

Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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