Страницы: 1
RSS
Сводная на базе разных таблиц
 
Уважаемые гуру, прошу помощи.
Сразу скажу - стандартный инструмент "Сводной таблицы на основе нескольких диапазонов" мне не подошел, как я ни бился. Видимо он для каких-то других случаев, либо я не понимаю, как он работает.
Задача:
Имеются две таблицы - "Отгрузки" и "Оплаты", ведущиеся в разных книгах (в файле - Книга 1 и Книга 2 соответственно). Все транзакции записываются в хронологической последовательности в свою соответствующую таблицу - то есть изначально нет разбивки по клиентам.
Таблицы в реальности большие (20-30 колонок) с разными данными.
Необходимо объединить данные из этих двух таблиц и сформировать отчеты по каждому клиенту с указанием сумм отгрузок, оплат и соответствующим сальдо.
Или хотя бы в одну общую таблицу, из которой потом можно эти данные раскидать по нескольким сводным.
И можно ли при этом обойтись без VBA?
Почти уверен, что задача элементарная для знатоков. По форуму побродил, но точного решения своей проблемы не нашел.
У меня Excel2010, если это важно.
 
Если все данные в сводной не нужны, то имя контрагента, дата операции и сумма должны быть в первых столбцах. Потом с помощью консолидации данных (платежы переумножить на -1, в столбцах С и D формула =SUM  заменена на =MAX чере поиск и замену).
Если нужна полноценная сводная, то вам сюда http://www.planetaexcel.ru/techniques/8/133/
 
shro1002,
Спасибо, но это совсем не то, что нужно. И поля с именем контрагента нельзя переставить, и в итоговой таблице нужно видеть обе колонки - дебет и кредит, а не просто сумму. Просто сумму сальдо по каждому контрагенту я и через СУММЕСЛИМН посчитаю.
Про прием по ссылке читал, попробую конечно, но думалось, что такую задачу можно решить без макросов, так как с VBA не очень дружу.
 
Думаю, что классические сводные только "тупым" объединением двух таблиц получатся
OfficeProPlus 365x64
Win64forWorkstation
 
alvevo, это
http://www.excelworld.ru/forum/2-4895-1
называется кросс и в правилах об этом написано.
 
vikttur,
Согласен, но в свое оправдание скажу, что выдержал более чем 3-х часовую паузу только после того, как не увидел тут подходящего ответа. А поскольку я новичок, я пока не знаю, какой из форумов более дружественный и активный ))
 
Цитата
vector1 пишет:
Думаю, что классические сводные только "тупым" объединением двух таблиц получатся
Это было бы отличным решением, если бы таблицы не пополнялись ежедневно новыми данными. Может это "тупое" объединение можно как-то автоматизировать?
 
Думаю, что с помощью функции "ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ" можно получить что-то похожее. Но как-то это корявенько получается...
Вот если бы вам нужно было текущее сальдо на дату, т.е. месяц/год, то с этой функцийе можно сделать табличку, которая бы тянула данные из двух соседних сводных.
Изменено: vector1 - 27.05.2013 21:04:23
OfficeProPlus 365x64
Win64forWorkstation
 
я попробую сейчас с паверпивотом поизвращаться.
может чего и получится
Изменено: vector1 - 27.05.2013 21:06:00
OfficeProPlus 365x64
Win64forWorkstation
 
Другой вариант решения через формулы + сводная. Но если у вас массив информации большой, то VBA это оптимальный вариант.
В даном примере на странице "Клиент" в ячейке I1 выбираете имя клиента, обновляете сводную и выбираете в заголовке сводной клента. Если нужны дополнительные поля в сводной таблице, то формулы в столбцах A:D легко изменить (достаточно указать необходимый столбик).
 
ПаверПивот в 2010 офисе.
Вроде работает. Так как файл несколько больше 100 Кб, выложил его на обменник.
http://rghost.ru/46317284
OfficeProPlus 365x64
Win64forWorkstation
 
Цитата
shro1002 пишет: Другой вариант решения через формул + сводная.
Спасибо, похоже на то, что должно получиться. Пошел изучать внимательнее.
 
Цитата
vector1 пишет: ПаверПивот в 2010 офисе.
Красота, еще бы понять как это работает пошагово. К тому же мой excel ругается что у меня старая версия PowerPivot. Надстройка у меня стоит, но пользоваться ей пока не доводилось. Если Вас не затруднит, можете разжевать?
 
Загрузите последнюю версию надстройки для 2010 офиса. Но я бы рекомендовал офис 2013 плюс поставить, так как в 2013 офисе сбоев с ПаверПивотом намного меньше, чем в предыдущих редакциях.

