在excel VBA中汇总可见单元格

时间:2013-08-08 06:19:33

标签: excel vba excel-formula

我试图使用以下公式在数据表中对一组可见单元格求和:

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

由于我的仪表板有一个巨大的后端数据集(170k),当我使用这个公式时,仪表板会冻结(我必须在每个我希望在前端显示的表上使用它)。

有没有办法优化这个?或者也许是使用索引和匹配的更快的方法。

1 个答案:

答案 0 :(得分:0)

如果将数据复制到另一个工作表,它将完美运行。启用包含所有列的新数据透视表。因此,在数据表中过滤数据时,复制的工作表将仅包含过滤的值。

数据透视表现在只获取复制的数据(即过滤后的数据)。完成后,您需要在vba中添加一行代码:

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

并自动更新数据透视表。因此,当您使用列表框过滤工作表中的数据时,数据透视表会自动更新