Я пытаюсь подвести набор видимых ячеек в листе данных, используя формулу:Суммируя видимые ячейки в Excel VBA
=SUMPRODUCT(SUBTOTAL(109,OFFSET(C2:C6,ROW(C2:C6)-MIN(ROW(C2:C6)),,1,1))*(A2:A6="peter")*(B2:B6=201104))
из-за факт моей приборной панели, имеющей огромный задний конец набор данных (170K) , приборная панель зависает, когда я использую эту формулу (я должен использовать ее для каждой таблицы, которую я хочу отобразить на лицевой части).
Есть ли способ оптимизировать это? Или, возможно, более быстрый метод с использованием индекса и соответствия.
Простые формулы, такие как CountA и Countif, также задерживаются, если у вас есть набор данных, например, 170K. Таким образом, Index/Match определенно не даст вам никаких разных результатов. Мое предложение Используйте VBA, а затем покажите индивидуальную пользовательскую форму с индикатором progressbar, чтобы Excel не дал вам ощущение «Hung Up». Это, однако, никоим образом не уменьшит скорость до тех пор, пока вы не будете использовать массив для выполнения ваших вычислений. –
Я использовал следующий метод ... его не быстрый ... но его определенно быстрее, чем использование смещения. Сначала я скопировал отфильтрованные данные на другой лист. Я определил сводные таблицы и в макросах, обновил точки поворота, когда и когда был сделан фильтр. – galeej
Я думал, что вы хотите автоматизированный метод :) Если вам нравится ручной метод, тогда это kool :) –