Страница 2 из 2

сводные таблицы

Добавлено: 08 июн 2004, 08:42
dansdv
Спасибо за помощь! Жаль, что проблема не решилась :( .

Сводные таблицы(вычисляемые поля)

Добавлено: 08 июн 2004, 09:12
dansdv
Есть еще проблема. Привожу пример: Есть сводня таблица с 4-ю полями: "товарная группа", "товар", "ко-во продаж", "цена товара". Мне надо узнать сумму продаж товара. Создаю Вычисляемое поле " Сумма продаж" = "ко-во продаж" * "цена товара".Сумма продаж по полю "товар" отображается корректно, а вот итоги продаж по "товарной группе" (сумма по строкам)- полная ерунда. Т.е. например в
"товарной группе" было три строки: Товар1(цена=1, ко-во продаж=2, Товар2(цена=2, ко-во продаж=4), Товар3(цена=3, ко-во продаж=16). Реально товара продано на 1*2+2*4+3*16=58, но "сводник" итоги продаж по "вычисляемому полю" посчитает так (1+2+3)*(2+4+16)=6*22=132. Можно как-нибудь "разрулить" эту проблему или это "косячок" MS? Заранее премного благодарен

Добавлено: 12 июн 2004, 14:11
SergeMG
Есть еще проблема.

Добавлено: 12 июн 2004, 14:51
SergeMG
Виноват...

Это не проблема, а свойство сводной таблицы. Она оперирует итоговыми данными. А решается такая засада просто. Создавай вычисляемые поля непосредственно в запросе.
Что касается шаманства, то проблема остается. И дело тут не в базе, не в драйверах, а повторюсь, в кэше сводной таблицы. Вопрос, в общих чертах все тот же: существует ли метод VBA для удаления PivotItems?

Сводные таблицы

Добавлено: 13 июн 2004, 08:41
dansdv
Спасибо!!! Теперь с вычисяемыми полями разберусь. :) . Теперь бы еще PivotItems разрулить :P

Сводные Таблицы( Обновление PivotItems)

Добавлено: 23 июл 2004, 12:43
dansdv
Sub DeleteOldItemsWB()
'gets rid of unused items in PivotTable
' based on MSKB (Q202232)
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim i As Integer

On Error Resume Next
Наш программист решил проблему "засорения" списков так:
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
' Set ws = ActiveSheet
' Set pt = ws.PivotTables("СводнаяТаблица1")
' pt.RefreshTable
For Each pf In pt.PivotFields
' Set pf = pt.RowFields("group")
For Each pi In pf.PivotItems
If pi.RecordCount = 0 And _
Not pi.IsCalculated Then
pi.Delete
End If
Next
Next
Next

Добавлено: 13 фев 2006, 13:31
Дионис
мне тоже приходится с 1С бороться за данные. так я сформированный отчет сохраняю в формате xls (97-й), потом открываю в нормальном экселе (2003), а дальше запускаю книгу, в которой есть ссыли на этот отчет+перевод полученных данных в нужный вид. Со сводниками работать не обязан (по роду службы), но иногда формирую для самоконтроля - всё работает четко. Результатом действия книги-обработчика является упорядоченная в нужном формате информация, которую потом переношу в отчетность.