一、如果是是要满足一个条件,则用SUMIF函数
1、SUMIF函数的定义
根据指定条件对若干单元格求和。
语法
SUMIF(range,criteria,sum_range)
Range 为用于条件判断的单元格区域。
Criteria 为确定哪些单元格将被相加求和的条件,其形式可以为数字、表达式或文本。例如,条件可以表示为 32、"32"、">32" 或 "apples"。
Sum_range 是需要求和的实际单元格。
说明
只有在区域中相应的单元格符合条件的情况下,sum_range 中的单元格才求和。
如果忽略了 sum_range,则对区域中的单元格求和。
Microsoft Excel 还提供了其他一些函数,它们可根据条件来分析数据。例如,如果要计算单元格区域内某个文本字符串或数字出现的次数,则可使用 COUNTIF 函数。如果要让公式根据某一条件返回两个数值中的某一值(例如,根据指定销售额返回销售红利),则可使用 IF 函数。
2、举例
(1)假设要求出A列名字为张三,B列的收入总数值,则公式可以写成(在A,B列以外的任一单元格写入)
=SUMIF(A:A,"张三",B:B)
(2)假设A列为姓名,B列的收入值,要在D1单元格得出C1单元格所标示的姓名的收入总值(即”张三“这个名字写在C1单元格中),则D1单元格的公式可以写成
=SUMIF(A:A,C1,B:B)
二、如果是要满足多个条件,则用SUMIFS函数
1、SUMIFS函数的定义
对范围中满足多个条件的单元格求和。例如,如果需要对区域 A1:A20 中符合以下条件的单元格的数值求和:B1:B20 中相应单元格的数值大于零且 C1:C20 中相应单元格的数值小于 10,则可以使用以下公式:
=SUMIFS(A1:A20, B1:B20, ">0", C1:C20, "<10")
重要 SUMIFS 和 SUMIF 函数的参数顺序有所不同。具体而言,sum_range 参数在 SUMIFS 中是第一个参数,而在 SUMIF 中则是第三个参数。如果要复制和编辑这些相似函数,请确保按正确的顺序放置参数。
语法
SUMIFS(sum_range, criteria_range1, criteria1,
[criteria_range2, criteria2], …)
SUMIFS 函数语法具有下列参数:
sum_range 必需。对一个或多个单元格求和,包括数值或包含数值的名称、区域或单元格引用。忽略空白和文本值。
criteria_range1 必需。在其中计算关联条件的第一个区域。
criteria1 必需。条件的形式为数字、表达式、单元格引用或文本,可用来定义将对 criteria_range1 参数中的哪些单元格求和。例如,条件可以表示为 32、">32"、B4、"苹果" 或 "32"。
criteria_range2, criteria2, … 可选。附加的区域及其关联条件。最多允许 127 个区域/条件对。
注解
仅在 sum_range 参数中的单元格满足所有相应的指定条件时,才对该单元格求和。例如,假设一个公式中包含两个 criteria_range 参数。如果 criteria_range1 的第一个单元格满足 criteria1,而 criteria_range2 的第一个单元格满足 critera2,则 sum_range 的第一个单元格计入总和中。对于指定区域中的其余单元格,依此类推。
sum_range 中包含 TRUE 的单元格计算为 1;sum_range 中包含 FALSE 的单元格计算为 0(零)。
与 SUMIF 函数中的区域和条件参数不同,SUMIFS 函数中每个 criteria_range 参数包含的行数和列数必须与 sum_range 参数相同。
您可以在条件中使用通配符,即问号 (?) 和星号 (*)。问号匹配任一单个字符;星号匹配任一字符序列。如果要查找实际的问号或星号,请在字符前键入波形符 (~)。
2、举例
(1)假设要求出A列名字为张三,B列内容为“收入”或“支入”,C列数据的总数值,则公式可以写成(在A,B,C列以外的任一单元格写入)
=SUMIFS(C:C,A:A,"张三",B:B,"收入")
(2)假设A列为姓名,B列的“收入”或“支出”,C列为钱数,要在F1单元格得出D1单元格所标示的姓名,E1标示的“收入”或是”支出“,得出C列对应数据的总值(即”张三“这个名字写在C1单元格中,“收入”或“支出”写在E1单元格),则F1单元格的公式可以写成
=SUMIFS(C:C,A:A,D1,B:B,E1)
=sumproduct((a1:a100>=1)*(a1:a100<=3)*b1:b100)
=sumproduct((a1:a100>=4)*(a1:a100<=7)*b1:b100)
=sumproduct((a1:a100>=8)*(a1:a100<=10)*b1:b100)
公式假设数据是1行到100行