相信大家在平时工作中也会经常用到SUMIFS函数来进行多条件求和,对此函数的参数我就不再过多的叙述,今天我们来看如何实现根据条件自动选择求和区域,来得到我们想要的数据。

需求:选择不同的产品和日期,求和得到对应的出货数量

excel怎么使用sumif求和(SUMIFS实现根据条件自动选择求和区域)(1)

首先,我来试着写出SUMIFS写出求和公式如下

=SUMIFS(F:F,A:A,D24,B:B,"出货*")

excel怎么使用sumif求和(SUMIFS实现根据条件自动选择求和区域)(2)

对于SUMIFS 函数,除第一个参数以外的其他参数相对于来说比较容易,那我们就来攻克第一个参数。

通过分析2月8日对应的是F列,如果用数字表达就是第6列。

我们可以通过MATCH函数来实现查找。

MATCH函数说明:返回指定数值在指定数组区域中的位置

公式:=MATCH(E23,1:1,0)

excel怎么使用sumif求和(SUMIFS实现根据条件自动选择求和区域)(3)

通过函数MATCH找到对应的列数以后,我们需要实现F:F这样的格式。

这时我们需要用到ADDRESS函数

ADDRESS函数说明:按照给定的行号和列标,建立文本类型的单元格地址引用。

公式:=ADDRESS(1,MATCH(E23,1:1,0),4)

excel怎么使用sumif求和(SUMIFS实现根据条件自动选择求和区域)(4)

通过如上公式我们得到了F1

我想大家应该想到了怎样把F后面的这个1给去掉,用LEFT,MID,SUBSTITUTE等函数都可以,这里我推荐用SUBSTITUTE

SUBSTITUTE函数说明: 在文本字符串中用 new_text 替代 old_text

公式:=SUBSTITUTE(ADDRESS(1,MATCH(E23,1:1,0),4),1,"")

我们用空字符串来替换1就达到了我们的目的。

下面我们还要拼接字符串也就是用&来拼接来实现F:F

公式:=SUBSTITUTE(ADDRESS(1,MATCH(E23,1:1,0),4),1,"")&":"&SUBSTITUTE(ADDRESS(1,MATCH(E23,1:1,0),4),1,"")

excel怎么使用sumif求和(SUMIFS实现根据条件自动选择求和区域)(5)

这样就得到了我们想要的结果,但是我们带入到SUMIFS公式时却会出错

excel怎么使用sumif求和(SUMIFS实现根据条件自动选择求和区域)(6)

这是因为我们没有转化为单元格区域,上面的公式得到的F:F只是字符串类型,这时我们还需要用到一个函数INDIRECT

INDIRECT函数说明:返回由文本字符串指定的引用

公式:=SUMIFS(INDIRECT(SUBSTITUTE(ADDRESS(1,MATCH(E23,1:1,0),4),1,"")&":"&SUBSTITUTE(ADDRESS(1,MATCH(E23,1:1,0),4),1,"")),A:A,D24,B:B,"出货*")

excel怎么使用sumif求和(SUMIFS实现根据条件自动选择求和区域)(7)

,