2013-08-08 4 views
1

Я пытаюсь подвести набор видимых ячеек в листе данных, используя формулу:Суммируя видимые ячейки в Excel VBA

=SUMPRODUCT(SUBTOTAL(109,OFFSET(C2:C6,ROW(C2:C6)-MIN(ROW(C2:C6)),,1,1))*(A2:A6="peter")*(B2:B6=201104)) 

из-за факт моей приборной панели, имеющей огромный задний конец набор данных (170K) , приборная панель зависает, когда я использую эту формулу (я должен использовать ее для каждой таблицы, которую я хочу отобразить на лицевой части).

Есть ли способ оптимизировать это? Или, возможно, более быстрый метод с использованием индекса и соответствия.

+0

Простые формулы, такие как CountA и Countif, также задерживаются, если у вас есть набор данных, например, 170K. Таким образом, Index/Match определенно не даст вам никаких разных результатов. Мое предложение Используйте VBA, а затем покажите индивидуальную пользовательскую форму с индикатором progressbar, чтобы Excel не дал вам ощущение «Hung Up». Это, однако, никоим образом не уменьшит скорость до тех пор, пока вы не будете использовать массив для выполнения ваших вычислений. –

+0

Я использовал следующий метод ... его не быстрый ... но его определенно быстрее, чем использование смещения. Сначала я скопировал отфильтрованные данные на другой лист. Я определил сводные таблицы и в макросах, обновил точки поворота, когда и когда был сделан фильтр. – galeej

+0

Я думал, что вы хотите автоматизированный метод :) Если вам нравится ручной метод, тогда это kool :) –

ответ

0

Он отлично работает, если вы скопируете данные на другой лист. Включите новую сводную таблицу со всеми столбцами. Таким образом, когда данные фильтруются в листе данных, скопированный лист будет содержать только отфильтрованные значения.

Теперь сводная таблица будет получать только скопированные данные (т. Е. Отфильтрованные данные). После завершения этого процесса, вам нужно будет добавить строку кода в VBA:

worksheets("Summary").pivottables("summary_view").pivotcache.refresh 

и автоматически обновляет сводную таблицу. Следовательно, когда вы фильтруете данные на листе с помощью списка, свод автоматически обновляется

Смежные вопросы