专栏名称: Excel之家ExcelHome
excel技巧原创教程每日推送,excel表格职场模板干货仓库,图文/视频/动画等多种教学方式分享excel操作技巧教程/excel函数公式教程/excel数据透视表教程/excel图表教程/Word教程,助您轻松提高办公效率!
目录
相关文章推荐
完美Excel  ·  几段操作工作簿的VBA代码 ·  2 天前  
完美Excel  ·  从安全总监离职看企业安全管理痛点 ·  2 天前  
完美Excel  ·  VBA:追踪工作簿打开和关闭信息 ·  昨天  
Excel之家ExcelHome  ·  筛选状态下算乘积,还不会的打屁屁 ·  3 天前  
Excel之家ExcelHome  ·  GROUPBY函数的几个典型应用 ·  4 天前  
51好读  ›  专栏  ›  Excel之家ExcelHome

筛选状态下算乘积,还不会的打屁屁

Excel之家ExcelHome  · 公众号  · Excel  · 2025-01-24 07:45

正文

如下图,是各食堂的采购记录,需要计算筛选后的商品总价。


G1单元格输入公式:

=SUMPRODUCT(SUBTOTAL(3,OFFSET(A1,ROW(1:9),0))*C2:C10*D2:D10)

接下来咱们简单说说公式的计算过程:

要计算筛选后的内容,首先需要判断单元格是不是处于显示状态。

先来看OFFSET的基本用法:

=OFFSET(基点,偏移的行数,偏移的列数,[新引用的行数],[新引用的列数])

公式中的OFFSET(A1,ROW(1:9),0)部分,OFFSET函数以A1单元格为基点,向下偏移的行数是ROW(1:9)的计算结果,表示依次向下偏移1~9行,最终得到9个引用区域,每个单元格区域由一个单元格构成。

接下来使用SUBTOTAL函数对OFFSET函数得到的多个引用区域进行处理,第一参数使用3,表示使用COUNTA函数的计算规则,即依次统计A2~A9这九个单元格区域中的不为空的单元格个数。

如果单元格处于显示状态,则对这个单元格的统计结果为1,否则统计结果为0。

这部分公式得到类似下面的效果:

{0;0;0;0;0;1;1;1;1}

再用SUBTOTAL函数的结果乘以C列的单价和D列的数量,如果单元格处于显示状态,则相当于1*数量*单价,否则相当于0*数量*单价。

最后使用SUMPRODUCT函数对乘积进行求和,就得到了筛选后的商品总价。


好了,今天的内容就是这些吧,祝各位一天好心情。


图文制作:祝洪忠

1、点击或搜索微信公众号【 Excel之家ExcelHome】到公众号首页。

2、点击右上角【···】,在下拉菜单中点击【设为星标】。

设置星标后,小伙伴们就不用担心错过咱们的推送了!

设为星标,精彩内容不错过