如果优化卡顿的SUMPRODUCT函数!

作者:E精精 发布时间: 2022-12-21 14:01 阅读(506)  

 

表格较大或者逻辑较为复杂的情况下,使用SUMPRDOCUCT 函数,往往会卡死,高手很少使用这个函数,下面我们来讲讲优化!

经常看到如下的公式:

=SUMPRODUCT((MONTH(A2:A999)=6)*(B2:B999="西北"),F2:F999)

这个公式有没有问题?结果正确,直观看肯定没有问题,而且也容易写!但是其中犯了一个大部分新手容易犯的错误,就是引用大量无效的区域!

SUMPRODUCT函数,因为自带数组计算,不需要三键,特别推荐新手来计算数组计算,这个既是他的优点,又是他的缺点!因为数组计算非常占用内存,区域越大,逻辑越复杂的公式,占用越大,所以很多新手,经常问,为什么我的表这么卡!

▍优化01 – 合适的数据区域

在使用SUMPRODUCT函数时,一定要控制区域数据,部分新手习惯使用整列引用,在SUMPRODUCT函数中更是致命的!不要提前预留过多,比如上面的999,修改为合适的范围!

这种优化,只是从习惯上纠正,在数据一定的情况下,可以起到一定的效果,但是不是最核心的!

▍优化02 – 选择更合适的公式

SUMRODUCT函数,往往用来实现多条件求和,多条件求和,我们不仅有他,还有SUMIFS函数,这个函数的效率,要比SUMPRODUCT函数高很多,在设计模板和大量数据分析时,首选!

=SUMIFS(

    F:F,

    B:B, “西北”,

    A:A, “>=2019/6/1”,

    A:A, “<=” & EOMONTH(DATE(2019, 6, 1), 0)

)

很多新手肯定要讲了,我就是不知道SUMIFS怎么写这样的日期,才选择使用SUMPRODUCT函数的,所以呢?我们总结一个函数模板给你吧!

=SUMIFS(

    求和列, 

    条件1列, 条件1,

    条件2日期列 “>=”&DATE(年,月,日),

    条件2日期列, “<=” & EOMONTH(DATE(年,月,日), 0)

)

这里EOMONTH函数获取指定日期的本月最后一天日期

如果还有更多条件,我们只需要按照(条件区域,条件),成对写就行!

 

▍优化03 – 透视表也是不错的选择

其实不要过度依赖公式,除非你的数据是需要频繁更新或者模板类,第三人填写等,否则临时性的我们可以使用透视表等工具,搞定更轻松!

▼动画演示操作过程

透视表+切片器真的非常奈斯~

年底了,最近整理了全年各种报表数据,用于分析和查看。我的组合基本是PowerQuery抽数区域,透视表+切片,筛选数据,图表模板,展示数据,别人忙疯的时候,我其实就是在切片,想看哪一个月的数据哪个维度的数据,切片器切一下秒出!感觉非常舒服!

年终了,你的数据忙的怎么样?可有自动化办公组合技能和大家分享?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注