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

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

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

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 3 »   Вниз
  Печать  
Автор Тема: Множественная вставка в несмежные ячейки некоторой формулы  (Прочитано 1489 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
eeigor
Форумчанин
***
Offline Offline

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



« Стартовое сообщение: 22 Март 2021, 23:12 »

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

* Example03 (multiple insertion).ods (15.29 Кб - загружено 8 раз.)

* Снимок экрана от 2021-03-22 23-07-58.png (62.92 Кб, 607x444 - просмотрено 16 раз.)
« Последнее редактирование: 22 Март 2021, 23:17 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
kompilainenn
Мастер
*****
Offline Offline

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



« Ответ #1: 22 Март 2021, 23:22 »

В Эксель функция Заполнить->Вниз заполнит по умному ячейки. В ЛО такое не работает. Я сдаюсь и хочу ответ
Записан

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

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



« Ответ #2: 22 Март 2021, 23:28 »

@kompilainenn, дадим ещё немного времени до завтра.
Решение существует, и весьма неожиданное.
@sokol92 недавно подсказал тут способ написания чисел словами, существенно сократив объем кода...
А эту задачу мы дружно уже решали и написали много кода. Решение... подбираю слово... изумительное и без макросов. До завтра.
Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
Bigor
Мастер
*****
Offline Offline

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


« Ответ #3: 23 Март 2021, 08:20 »

Вариант с доп столбцом и формулами, я так понимаю не подходит Улыбка
Записан

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

Сообщений: 1 424


« Ответ #4: 23 Март 2021, 08:44 »

Тоже сдаюсь. В Python+Pandas под LO такая задача делается, имхо, максимально просто (миллион строк/сто столбцов - за доли секунды):
Код:
df.fillna(method='ffill')

Category1 и SubCategory 2.2 итд - становятся частью Мультииндекса, и задача выборки любой строки и столбца (а она возникнет 100%) - сводится к: df.loc[('Category3', 'SubCategory 3.2'), 'Column 4'] (+ еще парочка способов). Это решает проблему любой адресации как к яч./строкам/столбцам самой сводной таблицы, так и к её исходным данным (яч./строкам/столбцам). И работает это по hash-деревьям в RAM, т.е. в 5 раз быстрее любых других способов. 

 
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
eeigor
Форумчанин
***
Offline Offline

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



« Ответ #5: 23 Март 2021, 10:40 »

Нет, @Bigor, без дополнительного столбца. А формула у нас одна: ссылка на ячейку выше. Подсказка: задача решается, как ни странно, копированием и вставкой, но есть нетривиальная опция. Всё просто, если знаешь… Я не знал.

Но ведь согласитесь: пример жизненный. Для сводной надо сделать все записи полными, при этом будет налицо избыточность информации (дублирование наименований категорий/подкатегорий). Некоторые пользователи предпочитают именно такую структуру для наглядности.

В отчётах повторение наименований – это отдельная опция. Но тут не отчёт, а исходные данные. Требуется быстро, путём нажатия нескольких клавиш, без макросов, устранить недостаток.
« Последнее редактирование: 23 Март 2021, 10:55 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
Bigor
Мастер
*****
Offline Offline

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


« Ответ #6: 23 Март 2021, 11:09 »

С учётом подсказки, решение найдено. Но подожду от @eeigor Улыбка
Записан

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

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



« Ответ #7: 23 Март 2021, 11:12 »

@Bigor, замечательно!

Для других даю подсказку 2.
Установите курсор в ячейке A3 и, работая мышью, выделите диапазон A3:B20, а затем скопируйте его в буфер обмена. Не снимая выделения, введите в активную ячейку A3 формулу (можно использовать мышь):
=A2
и нажмите Alt+Enter, чтобы вставить заданную формулу во все ячейки выделенного диапазона… Ой! Кажется часть данных была затёрта. Но мы не будем делать откат, потому что в этом, как бы, нет необходимости…
Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
Bigor
Мастер
*****
Offline Offline

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


« Ответ #8: 23 Март 2021, 11:34 »

Мой вариант корявее. Там по столбцу только. Пишем в а3 формулу =а2. Копируем ее. Выделяем столбец A4:a20. Спец вставка выбираем формулы и в операциях добавить. Вставляем. Ctrl+H меняем +0 на пусто

ps хотя с небольшими ухищрениями можно и диапазоны тоже заполнять. После копирования а3, выделяем диапазон а3:в20 снимаем выделение с а3 и далее по вышеописанному
« Последнее редактирование: 23 Март 2021, 11:40 от Bigor » Записан

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

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



« Ответ #9: 23 Март 2021, 11:56 »

Даю подсказку 3:
А что осталось в буфере обмена?
Допускаю, что об этом моменте все уже добросовестно забыли.
А между тем, мы сейчас в одном шаге от финиша…
Кто придёт первым?
« Последнее редактирование: 23 Март 2021, 12:35 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
kompilainenn
Мастер
*****
Offline Offline

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



« Ответ #10: 23 Март 2021, 12:51 »

Для сводной надо сделать все записи полными, при этом будет налицо избыточность информации (дублирование наименований категорий/подкатегорий).
В настройках Сводной таблицы есть опция типа учитывать для пустых значений значение верхней ячейки
Записан

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

Сообщений: 1 424


« Ответ #11: 23 Март 2021, 13:13 »

Полные записи нужны до Сводной - для Автофильтра, т.к. без него не обойтись при "чистке" данных.   
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
eeigor
Форумчанин
***
Offline Offline

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



« Ответ #12: 23 Март 2021, 13:33 »

@kompilainenn, спасибо за дополнительную информацию. В параметрах сводной таблицы действительно есть опция "Распознавать категории". Чего она делала, я, читая, догадаться не мог. Теперь знаю. Но это не умаляет ценности решения нашего ребуса. Ответ рядом…
Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
kompilainenn
Мастер
*****
Offline Offline

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



« Ответ #13: 23 Март 2021, 13:47 »

Чего она делала, я, читая, догадаться не мог
Я тоже не мог, пока в переводе гайда не наткнулся и то только после примера с картинками понял
Записан

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

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



« Ответ #14: 23 Март 2021, 13:57 »

@kompilainenn, я так и понял, что при переводе. Недавно "пытал" @sokol92, как он (Владимир) добывает информацию. Оказалось, как разведчик. Улыбка

Но в нашем случае мы имеем дело ещё и с издержками "интуитивно-понятного" интерфейса.

UPD:
Я подгрузил наш пример с добавленной сводной таблицей и установленной опцией "Распознавать категории". Так сказать, ещё одной "чёрной дырой" стало меньше… попутно.

* Example03 (multiple insertion).ods (19.18 Кб - загружено 3 раз.)
« Последнее редактирование: 24 Март 2021, 06:28 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.1.1.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!