Форум: "Начинающим";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];
ВнизСводная таблица, замена колонки Общий итог на Отклонение Найти похожие ветки
← →
Анна (2008-09-23 12:06) [0]Как сделать, чтобы в сводной таблице вместо суммы в колонке "Общий итог" автоматически формировалась разность?
Например такая сводная табл.
otchet
DD prihod rashod Общий итог
01.01.2008 0.344 0.155 0.499
02.02.2008 0.223 0.023 0.246
03.03.2008 0.323 0.323 0.646
04.04.2008 0.350 0.456 0.806
Общий итог 1.240 0.957 2.197
В параметрах поля "Общий итог" выбираю дополнительные вычисления "Отличие" получается макрос:
Range("D5:D8").Select
With ActiveSheet.PivotTables("СводнаяТаблица4").PivotFields( _
"Сумма по полю data")
.Calculation = xlDifferenceFrom
.BaseItem = "(далее)"
End With
End Sub
Но в зависимости от "назад" или "далее" разность появляется в колонке prihod или rashod (с противоположным знаками), остальные колонки становятся пустыми.
Как сделать так, чтобы сохранить первоначальный вид сводной таблицы и отклонение помещать в колонку Общий итог?
← →
Правильный$Вася (2008-09-23 12:11) [1]васик тут причем?
← →
Анна (2008-09-23 12:20) [2]
> васик тут причем?
Это я просто привела макрос, чтобы было понятно... Потом переведу на Delphi . Программа на Delphi
← →
Правильный$Вася (2008-09-23 12:22) [3]
> Но в зависимости от "назад" или "далее" разность появляется
> в колонке prihod или rashod (с противоположным знаками),
> остальные колонки становятся пустыми.
программы еще нет, что ж тогда обсуждаем
сначала напиши, потом, возможно, и вопрос отпадет
← →
Анна (2008-09-23 12:27) [4]
> Правильный$Вася (23.09.08 12:22) [3]
Да написана уже программа! Строится сводная таблица из запроса, все работает. Но нужно разность прихода и расхода вместо Общего итога.
← →
Правильный$Вася (2008-09-23 12:35) [5]
> Да написана уже программа!
противоречие
> Потом переведу на Delphi
← →
ПРавильный$Вася (2008-09-23 12:36) [6]
> привела макрос, чтобы было понятно
мне не понятно, только запутываешь
давай код на дельфи
← →
Анна (2008-09-23 12:39) [7]
> Правильный$Вася (23.09.08 12:35) [5]
Вы прямо как следователь! Не противоречие, т.к. нужно заменить только колонку Общий итог, а у меня не получается, вот и сделала макрос, чтобы его перевести потом на Дельфи. Всю сводную таблицу на Дельфи писала таким способом.
← →
Vlad Oshin © (2008-09-23 12:41) [8]
> давай код на дельфи
← →
Правильный$Вася (2008-09-23 12:45) [9]
> прямо как следователь!
с партизанами нельзя по-другому
в конце концов, тебе нужна помощь или мне?
← →
ANB (2008-09-23 12:50) [10]
> Вы прямо как следователь! Не противоречие, т.к. нужно заменить
> только колонку Общий итог, а у меня не получается, вот и
> сделала макрос, чтобы его перевести потом на Дельфи. Всю
> сводную таблицу на Дельфи писала таким способом.
Зачем писать на делфи и ВБ, если для получения всех нужных извращений есть SQL ?
← →
Virgo_Style © (2008-09-23 12:51) [11]речь, я так понимаю, об Excel... Что мешает вставлять формулу в ячейки нужного столбца?
Такое чувство, что что-то простое делается через не то.
← →
Анна (2008-09-23 12:53) [12]MSExcel.ActiveWorkBook.PivotCaches.Add(SourceType:=1, SourceData:= "Лист1!R1C1:R"+IntToStr(Query1.RecordCount+1)+"C3").CreatePivotTable(TableDestination:="", TableName:= "Колич");
MSExcel.ActiveSheet.PivotTableWizard(TableDestination:=MSExcel.ActiveSheet.Cells [2,1]);
MSExcel.ActiveSheet.Name:="Колич";
MSExcel.ActiveSheet.PivotTables("Колич").PivotFields("otchet").Orientation :=2;
MSExcel.ActiveSheet.PivotTables("Колич").PivotFields("otchet").Position:= 1;
MSExcel.ActiveSheet.PivotTables("Колич").PivotFields("DD").Orientation := 1;
MSExcel.ActiveSheet.PivotTables("Колич").PivotFields("DD").Position := 1;
MSExcel.ActiveSheet.PivotTables("Колич").PivotFields("data").Orientation:=4;
MSExcel.Range["A:E"].Select;
MSExcel.Selection.Columns.AutoFit;
MSExcel.Selection.Rows.AutoFit;
//âñòàâêà ãðàôèêà
MSExcel.ActiveSheet.Shapes.AddChart.Select;
← →
Анна (2008-09-23 13:21) [13]
> Virgo_Style © (23.09.08 12:51) [11]
> речь, я так понимаю, об Excel... Что мешает вставлять формулу
> в ячейки нужного столбца?
Нельзя вставить в эту часть сводной таблицы формулу. Excel не позволяет изменять. Можно только через дополнительные вычисления, я написала об этом в [0] . Но тогда меняется внешний вид сводной таблицы. и я не знаю, как указать, чтобы отклонения помещались в колонку Общий итог. Собственно в этом и заключается мой вопрос.
← →
Vlad Oshin © (2008-09-23 13:28) [14]
> Query1.RecordCount
значит, вы получаете что то по запросу? Текст запроса каков? Может просто запрос поменять?
← →
ПРавильный$Вася (2008-09-23 13:35) [15]
> CreatePivotTable(TableDestination:="", TableName:= "Колич");
интересный синтаксис
← →
Анна (2008-09-23 13:36) [16]
> Vlad Oshin © (23.09.08 13:28) [14]
Запрос довольно простой, построен специально для сводной табл., чтобы использовать ее возможности по ее визуализации. Я специально использую сводную табл, чтобы не писать запросы с full join-ом и не высчитывать в Excel -е ячейки, столбцы, заголовки, подзаголовки и т.д.
← →
Анна (2008-09-23 13:41) [17]
> > CreatePivotTable(TableDestination:="", TableName:= "Колич");
Здесь можно и так написать :
CreatePivotTable(TableDestination:="", TableName:= "СводнаяТаблица1");
Значения не имеет.
← →
Правильный$Вася (2008-09-23 13:42) [18]
> Здесь можно и так написать
в дельфи 7 ?
← →
Vlad Oshin © (2008-09-23 13:43) [19]
> Анна (23.09.08 13:36) [16]
ваш пример из
> Анна (23.09.08 12:53) [12]
у меня не компилится. Вряд ли еще у кого из присутствующих также.
Совет прост, переписать запрос. Запрос в ехсед выбрасывается элементарно. Чем мучится с vb из delphi ...
← →
Анна (2008-09-23 13:44) [20]
> Правильный$Вася (23.09.08 13:42) [18]
Да, в Дельфи 7.
← →
Palladin © (2008-09-23 13:45) [21]
> Правильный$Вася (23.09.08 13:42) [18]
это нормальный синтаксис
← →
Анна (2008-09-23 13:47) [22]
> Vlad Oshin © (23.09.08 13:43) [19]
Какая ошибка? Я может сделала ошибку в коде, когда русские буквы из дельфи помещала в ответ, и заменяла эти кракозябры.
← →
Правильный$Вася (2008-09-23 15:38) [23]
> Palladin © (23.09.08 13:45) [21]
и что он означает?
где в справке почитать?
← →
Palladin © (2008-09-23 15:43) [24]
> Правильный$Вася (23.09.08 15:38) [23]
Object Pascal Language Guide:Object interfaces:Automation objects:Accessing Automation objects (Windows only)
← →
Palladin © (2008-09-23 15:45) [25]означает, что параметры TableDestination, TableName у вызываемого метода CreatePivotTable будут равны тому-то и тому-то, значения остальных параметры будут назначены по-умолчанию
← →
Правильный$Вася (2008-09-23 15:49) [26]ясно, спасибо
это только для ole-объектов, я их не пользую почти
а то уж я перепугался, думал, сишный синтаксис уже в паскаль запхали
← →
Анна (2008-09-23 15:53) [27]Вопрос снимаю. Поняла, что заменить колонку Общий итог на "Отклонение" не удастся. Сводная таблица делает отклонение, но значения помещает или в столбик расход или в столбик приход ( в зависимости что из чего вычитается...), скрывая все остальные данные...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.01 c