如何将指定SUMIFS公式转换为ARRAYFORMULA?
将SUMIFS转换为ARRAYFORMULA的解决方案
场景1:一次性计算多行对应结果(无需下拉)
如果需要在单个单元格中批量生成所有行(对应B6:B1100、C6:C1100、D6:D1100的条件)的求和结果,使用以下公式:
=ARRAYFORMULA( IF( $B$6:$B$1100 = "", "", MMULT( ('CHICKEN USA'!$AO$11:$AO$1100 = TRANSPOSE($B$6:$B$1100)) * ('CHICKEN USA'!$AP$11:$AP$1100 = TRANSPOSE($C$6:$C$1100)) * ('CHICKEN USA'!$BP$11:$BP$1100 = TRANSPOSE($D$6:$D$1100)) * ('CHICKEN USA'!$BU$11:$BU$1100 = "First Quality") * 'CHICKEN USA'!$GF$11:$GF$1100, SEQUENCE(ROWS('CHICKEN USA'!$GF$11:$GF$1100), 1, 1, 0) ) ) )
场景2:单行计算(可下拉或批量处理)
如果仅需计算单行(如B6、C6、D6对应条件)的结果,或希望公式支持下拉复用,使用简化版本:
=ARRAYFORMULA( SUM( 'CHICKEN USA'!$GF$11:$GF$1100 * ('CHICKEN USA'!$AO$11:$AO$1100 = $B6) * ('CHICKEN USA'!$AP$11:$AP$1100 = $C6) * ('CHICKEN USA'!$BP$11:$BP$1100 = $D6) * ('CHICKEN USA'!$BU$11:$BU$1100 = "First Quality") ) )
公式逻辑说明
- 布尔值运算:每个条件判断返回
TRUE/FALSE,在算术运算中自动转换为1/0,仅当所有条件同时满足时,才会保留GF列的对应数值参与求和 TRANSPOSE:将当前表的条件列转置,实现与数据源行的逐行匹配MMULT:对每行的匹配结果批量求和,生成对应行的总合IF判断:避免空条件单元格返回无效的0值
内容的提问来源于stack exchange,提问作者Vince
相关产品推荐
相关产品推荐