У вас в качестве источников будут использоваться 4 таблицы: отгрузки, оплаты, справочник контрагентов и справочник дней. Первые две таблицы дополняются с определенной периодичностью (формат должен быть именно "умных таблиц", так как это позволяет автоматически расширять диапазон источника данных и не извращаться с постоянным изменением этого диапазона вручную). Третья таблица - справочник контрагентов также обновляется по итогам отчетного периода, но для того, чтобы не потерять какого-нибудь нового контрагента я бы просто формировал отчет и копировал его в подготовленную таблицу "контрагенты", из которой вы и будете тянуть данные. В таблице "контрагенты" должны быть исключительно уникальные записи, т.е. название контрагента должно быть уникальным. Эта таблица увяжет отгрузки-продажи в разрезе контрагентов. Четвертая таблица - "дата" - увяжет отгрузки-продажи во времени. Эту таблицу можно сформировать один раз с детализацией "по дням", (например, до 2020 года) и просто скопировать в ПаверПивот без возможности обновляться.
Итак, имеем 4 таблицы в Экселе и активированную надстройку Паверпивот.
Курсор на таблицу 1 "отгрузки" - лента - ПаверПивот - создание связанной таблицы.
Курсор на таблицу 2 "оплаты" - лента..... и далее по тексту.
Курсор на таблицу 3 "контрагенты" - лента ...и далее по тексту выше.
Копируем таблицу 4 "дата" (в примере строк 1527 с 01.01.2013 по 07.03.2017). в Экселе на листе копируем, а в ПаверПивоте (после нажатия на кнопку "ОкноПаверпивот") вставляем. В предложении обозвать таблицу, называем ее как угодно (главное не забыть). Из Экселя эту таблицу затем можно просто удалить.
Изменено: vector1 - 28.05.2013 15:08:32
OfficeProPlus 365x64
Win64forWorkstation
 
Активированный Паверпивот покажет наличие 4 таблиц (три из них будут связанными с таблицами Эксель, т.е. любое изменение в Экселевских таблицах будет сопровождаться аналогичным изменением связанных паверпивотовских данных).
Следующий шаг - создание связей между таблицами в ПаверПивот.
Курсор не поле "дата" таблицы "отгрузки" - создать связь. Выбираем таблицу 4 "дата" и единственное поле в ней.
Курсор не поле "дата" таблицы "оплаты" - создать связь. Повторяем действие выше.
Курсор на поле "клиент" таблицы "отгрузки" - создать связь. Выбираем таблицу 3 "клиенты" и соответствующее поле.
Аналогично строим связь поля "клиент" таблицы "отгрузки".

Теперь строим сводную. Курсор на любой таблице в Паверпивот - PivotTable - Ок.
Слева в списке полей видим 4 таблицы. Из таблицы контрагенты в зону фильтра тянем контрагентов, из таблицы "Отгрузки" в зону значений - сумму, из таблицы "оплаты" в зону значений - сумму. Из таблицы "дата" в зону строк тянем даты.

Считаем сальдо на конец периода.
Курсор на сводной - вкладка ПаверПивот - группа Меры - создать меру (аналог вычисляемого поля в обычной сводной таблице). Вводим формулу =CALCULATE(SUM('Отгрузки'[сумма отгрузки]))-CALCULATE(SUM('Оплаты'[сумма оплаты])). Ок.

Для того чтобы считалось сальдо нарастающим итогом используем допвычисления.
Изменено: vector1 - 28.05.2013 15:37:24
OfficeProPlus 365x64
Win64forWorkstation
 
vector1,
Спасибо огромное! Пойду ковыряться. Пара вопросов:
1. Насколько excel 13 отличается от 10-го? Смогут ли юзеры с 2010-м хотя бы читать файлы, созданные в 2013-м?
2. Где тут на форуме кнопка "Проставить пиво"?  ;)
 
Цитата
alvevo пишет:
1. Насколько excel 13 отличается от 10-го? Смогут ли юзеры с 2010-м хотя бы читать файлы, созданные в 2013-м?
слегка интерфейс отличается.
форматы файлов совместимы (но при использовании нового фильтра "Временная шкала" сводные в 10 офисе читаться не будут).
значительно (имхо) улучшен ПаверПивот и оптимизирована работа с инструментами Пивота.

читайте обзоры Николая Павлова:
- о сводных 2013 http://www.planetaexcel.ru/techniques/8/158/
- о диаграммах 2013 http://www.planetaexcel.ru/techniques/4/159/
- о надстройках 2013 http://www.planetaexcel.ru/techniques/11/170/
Изменено: vector1 - 28.05.2013 17:10:42
OfficeProPlus 365x64
Win64forWorkstation
 
Цитата
vector1 написал:
Считаем сальдо на конец периода.
Курсор на сводной - вкладка ПаверПивот - группа Меры - создать меру (аналог вычисляемого поля в обычной сводной таблице). Вводим формулу =CALCULATE(SUM('Отгрузки'[сумма отгрузки]))-CALCULATE(SUM('Оплаты'[сумма оплаты])). Ок.
по периодам разбить нельзя, т.к. в каждом периоде будут складываться и вычитаться только обороты этого периода, а начальное сальдо учитываться и переноситься не будет.
складывать и вычитать надо обороты за весь предшествующий период без учета фильтра и на массиве, начинающемся с периода, когда сальдо было 0.
или вообще по-другому выводить сальдо, но я пока не знаю как :)

сорри за некропостинг
Страницы: 1
Наверх