Excel SumIfs函数基本与用日期和数组组合同一列多条件的6个使用实例

亮术网 2019-08-27 本网原创

在 Excel 中,SumIfs函数用于多个条件求和,与SumIf函数的区别是,SumIfs能组合多个条件,SumIf只能组合一个条件。SumIfs函数至少要有一个条件区域/条件对,最多只能有 127 个条件区域/条件对。

如果要用SumIfs函数在同一列求满足多个条件的和,若条件是“与”关系,可以组合两个条件区域/条件对;如果条件是“或”关系,可以用数组组合多条件;一般来说,如果要求指定日期内的和,即条件为“与”关系,要用前者;如果要求几个分类的和,即条件为“或”关系,要用后者。

 

一、Excel SumIfs函数语法

1、表达式:SUMIFS(Sum_Range, Criteria_Range1, Criteria1, [Criteria_Range2, Criteria2], ...)

中文表达式:SUMIFS(求和区域,条件区域1,条件1,[条件区域2,条件2],...)

 

2、说明:

A、SumIfs函数至少要有 Sum_Range、Criteria_Range1、Criteria1 三个参数,后两个参数为条件区域和条件,也就是在条件区域内设定条件;条件区域1和条件1组成一个条件区域/条件对,SumIfs函数至少要有1个条件区域/条件对、最多只能有 127 个条件区域/条件对。

B、如果求和区域有空值、逻辑值(True 或 False)和不能转为数字的文本,它们将被忽略。

C、条件 Criteria 可以是数字、字符(如“女装”)、表达式(如 ">=0"、"<>1")、单元格引用(A1)、函数(如 NOW());条件中有文本、逻辑值或数学符号都要用双引号括号起来,单独数字不需用双引号括起来。在条件中,可以使用通配符问号(?)和星号(*),问号表示一个字符,星号表示任意一个或多个字符;如果要查找问号或星号,要使用转义字符~,例如查找问号,需这样表示 ~?。

D、Sum_Range 与 Criteria_Range 形状大小必须相同,即它们必须有相同的行数和列数,这点与SumIf函数不同。

 

二、Excel SumIfs函数基本使用实例

(一)只有一个条件区域/条件对(求和与条件区域为同一列)的实例

1、假如要求所有男装的销量之和与求销量大于 800 的服装销量之和。选中 F11 单元格,把公式 =SUMIFS(F2:F10,C2:C10,"男装") 复制到 F11,按回车,返回求和结果 1879;双击 F11,把公式改为 =SUMIFS(F2:F10,F2:F10,">800"),按回车,返回求和结果 2771;操作过程步骤,如图1所示:

Excel SumIfs函数基本与用日期和数组组合同一列多条件的6个使用实例

图1

2、公式  =SUMIFS(F2:F10,C2:C10,"男装") 的求和区域为 F2:F10,条件区域为 C2:C10,条件为 "男装",意思是把 C2:C10 中为“男装”的服装的销量计入求和,即把 C5 和 C8 对应的 F5 和 F8 计入求和。

3、公式 =SUMIFS(F2:F10,F2:F10,">800") 的求和区域和条件区域都为 F2:F10,条件为 ">800",即求销量大于 800 的所有服装销量之和。

 

(二)有两个条件区域/条件对的实例

1、假如要求所有女装且价格大于等于 70 的销量之和。选中 F11 单元格,把公式 =SUMIFS(F2:F10,C2:C10,"女装",E2:E10,">=70") 复制到 F11,按回车,返回求和结果 1420;操作过程步骤,如图2所示:

Excel SumIfs函有两个条件区域/条件对的实例

图2

2、公式 =SUMIFS(F2:F10,C2:C10,"女装",E2:E10,">=70"),第一个条件区域/条件对为 C2:C10,"女装",即在 C2:C10 中找出所有为“女装”的服装;第二个条件区域/条件对为 E2:E10,">=70",即在 E2:E10 中找出所有价格大于等于 70 的服装;两个条件是“与”的关系,即同时找到既是女装并且价格大于等于 70 的所有服装销量,然后对它们求和。

 

(三)条件带通配符问号(?)或星号(*)的实例

(1)条件带通配符问号(?)

1、假如要求产品名称以“粉红”开头且“粉红”后只有两个字的服装销量之和。选中 F11 单元格,把公式 =SUMIFS(F2:F10,B2:B10,"粉红??") 复制到 F11,按回车,返回求和结果 892;操作过程步骤,如图3所示:

Excel SumIfs函数条件带通配符问号(?)求和

图3

2、公式 =SUMIFS(F2:F10,B2:B10,"粉红??") 中的条件区域为 B2:B10,条件为 "粉红??",条件的意思是以“粉红”开头且“粉红”后只两个字;B2:B10 中以“粉红”开头的共有三个单元格,分别为 B2、B7 和 B10,而仅有 B10 “粉红”后只有两个字,因此求和结果为 B10 对应的 F10 中的数值。

 

(2)条件带通配符星号(*)

