Дорогие форумчайне! Крайне прошу помочь в разрешении моей проблемы. Заранее чрезмерно благодарен за любые идеи.
Описание проблемы:
Файл состоит из двух листов: 1) рабочий лист - это лист с данными по закупке - и 2) сама сводная таблица. Сводная таблица учитывает расходы на определенные категории товаров с 3 видами начисления: план, факт и внеплана. Необходимо добавить столбец остатки, который бы рассчитывался как "сумма по плану на соответствующий период" - "сумма по факту на соответствующий период" - "сумма по внеплану на соответствующий период". Основная проблема : ЖЕЛАТЕЛЬНО НЕ ИСПОЛЬЗОВАТЬ формулы на рабочем листе, с которого и формируется сводная таблица, так как я представляю лишь маленький фрагмент данных, а в полном варианте при использовании формул сильно тормозит рабочий лист при его малейших изменениях, а коллеге на данном листе предстоит вставить еще множество строк. Главная задача, поставленная передо мной, создать такую сводную таблицу с остатками, которая бы относительно быстро функционировала.
Мои попытки: 1. Внесение формул на рабочий лист, что и привело к выявлению проблем с долгой работой файла 2. Использование в самой сводной таблице функции "дополнительных вычислений - отличие" (в этом случае на каждый временной промежуток нужно создавать свое вычисляемое поле для сравнения, так как можно вычитать только один конкретный элемент. Допустим, для годовых значений идеально подходит, так как просто выбирается элемент для вычисления "год факт" и остаток можно найти в дополнительно созданном столбце в плане, из которого и вычитается факт, а вот для квартальных или полугодовых нужно создавать на каждый период, то есть на 1,2,3,4 кварталы и 1,2 полугодия, по столбцу, что делает ее громоздкой. Также данная функция работает только в том случае, если и план и факт развернуты до соответствующего периода, иначе указывается ошибка "нет данных")
3. Создание вычисляемого поля и попыток прописать формулы там, что не привело ни к каким утешительным результатам.
Заранее благодарю за помощь. Файл прикрепляю ниже.
Ну, на мой взгляд, данные организованы неправильно. Если у вас есть измерение "Вид начисления", зачем вы создаете синтетические ключи с измерениями периодов в исходной таблице и потом в сводной еще раз впихиваете их вместе? Из-за это происходит нагромождение данных. Исходя из текущей структуры данных, можно попробовать создать вычисляемый объект по измерению "Вид начисления" по вашей формуле "План"-"Факт"-"Внеплан" Но, чем больше вы будете добавлять измерений периодов, тем сильнее это все будет тормозить.(см.пример) Я бы все таки попробовал изменить модель данных, "развернув" значения как план, факт и внеплан, т.е. шесть столбцов значений, тогда можно будет сделать вычисляемое поле, а не объект.
ps И мне в примере попалось "III квартал" и "III квартала" - в сводной это будут два разных значения
Спасибо за ответ! Тот вариант, который вы представили в качестве своего примера, при сворачивании сводной таблицы думает более одной минуты. Возможно, дело в том, что установлена 32 битная версия эксель на данном компьютере, но само собой разумеется, что такой вариант точно не подойдет.
Ошибка "III квартал" и "III квартала" появилась из-за того, что в торопях пытался сократить файл и, возможно, упустил эту нелепость из виду
Использование модификации "План" - "Факт" - "Внеплана" было первоначальной моей задумкой, которая также отпала долгим обдумыванием экселя, поэтому и была предпринята затея обходными путями упростить жизнь сводной таблице, помогая ей при фильтровании данных путем переименования периодов в рабочем листе.
Главная задача, поставленная передо мной, создать такую сводную таблицу с остатками, которая бы относительно быстро функционировала.
TheBestOfTheBest, Спасибо за совет с перемещением файла на локальный диск С. К сожалению, существенного результата процессу обдумывания это решение не придало: эксель все еще думает более одной минуты.
Главная задача, поставленная передо мной, создать такую сводную таблицу с остатками, которая бы относительно быстро функционировала.
Эта задача никак с темой не пересекается. Во-вторых Вам никто не даст рекомендации по ускорению не видя данных и не зная характеристики "инструмента", который эту обработку делает.
Цитата
Основная проблема : ПРАКТИЧЕСКИ НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ формулы на рабочем листе, с которого и формируется сводная таблица, так как я представляю лишь маленький фрагмент данных, а в полном варианте при использовании формул сильно тормозит рабочий лист
Как раз эту проблему решают оба варианта.
Цитата
... на данном листе предстоит вставить еще множество строк.
TheBestOfTheBest, было бы замечательно, если на таком крошечном куске сводной таблицы все работало и не висело под полторы минуты. Смысла и возможности дать полный объем данных нет, к сожалению.
Попробуйте использовать PowerPivot, должно ускорить формирование сводной.
Цитата
... на таком крошечном куске сводной таблицы все работало и не висело под полторы минуты. Смысла и возможности дать полный объем данных нет, к сожалению.
Я правильно понял, что даже на выложенном файле в 95Кб сводная тормозит?
Как вариант, с вычисляемым элементом (немного глючит, но вполне варимо) (см. Лист4. на Рабочем листе добавил 3 зеленых столбца. 3 Желтых рекомендую удалить)
TheBestOfTheBest, большое спасибо за Ваш вариант! К сожалению, он немного не подходит, так как коллега будет добавлять множество строк с фактическими данными, а в Вашем примере все фактические данные за один период необходимое будет суммировать в одной ячейке. Все равное большое спасибо!
Jefferson написал: в Вашем примере все фактические данные за один период необходимое будет суммировать в одной ячейке
Это Вы откуда такое взяли? Моя сводная один-в-один как Ваша, можете также добавлять/убирать периоды, либо перенести периоды в строку или столбец. Вот для изменения структуры столбцов понадобится переписать запрос.
TheBestOfTheBest, извините, я видимо ошибся, и при открытии файла случайно кликнул на сводную таблицу, тем самым получив отчет, который ошибочно принял за дополнительно созданный Вами рабочий лист. Не могли бы Вы пояснить, пожалуйста, как Вы создали сводную таблицу, построенную на данных первоначальной сводной таблицы?