Страницы: 1
RSS
обновить кэш сводной + таблица
 
подходит к завершению моя "грандиозная" работа) остался самый главный этап:  
на основании данных из листа "чорновий" формируется сводная.  
но количество строк на листе каждый раз разное.  
записал макрос для изменения источника данных в сводной, но не работает.  
Sub Макрос1()  
Dim irow As Long  
irow = Worksheets("чорновий").Cells(Rows.Count, 3).End(xlUp).Row  
   
   Worksheets("чорновий").PivotTables("СводнаяТаблица1").ChangePivotCache ActiveWorkbook. _  
       PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _  
       "D:\[пример.xls]чорновий!R2C1:R" & irow & "C21", Version:= _
       xlPivotTableVersion12)  
End Sub  
помогите кто может.  
 
2. на основании сводной нужно строить отчет такой как на листе "готовий" (начальство сводных не любит, так как не умеет ими пользоваться)  
проблема 1: я вообще не знаю как макросом вынуть из сводной данные в таком порядке как на листе.  
проблема 2: в сводной есть текстовые поля, которые надо обрабатывать как числа, только не суммировать, а сцеплять.  
 
буду благодарен за любую помощь)
 
Для изменения размеров источника данных можно и не макрос, а динамический именованный диапазон например: =СМЕЩ(ПОСТУПИЛО!$A$6;;;СЧЁТЗ(ПОСТУПИЛО!$A$6:$A$500)) (если нужно пример скину).  
 
По поводу начальства, на Планете Бытует мнение, что бороться нужно с неграмотностью начальства :), постарайтесь научить, переубедить, скажите иначе нельзя!  
 
PS: как у Вас организовано заполнение из учетных листов листа черновой? Отдельно оператор разносит? Или учетчики? Сейчас борюсь с тем что как только люди не отпираются лишь бы не разносить первичные документы :)!
 
извините не ту формулу скопировал  
=СМЕЩ(ПОСТУПИЛО!$A$5;0;0;СЧЁТЗ(ПОСТУПИЛО!$B:$B);СЧЁТЗ(ПОСТУПИЛО!$5:$5))
 
пример с диапазоном
 
=СМЕЩ(ПОСТУПИЛО!$A$5;0;0;СЧЁТЗ(ПОСТУПИЛО!$B:$B);СЧЁТЗ(ПОСТУПИЛО!$5:$5))  
Лучше заменить на:  
=ПОСТУПИЛО!$A$5:ИНДЕКС(ПОСТУПИЛО!$1:$65536;ПОИСКПОЗ("яяя";ПОСТУПИЛО!$A:$A);СЧЁТЗ($5:$5))
 
эээ)))  
переубедить начальство не получится)  
их слишком много и дел у них хватает, а чтобы еще ексель изучать...)  
у нас и операторы не сильно в ексе разбираются)  
но, зараза, всегда найдут способ как что то такое учудить чтоб формула не работала.  
поэтому я сейчас решил от формул отказаться совсем и сделать так, чтоб шаг влево, шаг вправо - расстрел)  
 
а черновой лист формируется на основании выборки из массива, который вручную собственно и формируют операторы.  
 
а куда эту формулу? в диспетчер имен?
 
ага) прикольно)  
за формулу спасибо обоим)  
использовал вариант kim  так как где то читал, что смещ тормозит комп.  
еще бы с остальным разобраться)
 
Если не нужно отслеживать ширину таблицы (она является постоянной), то лучше и от СЧЁТЗ() избавиться - тоже не самая быстрая функция.
 
не разобрался я с формулой kim,  :(. Вставляю, в диапазоне только шапка таблицы,что поправить, честно не понял. Димон, kim если не сложно выложите эту формулу в файле примера post_195035.rar
 
я наверно чё то намутил и мне казалось что работает)  
действительно - берет только по 5 строку.  
я чёт не понимаю механизма действия самой формулы: она в столбце с датами ижет "яяя"?
 
{quote}{login=Евгений.}{date=28.01.2011 11:46}{thema=Re: }{post}не разобрался я с формулой kim,  :(. Вставляю, в диапазоне только шапка таблицы,что поправить, честно не понял. Димон, kim если не сложно выложите эту формулу в файле примера post_195035.rar{/post}{/quote}  
Вот, теперь ищет по столбцу А и так как там числа, искать уже нужно очень большое число.
 
Спасибо я разобрался как сделано
 
Построение вашей сводной посредством VBA
 
Kuzmich  
спасибо, но построить сводную - не проблема.  
проблема построить табличку на основании сводной.
 
{quote}{login=Димон}{date=30.01.2011 12:34}{thema=}{post}Kuzmich  
спасибо, но построить сводную - не проблема.  
проблема построить табличку на основании сводной.{/post}{/quote}Тоже не проблема. Двойной клик на любой желтой ячейке в сводной. Если нужен макрос - запишите это макрорекордером.
 
Михаил, и это не совсем то.  
нужно уже сводные данные поместить в таблицу в таком виде как в примере.  
проще говоря - нужна сводная, но не сводная а просто таблица.  
просто скопировать не выйдет, так как есть нюансы, о которых я упоминал выше.
 
Димон  
Посмотрите такой вариант отчета,  
название отчета измените на свое.
 
спасибо, но и это не совсем то.  
я тут придумал разве что такой вариант.    
он очень громоздкий, но иначе ничего не лезет в голову.  
есть 2 сводные на основании одного источника данных.  
левая сводная - почти в таком виде как нужно для отчета, но не содержит информации по полям препараты, примечания, откуда и куда.  
вторая сводная - в развернутом виде с дополнительными столбцами в которых сцепляются нужные поля (не знаю правда как убрать запятые, если нету данных).  
и наконец табличка справа - итоговая.  
(я выделил цветами что из какой сводной в нее надо впихнуть, но не знаю будут ли они видны в 2003)    
в общем это та же левая сводная, но в нее надо на основании сравнения строк от "блок" по "культура" вставить недостающие данные из второй сводной.  
возможно ли такое?  
и может это натолкнет кого то на более простое решение.
 
Димон  
Посмотрите еще вариант отчета,  
название отчета измените на свое.
Страницы: 1
Читают тему
Наверх