1、假如要求产品名称以“白色”开头且以“衬衫”结尾的服装销量之和。选中 F11 单元格,把公式 =SUMIFS(F2:F10,B2:B10,"白色*",B2:B10,"*衬衫") 复制到 F11,按回车,返回求和结果 897;操作过程步骤,如图4所示:

Excel SumIfs函数条件带通配符星号(*)求和

图4

2、公式说明:

A、B2:B10,"白色*" 是公式 =SUMIFS(F2:F10,B2:B10,"白色*",B2:B10,"*衬衫") 的第一个条件区域/条件对,意思是在 B2:B10 中找出以“白色”开头的服装,条件中的 * 表示任意一个或多个字符。

B、B2:B10,"*衬衫" 是公式 =SUMIFS(F2:F10,B2:B10,"白色*",B2:B10,"*衬衫") 的第二个条件区域/条件对,意思是在 B2:B10 中找出以任意一个或多个字符开头且以“衬衫”结尾的服装。

 

(四)条件中带函数的实例

1、假如要求女装且大于等于平均销量的所有服装销量之和。选中 F11 单元格,把公式 =SUMIFS(F2:F10,C2:C10,"女装",F2:F10,">"&AVERAGE(F2:F10)) 复制到 F11,按回车,返回求和结果 1657;操作过程步骤,如图5所示:

Excel SumIfs条件中带函数的实例

图5

2、公式第一个条件区域/条件对 C2:C10,"女装" 是要在 C2:C10 中找出所有“女装”;第二个条件区域/条件对为 F2:F10,">"&AVERAGE(F2:F10),意思是在 F2:F10 中找出大于所有服装平均销量的服装,AVERAGE(F2:F10) 用于求所有服装的平均销量。

 

 

三、Excel SumIfs函数扩展使用实例

(一)SumIfs函数用数组组合同一列多条件求和

1、假如要求“大类”为“女装”且“小类”为“衬衫或T恤”的所有服装销量之和。选中 F11 单元格,把公式 =SUM(SUMIFS(F2:F10,C2:C10,"女装",D2:D10,{"衬衫","T恤"})) 复制到 F11,按回车,返回求和结果 2312;操作过程步骤,如图6所示:

Excel SumIfs函数用数组组合同一列多条件求和

图6

2、公式说明:

公式 =SUM(SUMIFS(F2:F10,C2:C10,"女装",D2:D10,{"衬衫","T恤"})) 由 Sum 与 SumIfs 组合而成,由于 SumIfs 第二个条件 {"衬衫","T恤"} 是数组,而 SumIfs 默认只能返回符合数组第一个条件("衬衫")的求和值,加 Sum 后,SumIfs 才能以数组形式返回符数组中两个条件的求和值,即 =SUM({1784;528}),再用 Sum 把两个值相加。

 

(二)SumIfs函数日期条件求和

1、假如要求1月份“衬衫” 销量之和。选中 C10 单元格,把公式 =SUMIFS(C2:C9,A2:A9,">=2018-01-01",A2:A9,"<=2018-1-31") 复制到C10,按回车,返回求和结果 1003,操作过程步骤,如图7所示:

Excel SumIfs函数日期条件求和

图7

2、公式 =SUMIFS(C2:C9,A2:A9,">=2018-01-01",A2:A9,"<=2018-1-31") 的两个条件区域都为 A2:A9,条件为 ">=2018-01-01" 和"<=2018-1-31",也就是找出 1 月的所有日期。

3、如果要求所有服装 1 月份的销量之和,再用 SumIfs 不好写条件,用数组条件也不行,因为数组条件为“或”的关系而不是“与”的关系,这种情况可以 Sum + Month 函数实现。以下是用 Sum + Month 函数实现求 1 月份“衬衫”销量之和与求 1 月份所有服装销量之和的演示,如图8所示:

Excel Sum函数日期条件求和

图8

(1)演示说明:把公式 =SUM((C$2:C$9)*(MONTH(A$2:A$9)=1)) 复制到 C11 单元格,按 Ctrl + Shift + 回车,返回求和结果 1003;双击 C11,把 C$9 改为 E$9,按 Ctrl + Shift + 回车,返回求和结果 3995。

(2)公式说明

A、=SUM((C$2:C$9)*(MONTH(A$2:A$9)=1)) 是一个数组公式,因此要按 Ctrl + Shift + 回车。

B、C$2:C$9 以数组形式返回 C2 到 C9 中所有数值,即返回 {239;215;439;549;586;655;658;513}。

C、A$2:A$9 以数组形式返回 A2 到 A9 中所有日期,MONTH(A$2:A$9)=1 用于取 A2 到 A9 中每个日期的月份,然后与 1 比较,如果等于 1,返回 True,否则返回 False;例如取 A2(2018-01-01),MONTH(A1) = 1,再与 1 比较,由于相等,所以返回 True,其它的以此类推;最后返回数组 {True;True;False;True;False;False;False;False}。

D、则公式变为 =SUM({239;215;439;549;586;655;658;513}*{True;True;False;True;False;False;False;False}),再把两个数组对应的元素相乘,相乘时由于 True 被转为 1、False 被转为 0,则公式变为 =SUM({239;215;0;549;0;0;0;0}),最后用 Sum 求和。