Сумма произведений ячеек таблицы Writer

Автор cser, 22 апреля 2021, 14:03

0 Пользователи и 1 гость просматривают эту тему.

cser

Доброго времени суток!
Есть таблица:


Элемент | Масса, г | Кол-во
Яблоко | 100 | 1
Груша | 50 | 2
Всего: | 200 | -

Как посчитать это автоматическое "Всего" без дополнительной колонки "Масса с учётом количества"?
Что-то никакого способа не могу найти, это вообще возможно?

kompilainenn

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

cser

Да, что-то даже в голову такой брутофорс не пришёл :P. Смущает, что у меня там 3 таблицы около 29 строк каждая - хотелось бы по-проще, чем:
=<B2>*<C2>+<B3>*<C3>+<B4>*<C4>...<B30>*<C30>
Потому что с этой формулой легко ошибиться.
Если проще не возможно - тогда уже буду добавлять ещё колонку, или эту негибкую формулу вставлять.


kompilainenn

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

eeigor

Можно же внедрить таблицу Calc и считать в ней...
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

sokol92

Цитата: cser от 22 апреля 2021, 15:18Потому что с этой формулой легко ошибиться.

Можно и сгенерировать. :)
Владимир.

cser

Таблицу Сalc придётся на одной странице умещать - муторно.
В общем, пока эту негибкую формулу использую (в текстовом редакторе с множественными курсорами написал), работать вроде можно. Всем спасибо!

McAaron

Цитата: eeigor от 22 апреля 2021, 16:12
Можно же внедрить таблицу Calc и считать в ней...
Можно, но не нужно. Во-первых, это работает только в условиях однородной IT-инфраструктуры, для чего и было придумано, а во-вторых, вид у этого "внедрения" -- обрыгаться.

economist

Тема таблиц во Writer показательна: мощь программы дает слишком много вариантов, среди которых всё равно нет идеального. Но у других офисных программ - ещё хуже, т.к. если и красиво - то не хватает функций. Или дорого.

Таблицу, даже огромную (можно повторять заголовки(!)) - вставьте как Связь DDE, скопировав в буфер таблицу из ODS. Она слегка форматируема (выравнивание чисел, напр.). Вид простецкий, офисный. Зато не тупит, и Calc всё вам посчитает формулами СУММПРОИЗВ(). Обновляется молча.

Пробуйте. DDE-связи нельзя создать с ODS-файлом, названным с пробелами (под виндой).
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

cser

Цитата: economist от 23 апреля 2021, 15:32
Тема таблиц во Writer показательна: мощь программы дает слишком много вариантов, среди которых всё равно нет идеального. Но у других офисных программ - ещё хуже, т.к. если и красиво - то не хватает функций. Или дорого.

Таблицу, даже огромную (можно повторять заголовки(!)) - вставьте как Связь DDE, скопировав в буфер таблицу из ODS. Она слегка форматируема (выравнивание чисел, напр.). Вид простецкий, офисный. Зато не тупит, и Calc всё вам посчитает формулами СУММПРОИЗВ(). Обновляется молча.

Пробуйте. DDE-связи нельзя создать с ODS-файлом, названным с пробелами (под виндой).
Спасибо! Я бы до этого долго догугливался.
Вот теперь новую задачу пытаюсь так сделать. Хотя не обошлось без неожиданностей - я уже подумал, что они совсем поломали DDE в новых версиях, но нет - обновление работает, но только по кнопке F9.

https://ask.libreoffice.org/en/question/287791/dde-in-big-sur-not-working/
"Use the F9 key to update the DDE link. Yes, this is a bug."

mikekaganski

#10
Цитата: cser от 22 апреля 2021, 14:03Как посчитать это автоматическое "Всего" без дополнительной колонки "Масса с учётом количества"?

Таблица, представленная в вопросе, имеет неверное название столбца. Там есть "масса единицы" (а не просто "масса"), и не хватает столбца "масса", который бы и суммировался простой суммой. Заодно и проверка была бы проще для человека, у которого есть только распечатка.

А насчёт обновления DDE - в вопросе на Аске нет ссылки на номер бага :(
С уважением,
Михаил Каганский

cser

Да..., всё-таки пользоваться этим невозможно, по крайней мере в версии 7.1.3.2: оно ломает ширину столбцов при открытии документа и возвращает при правке ширины и последующей отмене (нетождественность состояния до действия и после отмены - это вообще отдельная боль LO), ещё не запоминает разрыв связей с таблицей, надо удалять.

Короче, для текущей задачи проще копипастить всё содержание таблицы руками при изменении - так и буду делать

Баг в багтрекере тоже пока не нашёл :(.

economist

#12
Пользоваться механизмом можно, в LO5/6 ширина сохраняется, а в LO7 нужно привыкнуть.

Ширину столбцов в LO 5/6/7 всегда можно задать шириной заголовков, вводя символы переноса строки где надо (в т.ч. в источнике). Главное что выравнивание самих значений сохраняется при обновлении и открытии.

C помощью DDE на ODS нетривиальная задача переноса в документы Writer (Договор с приложениями все-в-одном) огромных, скажем, Спецификаций товаров (сотни строк) - с перерасчетом сколь угодно сложными формулами Calc - решается самым простым и действенным способом. Альтернативы ему нет. Ручками долго (и опять же - ширина плывет). Макросом - нужно много писать.

Еще по Ctrl+Shift+F4 можно (через БД - Таблица - ODS), причем можно легко на лету сделать под-выборку с помощью SQL-запроса или представления. Это быстрее чем тыкать Автофильтр и надежнее, но форматирование при обновлении, так же как с DDE, - сохранится частично.

Еще вариант, если вам нужна только одна ячейка из Calc, посчитанная по сложным функциям - можно по DDE связать только её и вставить как DDE-поле (в т.ч. прямо в текст того же Договора).

И, наконец, ещё вариант - чтение из открытого/закрытого ODS-файла (да и вообще любого файла любого приложения) с диска/сети/web скриптом Python и вставка готового значения/таблицы в документ Writer. Тот же макрос Basic, но проще и мощнее. Например можно обойти капчу. Самое часто применение - заполнение по введенному ИНН реквизитов поставщика (название, рук-ль, адрес, ОГРН итп). У миллионов работников РФ это главная по времен "поедательница времени".
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...