|
|
|
GetData
|
|||
|---|---|---|---|
|
#18+
Подскажите где прочитать про использование метода GetData объекта PivotTable. Или просто подскажите как правильно задать имя? Чем отличается от GetPivotData? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 17:02 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
Как заисать нашёл: Код: plaintext Очень хочется понять чем отличается ? Потому что мне показалось что иногда там где GetData работает, GetPivotData - не работает. Не могу понять в чём отличие и есть ли они вообще, не подскажите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 17:42 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
Я с этими методами никогда вплотную не сталкивалась, но формальный ответ на вопрос есть ли различие между GetData и GetPivotData на мой взгляд легко получить следующим способом: просто посмотреть в Object Browser как реализованы эти методы: Как говориться, легко видеть, что метод GetData возвращает число (Double) а GetPivotData возвращает диапазон (Range). Так что различия есть хотя бы в этом (не говоря уж об аргументах этих методов). Да и в Help'e что-то есть про их использование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 18:06 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
lena_#### Как говориться, легко видеть, что метод GetData возвращает число (Double) а GetPivotData возвращает диапазон (Range). Так что различия есть хотя бы в этом (не говоря уж об аргументах этих методов). Аргументы те же самые только пунктуация разная. Я к сожалению слабо в этом разбираюсь если мне нужна цифра из сводной таблицы, то что мне лучше использовать число (Double) или диапазон (Range) - результат то у них одинаковый получается! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 18:16 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
Можно ещё вопросик: Нмкто не подскажет почему следующая формула не работает в случае если такой ячейки сводной таблицы не существует. Функуия IsError не проверяет на эту ошибку или как. И как можно перехватить такую ошибку, только через On Error GoTo IF_ER Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 18:26 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
DeggasadМожно ещё вопросик: Код: plaintext Причём эта функция на рабочем листе нормально работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 18:33 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
Deggasad Не знаю, насколько Вам это поможет, вот мои изыскания по теме: Исходные данные Сводная таблица Процедура Код: plaintext 1. 2. Процедура Код: plaintext 1. 2. 3. 4. Процедура Код: plaintext 1. 2. 3. 4. Примеры взяты из Help’а и немного видоизменены. В аттаче - файл с примером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 19:27 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
lena_#### Процедура Код: plaintext 1. 2. Нижеприведённое можно записать как Код: plaintext 1. 2. В процессе своих изысканий столкнулся с проблеммой - Вышеописанная процедурра в макросе считает на несколько порядоков медленнее, чем функция ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ(). Интересно это так и должно быть??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 21:00 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
тут много чего про PivotTables: http://peltiertech.com/Excel/Pivots/pivotstart.htm KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 21:33 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Помогите сделать проверку на ошибки по другому, если это возможно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 21:53 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
Методы GetData и GetPivotData вытягивают данные сводной таблицы только если они видны визуально в сводной, т.е. если сводная отображает эти данные. Не подскажите нет ли способа получить данные сводной таблицы которые не видны. Я впринципе понимаю, что наверное нельзя, скорее всего можно только стандартными формулами на исходны данные сослаться, но вдруг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2007, 11:21 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
Всем пардоньте за некропостинг. Deggasad, Вы на форуме участник ещё активный, может быть будет у Вас ответ. Или у кого нить другого. Как же все таки получить содержимое такого загадочного хранилища как PivotCache поясню суть задачи в виде небольшого ликбеза. Есть PivotTable, нужно извлечь исходные данные для нее, чтобы или создать таблицу или внести изменения. Попробуем узнать где же у нее данные. Обратимся к очевидным на первый взгляд с точки ООП местохранилищам SourceData или Recordset - а вот фигушки. Смотрим описание объекта оказывается большинство свойств заполнены "if" т.е. если тип источника такой то и данные там то. Иными словами, для того чтобы понять где же у нее данные, приходится сначала посмотреть свойство SourceType, который нам скажет, что тут Тип Range ,а тут Recordset и т.п. Получается надо сначала заглянуть туда,а потом писать ветвление - что если тип Source - Range - смотрим в одно свойство, а если Connection то в другое. Неудобно, но бог с ним. Все равно нам это не поможет. Данные могут лежать в источнике, который уже сейчас недоступен. Ну например в какой то базе, которая за тридевять земель. Но сами данные для PivotTable лежат внутри этого файлика Excel (конечно не всегда, есть же всякие кубики), ну дык нас интересуют данные, которые уже "внутри". Пороемся в объекте поглубже. Оказывается есть в самом экселе набор пивот кэшей. Вот они оригинальные данные для таблиц то и хранят. Из них таблица и сосет данные. Т.е. есть объект пивот кэш 1,2 и т.д. И есть таблица вот таблица по индексу к кэшу и цепляется. (кстати та ещё приятность - создал 2 пивот кэша. И потом одному человеку по имени компа один кэш показываешь, а второму совершенно другой, хотя файл один и лежит в сети - ну это так, лирическое отсутпление. ) Но видимо мелкомягким влом давать такой набор данных на поюз и они говорят. Юзайте интерфейс пивота. Ну неудобно конечно, но ладно так и быть. Давайте поюзаем этот интерфейс. И опять таки народная индейская изба - фигвам. Оказывается доступны только те Fields которые Visible в данные момент. Ладно, скрепя сердце в очередной раз выкидываем на пивот все Hidden филды и начинаем их мониторить. Пробежаться по филдам и вытащить записи это можно. Но вот сопоставить - так это целый алгоритм нужен. Иными словами если есть у Вас магазины товары и продажи - то вытащить уникальные магазины, уникальные товары и уникальные продажи можно, а вот сопоставить их друг другу никак, до тех пор пока не распозиционировать данные на сводной. Что как Вы понимаете не всегда возможно. Например Excel не выводит более чем 65 тыс строк, а сводные итого меньше, т.к. станет невозможным показать субитоги. В общем направление неверное. Надо залезть внутрь самого PivotCache и попытаться вытянуть оттуда данные. Почему же мелкомягкие не дают интерфейса. Может данные там "лежат" не реляционно и напряжно их тащить. Вероятно. Особенно это заметно когда пытаешься затянуть данные в excel. Пишет - загрузка данных. Думаете не аргумент, а реально загружает? Потому как данных много и их все равно надо "перемещать" а это время. Не не не. Именно репозиция скорее всего . Я беру обычный реляционный рекордсет типа ADO и прикручиваю его к Пивот кэшу и опять происходит "загрузка" чего грузить то - там 5000 записей которые УЖЕ лежат в рекордсете. Их грузить 0,1 секунду максимум. Ан нет.. Опять пишет загрузка данных и давай считать 1000...2400..3800...5200 Скорее всего данные раскладываются особым образом - так как любит майкрософт. Аналогично кубу скорее всего. Но это же не беда. Куб вполне себе читаемая штука. Есть язык в разработке которого участвовал наш землячок и один из местных форумчан имя которого слишком известно чтобы его называть. И тем не менее я решения задачи пока не нашел. Буду рад за любую помощь. И ещё, если я какойнить бред написал где нить - так сильно не ругайте то Уже неделю долблю русско и англоязычный иннет. Пока пусто. Кто поделится соображениями?. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2010, 19:22 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
Я не победил тоже в сове время логичными методами (получить исходные данные в некий рекодсет или массив). но исходные данные достаются просто если помещаются в эксель - при наличии хотя бы одного поля в области данных и сброшенных фильтров двой щелчек на итогах или если предположить что итоги в правом нижнем углу сводной, то Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2010, 19:49 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
ShamanusКто поделится соображениями?.К чертям Эксель с его Пивотами, даешь СУБД с толстым клиентом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2010, 21:05 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
Сводная это всего лишь отчет, но с динамической структурой. А отчет и не должен предоставлять исходные данные. Он для другого создан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2010, 22:27 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
F, отчетом в классическом понимании он станет, когда ты уберешь галочку в настройках таблицы "Сохранить данные вместе с таблицей", а пока данные хранятся вместе с таблицей - это все же еще и pivot, который можно пользовать и делать любые другие отчеты :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2010, 08:38 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
White OwlК чертям Эксель с его Пивотами, даешь СУБД с толстым клиентом.Да стоит уже Microstrategy, и надстройка еёйная к Excel тоже имеется, но только то народ шлет письма с Excel файлами. К несчастью надо извлекать информацию. Deggasad если помещаются в эксель это ключевая проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2010, 08:44 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
ShamanusDeggasad если помещаются в эксель это ключевая проблема 2007? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2010, 08:58 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
Deggasad, в 2007 мульен строк, это скок данных надо нее, речь о 2003 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2010, 09:23 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
я имел ввиду может 2007 поставить - пыратский хотя бы 1 для этих целей - хотя бред Имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2010, 09:29 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
Deggasadя имел ввиду может 2007 поставить - пыратский хотя бы 1 для этих целей - хотя бред Имхоза пиратский ИСБ не погладит по головке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2010, 10:07 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
Deggasadотчетом в классическом понимании он станет, когда ты уберешь галочку в настройках таблицы "Сохранить данные вместе с таблицей" Вот если б было "Хранить данные в исходном виде"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2010, 14:51 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
ShamanusWhite OwlК чертям Эксель с его Пивотами, даешь СУБД с толстым клиентом.Да стоит уже Microstrategy, и надстройка еёйная к Excel тоже имеется, но только то народ шлет письма с Excel файлами. К несчастью надо извлекать информацию.Ну шлют, ну и что? Вытяни данные из Экселя и запиши их в свою базу, а потом SQL в руки и издевайся над данными сколько хочешь. То что контрагент присылает данные в формате неудобном для обработки не означает что ты не имеешь право переконвертировать данные в удобный тебе формат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2010, 18:20 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
White OwlВытяни данные из Экселя как? Даже руками это очень сложно, т.к. данных там больше чем вмещает лист. Вот пришлю я Вам где 150тыс строк исходных данных для PivotTable - как все 100% извлечете? Можно только ставить руками фильтр - и по фрагментам вытаскивать то, что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2010, 09:43 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
ShamanusWhite OwlВытяни данные из Экселя как? Даже руками это очень сложно, т.к. данных там больше чем вмещает лист. Вот пришлю я Вам где 150тыс строк исходных данных для PivotTable - как все 100% извлечете? Можно только ставить руками фильтр - и по фрагментам вытаскивать то, что нужно.Ты из PivotCache одну запись прочитать можешь? Текстовый файл открыть на запись можешь? Напечатать в этот файл поля из recordset через запятую можешь? Если на вышеперечисленные вопросы ты ответил "да могу", то ты тоже можешь вытащить 100% данных из PivotCache :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2010, 17:52 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
White OwlТы из PivotCache одну запись прочитать можешь? ... напишите как пожалуйста, а то я не въеду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2010, 13:43 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
DeggasadWhite OwlТы из PivotCache одну запись прочитать можешь? ... напишите как пожалуйста, а то я не въеду Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2010, 18:50 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
White OwlDeggasadпропущено... напишите как пожалуйста, а то я не въеду Код: plaintext 1. 2. 3. 4. 5. Так это же только для случая когда исходником для построения пивота был рекодсет, а если диапазон, то Set rs = pc.Recordset не прокатит :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2010, 22:29 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
DeggasadТак это же только для случая когда исходником для построения пивота был рекодсет, а если диапазон, то Set rs = pc.Recordset не прокатит :)А тогда читай из SourceData. С другой стороны, если источником был диапазон, то у тебя не будет сложностей и скопировать данные обратно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2010, 01:42 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
White OwlDeggasadТак это же только для случая когда исходником для построения пивота был рекодсет, а если диапазон, то Set rs = pc.Recordset не прокатит :)А тогда читай из SourceData. С другой стороны, если источником был диапазон, то у тебя не будет сложностей и скопировать данные обратно... поправочка - если диапазон "местный", то бишь из данной книги. А если данные из другой книги получается их не извлечешь. Ну ладно, продолжу ликбез далее. По идеям подкинутым выше сделал следующее Создал на листе несколько сводных таблиц, с разными источниками данных и написал вот такой код Код мониторинга сводных Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. собсно итог запуска этого кода (в качестве имени пивота я указал тип подключения) Pivot1 name:ИсточникДиапазонДругаяКнига Pivot1 source type:1 Pivot1 source:[Книга1]Лист1!R1C1:R40C4 Pivot1 cache:1 Pivot1 recordset:False Pivot1 recordset size:39 __________________________________________________ Pivot2 name:ИсточникБДаксесс Pivot2 source type:2 Pivot2 ConnFile: Pivot2 DataFile:/ удалил путь к базе / Pivot2 cache:2 Pivot2 recordset:False Pivot2 recordset size:148511 Pivot2 ADO:Provider=Microsoft.ACE.OLEDB.12.0;Password="";User ID=Admin;Data Source=/ удалил путь к базе /;Mode=Share Deny Write ;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB: Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1; Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB: Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB: Support Complex Data=False Pivot2 Querytype:5 __________________________________________________ Pivot3 name:ИсточникДиапазонЭтаКнига Pivot3 source type:1 Pivot3 source:Лист1!R1C1:R40C4 Pivot3 cache:3 Pivot3 recordset:False Pivot3 recordset size:39 __________________________________________________ Pivot4 name:ИсточникRecordsetADO Pivot4 source type:2 Pivot4 ConnFile: Pivot4 DataFile: Pivot4 cache:4 Pivot4 recordset:False Pivot4 recordset size:12 Pivot4 Querytype:7 __________________________________________________ Pivot5 name:ИсточникКубДанных Pivot5 source type:2 Pivot5 ConnFile: Pivot5 DataFile:E:\MyExcel.cub Pivot5 cache:5 Pivot5 recordset:False Pivot5 recordset size:0 Pivot5 ADO:Provider=MSOLAP.2;Persist Security Info=True;Data Source=E:\MyExcel.cub;Client Cache Size=25;Auto Synch Period=10000; MDX Compatibility=1 Pivot5 Querytype:5 __________________________________________________ Pivot6 name:ИсточникMSSQLсервер Pivot6 source type:2 Pivot6 ConnFile:/ удалил путь и имя файла /.odc Pivot6 DataFile: Pivot6 cache:6 Pivot6 recordset:False Pivot6 recordset size:6226 Pivot6 ADO:Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=MD;Data Source=/ удалил имя сервера /; Use Procedure for Prepare=1; Auto Translate=True;Packet Size=4096;Workstation ID=/ удалил /;Use Encryption for Data=False;Tag with column collation when possible=False Pivot6 Querytype:5 __________________________________________________ Pivot7 name:ИсточникДанныхOracleSQLServerЧерезMsQuery Pivot7 source type:2 Pivot7 ConnFile: Pivot7 DataFile: Pivot7 cache:7 Pivot7 recordset:False Pivot7 recordset size:6706 Pivot7 Querytype:1 __________________________________________________ какие выводы. рекордсет в пивоткэше судя по всему только для записи, а не чтения. SourceType малоинформативное само по себе свойство последний вывод - можно конечно нафигачить парсер типа источника данных, но это не поможет эти данные получить во всех случаях кроме случая -источник эта книга кажется тупик все глубже и глубже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2010, 10:31 |
|
||
|
GetData
|
|||
|---|---|---|---|
|
#18+
ShamanusWhite Owlпропущено... А тогда читай из SourceData. С другой стороны, если источником был диапазон, то у тебя не будет сложностей и скопировать данные обратно... поправочка - если диапазон "местный", то бишь из данной книги. А если данные из другой книги получается их не извлечешь. +1 обычно пересылают сводную таблицу на отдельном листе в отдельной книге зачем ей данные если они и так хранятся с ней. Shamanus... кажется тупик все глубже и глубже меня это тоже в свое время убивало, но: - у вас остается Selection.ShowDetail = True - можно заставить присылать людей исходные данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2010, 13:20 |
|
||
|
|

start [/forum/topic.php?all=1&fid=61&tid=2177430]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 206ms |
| total: | 486ms |

| 0 / 0 |
