Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1221176987
Servy
2008-09-12 03:49
2008.11.02
Умножение через сложение


2-1222072462
Neon-w
2008-09-22 12:34
2008.11.02
Картинку .jpg на кнопку


11-1194678415
Сидор
2007-11-10 10:06
2008.11.02
Проблема с KOLMediaPlayer


2-1222338232
Дева
2008-09-25 14:23
2008.11.02
каталог запуска программы


15-1221129150
Elchin
2008-09-11 14:32
2008.11.02
Unicode





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский