Возможно-ли осуществить группировку и суммирование в таблице Calc как в BASE?

Автор serkondr, 23 марта 2016, 15:25

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

serkondr

Доброго времени суток!

Имею таблицу Кальк с повторяющимися наименованиями товара в одном столбце и соответствующими количествами товара в соседнем столбце. Необходимо в этом же файле на другом листе собрать сводную таблицу с группировкой по наименованию и с суммой по каждому наименованию. В BASE это легко сделать функциями GROUP по столбцу наименования и SUM по столбцу количества. А в Кальке что-то ничего подходящего не нашёл.
Подскажите пож-та, как решить эту проблему. Очень нужно именно в Кальке.
Спасибо.

rami

Может "Промежуточные итоги..." подойдут? (в меню "Данные")

kompilainenn

Цитата: serkondr от 23 марта 2016, 13:25Необходимо в этом же файле на другом листе собрать сводную таблицу с группировкой по наименованию и с суммой по каждому наименованию.
в правильно заданном вопросе содержится ответ! Сделайте сводную таблицу, она для того и придумана =)
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

serkondr

Спасибо!
Сводная таблица вроде работает, только два момента мне бы исправить.
1. Не пойму, как изменить местоположение этой сводной таблицы, она при создании сама встаёт ниже выделенных данных, а мне надо её на другом листе расположить.
2. При изменении исходных данных, для пересчёта сводной таблицы, приходится её вручную обновлять. Как настроить автоматическое изменение данных?

rami

Цитата: serkondr от 23 марта 2016, 15:251. Не пойму, как изменить местоположение этой сводной таблицы, она при создании сама встаёт ниже выделенных данных, а мне надо её на другом листе расположить.
Раскройте "Источник и назначение"
Цитата: serkondr от 23 марта 2016, 15:252. При изменении исходных данных, для пересчёта сводной таблицы, приходится её вручную обновлять. Как настроить автоматическое изменение данных?
Только "Обновить".

kompilainenn

Цитата: serkondr от 23 марта 2016, 15:251. Не пойму, как изменить местоположение этой сводной таблицы, она при создании сама встаёт ниже выделенных данных, а мне надо её на другом листе расположить.
по умолчанию она создается на новом листе, что-то вы там намудрили

обновлять сводную таблицу только руками, благо хоть пересоздавать не надо =)
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

serkondr

Благодарю за помощь!

Поменял положение таблицы.
А вот обновлять сводную таблицу всё же неудобно. Она у меня будет на вторичной странице, даже не на второй, которая будет просто выводиться на печать, туда и посмотреть-то некогда будет. Заполню первый лист и всё.
Здорово было бы подавать какую-нибудь команду, которую привязать к элементу управления типа кнопки на первом листе!
Существуют ли такие команды? Как их задавать?
Спасибо.

rami

Цитата: serkondr от 23 марта 2016, 16:56Здорово было бы подавать какую-нибудь команду, которую привязать к элементу управления типа кнопки на первом листе!
Sub main
ThisComponent.Sheets.getByName("название листа").DataPilotTables(0).refresh   'если сводная таблица единственная на этом листе
End Sub

serkondr


serkondr

Что-то не получается у меня.
В самой кнопке это не нашёл куда вбить. Сделал макрос с этим кодом, а его уже присвоил кнопке. Но этот макрос почему-то не обновляет сводную таблицу. Даже при его запуске вручную, без кнопки.

Пробовал "Записать макрос" и нажать на сводной таблице мышкой "Обновить". Записал. Но при выполнении макроса тоже ничего не происходит.

rami

Цитата: serkondr от 24 марта 2016, 09:42Но этот макрос почему-то не обновляет сводную таблицу. Даже при его запуске вручную, без кнопки.
Каким офисом пользуетесь? Макрос работает и в LibreOffice и в Apache OpenOffice, но в Либре почему-то обновление сводной таблицы не регистрируется в Undo ???

Если изменить исходные данные включённые в сводную таблицу, а потом запустить макрос, должно работать.

serkondr

У меня ООО 3.3.0 от Инфра-ресурс.

Заработало всё!   Спасибо!

Причина была в названии листов. Там похоже нельзя не только кириллицу, а даже точки и подчёркивания использовать. Макрос не реагировал на такие названия листов. Сделал латиницу и вставил макросы в кнопки. Теперь две таблицы в двух листах обновляю двумя кнопками на первом листе. Супер!!!

Премного благодарен!!!

vovan_d

Цитата: rami от 23 марта 2016, 19:19
Цитата: serkondr от 23 марта 2016, 16:56Здорово было бы подавать какую-нибудь команду, которую привязать к элементу управления типа кнопки на первом листе!
Sub main
ThisComponent.Sheets.getByName("название листа").DataPilotTables(0).refresh   'если сводная таблица единственная на этом листе
End Sub


Необходимо обновить две сводные таблицы на одном листе, где что поправить или добавить в макросе?

rami

Sub Main
Dim oSheet
oSheet=ThisComponent.Sheets.getByName("Лист1")
oSheet.DataPilotTables(0).refresh   'первая сводная таблица на этом листе
oSheet.DataPilotTables(1).refresh   'вторая сводная таблица на этом листе
End Sub

vovan_d

Цитата: rami от 27 мая 2019, 14:16Dim oSheet
oSheet=ThisComponent.Sheets.getByName("Лист1")
oSheet.DataPilotTables(0).refresh   'первая сводная таблица на этом листе
oSheet.DataPilotTables(1).refresh   'вторая сводная таблица на этом листе

Я так пробовал, нужно два раза нажимать кнопку (макрос привязан к кнопке), чтобы обновились обе таблицы.