夜雨聆风学习资料网

ARTICLE · 1249457

Excel 逻辑与条件汇总函数:IF 判等级,SUMIF/COUNTIF 按条件算账

Excel 逻辑与条件汇总函数:IF 判等级,SUMIF/COUNTIF 按条件算账

Excel 逻辑与条件汇总函数:IF 判等级,SUMIF/COUNTIF 按条件算账

数据处理里有一大半需求都是"满足某种情况才怎样"。分数够不够格、金额超没超阈值、只算某个人某个部门的数。这一篇把两套东西串起来讲,一套负责判断(AND、OR、IF),一套负责按条件汇总(SUMIF、COUNTIF、AVERAGEIF 家族)。两者常常配合使用,IF 里套 COUNTIF、COUNTIF 里用 IF 的判断结果,是很常见的写法。

先搞懂判断:IF、AND、OR

IF 二选一

语法 =IF(条件, 成立时的值, 不成立时的值)。

• C2 是分数,=IF(C2>=60,"及格","不及格")。

• 分数分三档用嵌套:=IF(C2>=90,"优秀",IF(C2>=60,"及格","不及格"))。先判是不是 90 以上,不是再看是不是 60 以上,都不是就是不及格。

嵌套 IF 别超过三四层,再多就很难读也容易错。分档太多时更推荐用 VLOOKUP 配一张对照表来打标签。

AND 与 OR 并列条件

AND 是"所有条件都成立"才返回 TRUE,OR 是"有一个成立"就返回 TRUE,两者通常躲在 IF 里面用。

语法 =AND(条件1, 条件2, …) / =OR(条件1, 条件2, …)。

• 两门都及格才算过:=IF(AND(C2>=60,D2>=60),"全科通过","有挂科")。

• 有一门优秀就算优秀:=IF(OR(C2>=90,D2>=90),"有单科优秀","")。

判断"销售额在 5000 到 8000 之间",正确写法是 =AND(C2>=5000,C2<=8000),别写成 Excel 不认的 5000<=C2<=8000,那种数学写法在表格里会直接算错。

按一个条件汇总:SUMIF、COUNTIF、AVERAGEIF

三个函数结构一致:先写去哪找条件,再写条件是什么,最后写对哪一列算(COUNTIF 不用最后一项)。

语法:

•=SUMIF(条件区域, 条件, 求和区域)

•=COUNTIF(条件区域, 条件)

•=AVERAGEIF(条件区域, 条件, 平均区域)

举例(用上面那张销售表):

• 只算销售部销售额的总和:=SUMIF(A2:A20,"销售部",C2:C20)。

• 数一数销售额超过 8000 的有几笔:=COUNTIF(C2:C20,">8000")。

• 求"销售部"的平均销售额:=AVERAGEIF(A2:A20,"销售部",C2:C20)。

条件里写比较符号要连引号一起写,比如 ">8000"、"<>0"(不等于 0)。要引用某单元格的值作条件,写成 ">"&E1 这种拼接形式。

按多个条件汇总:SUMIFS、COUNTIFS、AVERAGEIFS

多条件版本把要求和/要算的那一列放到最前面,后面才是一组组"条件区域 + 条件"。这跟单条件版本(条件区域在前)正好相反,很多人从 SUMIF 切到 SUMIFS 结果全错,就是栽在这个顺序上。

语法:

•=SUMIFS(求和区域, 条件区域1, 条件1, 条件区域2, 条件2, …)

•=COUNTIFS(条件区域1, 条件1, 条件区域2, 条件2, …)

•=AVERAGEIFS(平均区域, 条件区域1, 条件1, 条件区域2, 条件2, …)

举例:

• 算"销售部"里销售额大于 5000 的合计:=SUMIFS(C2:C20,A2:A20,"销售部",C2:C20,">5000")。注意先写要求和的 C2:C20,再挂条件。

• 同时是"销售部"且销售额大于 5000 的记录条数:=COUNTIFS(A2:A20,"销售部",C2:C20,">5000")。

• 求"市场部"的平均销售额:=AVERAGEIFS(C2:C20,A2:A20,"市场部")。

单数 SUMIF/COUNTIF/AVERAGEIF 是"条件在前、算的列在后",复数 SUMIFS/COUNTIFS/AVERAGEIFS 是"算的列在前、条件在后"。记不住就多打几个字,用复数版永远把要统计的那一列写在最开头。

条件汇总家族对照

需求
单条件
多条件
按条件求和
=SUMIF(条件区,条件,和区)=SUMIFS(和区,条件区,条件,…)
按条件计数
=COUNTIF(条件区,条件)=COUNTIFS(条件区,条件,…)
按条件求平均
=AVERAGEIF(条件区,条件,平均区)=AVERAGEIFS(平均区,条件区,条件,…)

常见误区

现象
原因
解决
SUMIFS 结果和预期差很远
把要求和的列写到了最后
复数函数统计列必须放第一位
条件写 >8000 不生效
比较符号没加引号
写成 ">8000" 整体加引号
想让条件跟着单元格变
条件写死了文本
用 ">"&E1 拼接单元格引用
区间判断算错
写了 5000<=C2<=8000
拆成 AND(C2>=5000,C2<=8000)

感谢阅读,欢迎关注我的公众号

扫码关注「Hai分享」,获取更多干货内容

相关学习资料